Hi,

I'm trying to use a calendar as a timeline to display stuff on large screens, so I'm adding events with reccurences every XX minutes, and each event have a 30s duration. Event creation works fine, but when I try to query available events for a specific time range, I get events who are outside the range. Example :

REPORT /dav/mtmls134/Calendar/ HTTP/1.1
...
<x1:calendar-query xmlns:x1="urn:ietf:params:xml:ns:caldav">
<x0:prop xmlns:x0="DAV:">
<x0:getetag/>
<x1:calendar-data/>
</x0:prop>
<x1:filter>
<x1:comp-filter name="VCALENDAR">
<x1:comp-filter name="VEVENT">
<x1:time-range end="20090114T211125Z" start="20090114T211025Z"/>
</x1:comp-filter>
</x1:comp-filter>
</x1:filter>
</x1:calendar-query>

And the answer contains occurences instances who are outside this range :

DEBUG [httpclient.wire.content] << "VERSION:2.0[\r][\n]"
DEBUG [httpclient.wire.content] << "PRODID:Zimbra-Calendar-Provider[\r][\n]"
DEBUG [httpclient.wire.content] << "BEGIN:VTIMEZONE[\r][\n]"
DEBUG [httpclient.wire.content] << "TZID:(GMT-05.00) Eastern Time (US &amp; Canada)[\r][\n]"
DEBUG [httpclient.wire.content] << "BEGIN:STANDARD[\r][\n]"
DEBUG [httpclient.wire.content] << "DTSTART:19710101T020000[\r][\n]"
DEBUG [httpclient.wire.content] << "TZOFFSETTO:-0500[\r][\n]"
DEBUG [httpclient.wire.content] << "TZOFFSETFROM:-0400[\r][\n]"
DEBUG [httpclient.wire.content] << "RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=11;B YDAY=1SU[\r][\n]"
DEBUG [httpclient.wire.content] << "END:STANDARD[\r][\n]"
DEBUG [httpclient.wire.content] << "BEGIN:DAYLIGHT[\r][\n]"
DEBUG [httpclient.wire.content] << "DTSTART:19710101T020000[\r][\n]"
DEBUG [httpclient.wire.content] << "TZOFFSETTO:-0400[\r][\n]"
DEBUG [httpclient.wire.content] << "TZOFFSETFROM:-0500[\r][\n]"
DEBUG [httpclient.wire.content] << "RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=3;BY DAY=2SU[\r][\n]"
DEBUG [httpclient.wire.content] << "END:DAYLIGHT[\r][\n]"
DEBUG [httpclient.wire.content] << "END:VTIMEZONE[\r][\n]"
DEBUG [httpclient.wire.content] << "BEGIN:VTIMEZONE[\r][\n]"
DEBUG [httpclient.wire.content] << "TZID:America/Montreal[\r][\n]"
DEBUG [httpclient.wire.content] << "BEGIN:STANDARD[\r][\n]"
DEBUG [httpclient.wire.content] << "DTSTART:20071104T020000[\r][\n]"
DEBUG [httpclient.wire.content] << "TZOFFSETTO:-0500[\r][\n]"
DEBUG [httpclient.wire.content] << "TZOFFSETFROM:-0400[\r][\n]"
DEBUG [httpclient.wire.content] << "RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU[\r][\n]"
DEBUG [httpclient.wire.content] << "END:STANDARD[\r][\n]"
DEBUG [httpclient.wire.content] << "BEGIN:DAYLIGHT[\r][\n]"
DEBUG [httpclient.wire.content] << "DTSTART:20070311T020000[\r][\n]"
DEBUG [httpclient.wire.content] << "TZOFFSETTO:-0400[\r][\n]"
DEBUG [httpclient.wire.content] << "TZOFFSETFROM:-0500[\r][\n]"
DEBUG [httpclient.wire.content] << "RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU[\r][\n]"
DEBUG [httpclient.wire.content] << "END:DAYLIGHT[\r][\n]"
DEBUG [httpclient.wire.content] << "END:VTIMEZONE[\r][\n]"
DEBUG [httpclient.wire.content] << "BEGIN:VEVENT[\r][\n]"
DEBUG [httpclient.wire.content] << "UID:20090114T210802Z-7854060086120464658@172.16.25.1[\r][\n]"
DEBUG [httpclient.wire.content] << "RRULE:FREQ=MINUTELY;UNTIL=20090115T010802Z;INTERV AL=30[\r][\n]"
DEBUG [httpclient.wire.content] << "SUMMARY:Test CalDAV[\r][\n]"
DEBUG [httpclient.wire.content] << "DTSTART;TZID="America/Montreal":20090114T160802[\r][\n]"
DEBUG [httpclient.wire.content] << "DURATION:PT30S[\r][\n]"
DEBUG [httpclient.wire.content] << "STATUS:CONFIRMED[\r][\n]"
DEBUG [httpclient.wire.content] << "CLASS:PUBLIC[\r][\n]"
DEBUG [httpclient.wire.content] << "X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY[\r][\n]"
DEBUG [httpclient.wire.content] << "TRANSP:OPAQUE[\r][\n]"
DEBUG [httpclient.wire.content] << "X-MICROSOFT-DISALLOW-COUNTER:TRUE[\r][\n]"
DEBUG [httpclient.wire.content] << "DTSTAMP:20090114T210802Z[\r][\n]"
DEBUG [httpclient.wire.content] << "SEQUENCE:0[\r][\n]"
DEBUG [httpclient.wire.content] << "END:VEVENT[\r][\n]"
DEBUG [httpclient.wire.content] << "END:VCALENDAR[\r][\n]"

Does my query is wrong? I looked at the RFC for CalDAV and it seems fine.