Zimbra may apparently create events with both DTSTART, DTEND and DURATION, which is a breach of the standard. A simple workaround has been implemented, just throwing away redundant information. No check done on weather the DURATION matches DTEND-DTSTART (it did in the ical data I got from Zimbra), so this one may potentially throw away information. (I just wrote a message to the organizer asking if the original ical data was actually produced internally Zimbra or by some other client).
I've been fighting a bit with some proprietary system in #201 that have some partial and slightly non-compliant support for caldav - and made some partial workaround for loading content from it.
One extra unrelated commit enhancing the tests code has been piggy-backed on this pull request.
I shouldn't do such things in the late evenings ... commit 22011e49d95b8db59f385af49149e8a5499e582a and 5ad53ce28efb49df0f344f4b297e5e0d142c9a0a should have been included in this pull request :-)