On Fri, 2012-02-17 at 16:35 +0100, Patrick Ohly wrote: > William sent me some debug logs, but then ran out of time. So I've > installed Radicale myself and found an issue that'll break > SyncEvolution: items reported by the server include double slashes in > the path. > > <multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav"> > <response> > <href>/public_user/calendar/calendar_1//[email protected]</href> > ^^ > SyncEvolution will then use /[email protected] as path in future > requests, which Radicale rejects with either 404 or 401 errors. > > I'll work around that in SyncEvolution. I'm not sure whether there is a > solution with 1.2.2.
I can't think of a workaround that doesn't involve patching SyncEvolution or Radicale. I guess I'll have to release a 1.2.3. While running SyncEvolution's automated testing, I noticed some more problems. Here's a summary. I was using Radicale 0.6.4-1 as packaged in Debian Testing, which seems to be the latest stable release. Below I'm going to quote some libneon debug dumps. I'm copying the Radicale mailing list, but I don't know whether my mail will go through. I'm not subscribed and I don't see documentation on how to subscribe on the web page. Paths returned by Radicale: <href>/public_user/calendar/calendar_1//[email protected]</href> is probably not wrong, but it's also not nice. Making SyncEvolution more resilient fixes this. multiget: SyncEvolution uses this to retrieve a subset of the items. Radicale simply doesn't return any results for the requested items, which IMHO is a CalDAV protocol violation. I have a workaround in SyncEvolution which detects this and falls back to individual GETs (slower). SyncEvolution uses URL escaping of the @ sign in XML, which is what all other CalDAV servers I tested with understand and do themselves. Radicale itself doesn't quote the sign in XML. I think both is okay. detached recurrences: a request to store an item which contains a main VEVENT with RRULE and several detached recurrences (=VEVENTs with RECURRENCE-ID) fails on the server. It silently throws away the detached recurrences. There's no workaround for this. It implies data loss, so beware. Bye, Patrick vvvvvvvvvvvvvvvvvvvv PATH ISSUE vvvvvvvvvvvvvvvvv <multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav"> <response> <href>/public_user/calendar/calendar_1//[email protected]</href> <propstat> <prop> <getetag>"-6685602634952506914"</getetag> <C:calendar-data>BEGIN:VCALENDAR PRODID:-//Radicale//NONSGML Radicale Server//EN .... ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ vvvvvvvvvvvvvvvvvvv multiget vvvvvvvvvvvvvvvvvvvv [DEBUG 00:00:00] caldav #B: old database revision '"17937496649054107"', new revision '"-2935980891920965243"' [DEBUG 00:00:00] caldav #B: using full item scan to detect changes [DEBUG 00:00:00] starting updateAllSubItems REPORT 'list items', credentials okay, deadline in 300.0s [DEVELOPER 00:00:00] stderr: ah_create, for WWW-Authenticate [DEVELOPER 00:00:00] stderr: Running pre_send hooks [DEVELOPER 00:00:00] stderr: Sending request headers: REPORT /public_user/calendar/calendar_1/ HTTP/1.1 Keep-Alive: Connection: TE, Keep-Alive TE: trailers Host: localhost:5232 Content-Length: 286 Depth: 1 Content-Type: application/xml; charset="utf-8" [DEVELOPER 00:00:00] stderr: Sending request-line and headers: [DEVELOPER 00:00:00] stderr: req: Connecting to 127.0.0.1:5232 [DEVELOPER 00:00:00] stderr: Sending request body: [DEVELOPER 00:00:00] stderr: Body block (286 bytes): [<?xml version="1.0" encoding="utf-8" ?> <C:calendar-query xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav"> <D:prop> <D:getetag/> </D:prop> <C:filter> <C:comp-filter name="VCALENDAR"> <C:comp-filter name="VEVENT"> </C:comp-filter> </C:comp-filter> </C:filter> </C:calendar-query> ] [DEVELOPER 00:00:00] stderr: Request sent; retry is 0. [DEVELOPER 00:00:00] stderr: [status-line] < HTTP/1.0 207 Unknown [DEVELOPER 00:00:00] stderr: [hdr] Date: Mon, 20 Feb 2012 15:37:01 GMT [DEVELOPER 00:00:00] stderr: Header Name: [date], Value: [Mon, 20 Feb 2012 15:37:01 GMT] [DEVELOPER 00:00:00] stderr: [hdr] Server: WSGIServer/0.1 Python/2.7.2+ [DEVELOPER 00:00:00] stderr: Header Name: [server], Value: [WSGIServer/0.1 Python/2.7.2+] [DEVELOPER 00:00:00] stderr: [hdr] Content-Length: 309 [DEVELOPER 00:00:00] stderr: Header Name: [content-length], Value: [309] [DEVELOPER 00:00:00] stderr: [hdr] Content-Type: text/xml [DEVELOPER 00:00:00] stderr: Header Name: [content-type], Value: [text/xml] [DEVELOPER 00:00:00] stderr: [hdr] [DEVELOPER 00:00:00] stderr: End of headers. [DEVELOPER 00:00:00] stderr: Running post_headers hooks [DEVELOPER 00:00:00] stderr: Reading 309 bytes of response body. [DEVELOPER 00:00:00] stderr: Got 309 bytes. [DEVELOPER 00:00:00] stderr: Read block (309 bytes): [<?xml version="1.0"?> <multistatus xmlns="DAV:"> <response> <href>/public_user/calendar/calendar_1//[email protected]</href> <propstat> <prop> <getetag>"7614598999712259121"</getetag> </prop> <status>HTTP/1.1 200 OK</status> </propstat> </response> </multistatus> ] [DEVELOPER 00:00:00] stderr: Running post_send hooks [DEVELOPER 00:00:00] stderr: ah_post_send (#0), code is 207 (want 401), WWW-Authenticate is (none) [DEVELOPER 00:00:00] stderr: Running destroy hooks. [DEVELOPER 00:00:00] stderr: Request ends. [DEBUG 00:00:00] updateAllSubItems(): read new or modified item [email protected] [DEBUG 00:00:00] starting updateAllSubItems REPORT 'multiget new/updated items', credentials okay, deadline in 300.0s [DEVELOPER 00:00:00] stderr: ah_create, for WWW-Authenticate [DEVELOPER 00:00:00] stderr: Running pre_send hooks [DEVELOPER 00:00:00] stderr: Sending request headers: REPORT /public_user/calendar/calendar_1/ HTTP/1.1 Keep-Alive: Connection: TE, Keep-Alive TE: trailers Host: localhost:5232 Content-Length: 271 Depth: 1 Content-Type: application/xml; charset="utf-8" [DEVELOPER 00:00:00] stderr: Sending request-line and headers: [DEVELOPER 00:00:00] stderr: req: Connecting to 127.0.0.1:5232 [DEVELOPER 00:00:00] stderr: Sending request body: [DEVELOPER 00:00:00] stderr: Body block (271 bytes): [<?xml version="1.0" encoding="utf-8"?> <C:calendar-multiget xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav"> <D:prop> <D:getetag/> <C:calendar-data/> </D:prop> <D:href>/public_user/calendar/calendar_1/1234567890%40dummy.ics</D:href> </C:calendar-multiget>] [DEVELOPER 00:00:00] stderr: Request sent; retry is 0. [DEVELOPER 00:00:00] stderr: [status-line] < HTTP/1.0 207 Unknown [DEVELOPER 00:00:00] stderr: [hdr] Date: Mon, 20 Feb 2012 15:37:01 GMT [DEVELOPER 00:00:00] stderr: Header Name: [date], Value: [Mon, 20 Feb 2012 15:37:01 GMT] [DEVELOPER 00:00:00] stderr: [hdr] Server: WSGIServer/0.1 Python/2.7.2+ [DEVELOPER 00:00:00] stderr: Header Name: [server], Value: [WSGIServer/0.1 Python/2.7.2+] [DEVELOPER 00:00:00] stderr: [hdr] Content-Length: 50 [DEVELOPER 00:00:00] stderr: Header Name: [content-length], Value: [50] [DEVELOPER 00:00:00] stderr: [hdr] Content-Type: text/xml [DEVELOPER 00:00:00] stderr: Header Name: [content-type], Value: [text/xml] [DEVELOPER 00:00:00] stderr: [hdr] [DEVELOPER 00:00:00] stderr: End of headers. [DEVELOPER 00:00:00] stderr: Running post_headers hooks [DEVELOPER 00:00:00] stderr: Reading 50 bytes of response body. [DEVELOPER 00:00:00] stderr: Got 50 bytes. [DEVELOPER 00:00:00] stderr: Read block (50 bytes): [<?xml version="1.0"?> <multistatus xmlns="DAV:" />] [DEVELOPER 00:00:00] stderr: Running post_send hooks [DEVELOPER 00:00:00] stderr: ah_post_send (#0), code is 207 (want 401), WWW-Authenticate is (none) [DEVELOPER 00:00:00] stderr: Running destroy hooks. [DEVELOPER 00:00:00] stderr: Request ends. [DEBUG 00:00:00] starting GET item [email protected] not returned by 'multiget new/updated items', credentials okay, deadline in 300.0s [DEVELOPER 00:00:00] stderr: ah_create, for WWW-Authenticate [DEVELOPER 00:00:00] stderr: Running pre_send hooks [DEVELOPER 00:00:00] stderr: Sending request headers: GET /public_user/calendar/calendar_1/1234567890%40dummy.ics HTTP/1.1 Keep-Alive: Connection: TE, Keep-Alive TE: trailers Host: localhost:5232 Content-Length: 0 Accept: text/calendar; charset=utf-8 [DEVELOPER 00:00:00] stderr: Sending request-line and headers: [DEVELOPER 00:00:00] stderr: req: Connecting to 127.0.0.1:5232 [DEVELOPER 00:00:00] stderr: Request sent; retry is 0. [DEVELOPER 00:00:00] stderr: [status-line] < HTTP/1.0 200 OK [DEVELOPER 00:00:00] stderr: [hdr] Date: Mon, 20 Feb 2012 15:37:01 GMT [DEVELOPER 00:00:00] stderr: Header Name: [date], Value: [Mon, 20 Feb 2012 15:37:01 GMT] [DEVELOPER 00:00:00] stderr: [hdr] Server: WSGIServer/0.1 Python/2.7.2+ [DEVELOPER 00:00:00] stderr: Header Name: [server], Value: [WSGIServer/0.1 Python/2.7.2+] [DEVELOPER 00:00:00] stderr: [hdr] Last-Modified: Mon, 20 Feb 2012 15:37:01 +0000 [DEVELOPER 00:00:00] stderr: Header Name: [last-modified], Value: [Mon, 20 Feb 2012 15:37:01 +0000] [DEVELOPER 00:00:00] stderr: [hdr] Content-Length: 1546 [DEVELOPER 00:00:00] stderr: Header Name: [content-length], Value: [1546] [DEVELOPER 00:00:00] stderr: [hdr] ETag: "7614598999712259121" [DEVELOPER 00:00:00] stderr: Header Name: [etag], Value: ["7614598999712259121"] [DEVELOPER 00:00:00] stderr: [hdr] Content-Type: text/calendar [DEVELOPER 00:00:00] stderr: Header Name: [content-type], Value: [text/calendar] [DEVELOPER 00:00:00] stderr: [hdr] [DEVELOPER 00:00:00] stderr: End of headers. [DEVELOPER 00:00:00] stderr: Running post_headers hooks [DEVELOPER 00:00:00] stderr: Reading 1546 bytes of response body. [DEVELOPER 00:00:00] stderr: Got 1546 bytes. [DEVELOPER 00:00:00] stderr: Read block (1546 bytes): [BEGIN:VCALENDAR PRODID:-//Radicale//NONSGML Radicale Server//EN VERSION:2.0 BEGIN:VTIMEZONE TZID:/softwarestudio.org/Olson_20011030_5/Europe/Berlin X-LIC-LOCATION:Europe/Berlin BEGIN:DAYLIGHT TZOFFSETFROM:+0100 TZOFFSETTO:+0200 TZNAME:CEST DTSTART:19700329T020000 RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=3 END:DAYLIGHT BEGIN:STANDARD TZOFFSETFROM:+0200 TZOFFSETTO:+0100 TZNAME:CET DTSTART:19701025T030000 RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=10 END:STANDARD END:VTIMEZONE BEGIN:VTIMEZONE TZID:EST/EDT BEGIN:STANDARD TZOFFSETFROM:-0400 TZOFFSETTO:-0500 TZNAME:EST DTSTART:19671029T020000 RRULE:FREQ=MONTHLY;INTERVAL=12;BYDAY=-1SU END:STANDARD BEGIN:DAYLIGHT TZOFFSETFROM:-0500 TZOFFSETTO:-0400 TZNAME:EDT DTSTART:19870405T020000 RRULE:FREQ=MONTHLY;INTERVAL=12;BYDAY=1SU END:DAYLIGHT END:VTIMEZONE BEGIN:VTIMEZONE TZID:Europe/Berlin X-LIC-LOCATION:Europe/Berlin BEGIN:DAYLIGHT TZOFFSETFROM:+0100 TZOFFSETTO:+0200 TZNAME:CEST DTSTART:19700329T020000 RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=3 END:DAYLIGHT BEGIN:STANDARD TZOFFSETFROM:+0200 TZOFFSETTO:+0100 TZNAME:CET DTSTART:19701025T030000 RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=10 END:STANDARD END:VTIMEZONE BEGIN:VEVENT SUMMARY:meeting on site - updated DTEND:20060406T163000Z DTSTART:20060406T160000Z X-RADICALE-NAME:[email protected] UID:1234567890@dummy DTSTAMP:20120220T153701Z LAST-MODIFIED:20120220T153701Z CREATED:20060409T213201Z SEQUENCE:1 LOCATION:big meeting room DESCRIPTION:U nice to see you CLASS:PUBLIC TRANSP:OPAQUE END:VEVENT END:VCALENDAR ] [DEVELOPER 00:00:00] stderr: Running post_send hooks [DEVELOPER 00:00:00] stderr: ah_post_send (#0), code is 200 (want 401), WWW-Authenticate is (none) [DEVELOPER 00:00:00] stderr: Request ends, status 200 class 2xx, error line: 200 OK [DEVELOPER 00:00:00] stderr: Running destroy hooks. [DEVELOPER 00:00:00] stderr: Request ends. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ vvvvvvvvvvvvvvvvvv detached recurrences vvvvvvvvv PUT /public_user/calendar/calendar_1/20080407T193125Z-19554-727-1-50%40gollum.ics HTTP/1.1 Keep-Alive: Connection: TE, Keep-Alive TE: trailers Host: localhost:5232 Content-Length: 1160 Content-Type: text/calendar; charset=utf-8 [DEVELOPER 00:00:00] stderr: Sending request-line and headers: [DEVELOPER 00:00:00] stderr: req: Connecting to 127.0.0.1:5232 [DEVELOPER 00:00:00] stderr: Sending request body: [DEVELOPER 00:00:00] stderr: Body block (1160 bytes): [BEGIN:VCALENDAR PRODID:-//Ximian//NONSGML Evolution Calendar//EN VERSION:2.0 BEGIN:VEVENT UID:20080407T193125Z-19554-727-1-50@gollum DTSTAMP:20120220T150539Z DTSTART:20080406T090000Z DTEND:20080406T093000Z TRANSP:OPAQUE SEQUENCE:2 SUMMARY:Recurring DESCRIPTION:recurs each Sonday\, 10 times CLASS:PUBLIC RRULE:FREQ=WEEKLY;UNTIL=20080608T090000Z;BYDAY=SU CREATED:20080407T193241Z LAST-MODIFIED:20120220T150539Z END:VEVENT BEGIN:VEVENT UID:20080407T193125Z-19554-727-1-50@gollum DTSTAMP:20120220T150539Z DTSTART:20080413T090000Z DTEND:20080413T093000Z TRANSP:OPAQUE SEQUENCE:7 SUMMARY:Recurring: Modified CLASS:PUBLIC CREATED:20080407T193241Z LAST-MODIFIED:20120220T150539Z RECURRENCE-ID:20080413T090000Z DESCRIPTION:second instance modified END:VEVENT BEGIN:VEVENT UID:20080407T193125Z-19554-727-1-50@gollum DTSTAMP:20120220T150539Z DTSTART:20080420T100000Z DTEND:20080420T103000Z TRANSP:OPAQUE SEQUENCE:7 SUMMARY:Recurring: Modified II CLASS:PUBLIC CREATED:20080407T193241Z LAST-MODIFIED:20120220T150539Z RECURRENCE-ID:20080420T090000Z DESCRIPTION:third instance modified\, different time END:VEVENT END:VCALENDAR ] [DEVELOPER 00:00:00] stderr: Request sent; retry is 0. [DEVELOPER 00:00:00] stderr: [status-line] < HTTP/1.0 201 Created [DEVELOPER 00:00:00] stderr: [hdr] Date: Mon, 20 Feb 2012 15:05:39 GMT [DEVELOPER 00:00:00] stderr: Header Name: [date], Value: [Mon, 20 Feb 2012 15:05:39 GMT] [DEVELOPER 00:00:00] stderr: [hdr] Server: WSGIServer/0.1 Python/2.7.2+ [DEVELOPER 00:00:00] stderr: Header Name: [server], Value: [WSGIServer/0.1 Python/2.7.2+] [DEVELOPER 00:00:00] stderr: [hdr] ETag: "-2078255212071890575" [DEVELOPER 00:00:00] stderr: Header Name: [etag], Value: ["-2078255212071890575"] [DEVELOPER 00:00:00] stderr: [hdr] Content-Length: 0 [DEVELOPER 00:00:00] stderr: Header Name: [content-length], Value: [0] [DEVELOPER 00:00:00] stderr: [hdr] [DEVELOPER 00:00:00] stderr: End of headers. [DEVELOPER 00:00:00] stderr: Running post_headers hooks [DEVELOPER 00:00:00] stderr: Running post_send hooks [DEVELOPER 00:00:00] stderr: ah_post_send (#0), code is 201 (want 401), WWW-Authenticate is (none) [DEVELOPER 00:00:00] stderr: Request ends, status 201 class 2xx, error line: 201 Created ... [DEBUG 00:00:00] starting REPORT 'full calendar', credentials okay, deadline in 300.0s [DEVELOPER 00:00:00] stderr: ah_create, for WWW-Authenticate [DEVELOPER 00:00:00] stderr: Running pre_send hooks [DEBUG 00:00:00] forced sending credentials [DEVELOPER 00:00:00] stderr: Sending request headers: REPORT /public_user/calendar/calendar_1/ HTTP/1.1 Keep-Alive: Connection: TE, Keep-Alive TE: trailers Host: localhost:5232 Content-Length: 305 Depth: 1 Content-Type: application/xml; charset="utf-8" Authorization: xxxxxxxxxx [DEVELOPER 00:00:00] stderr: Sending request-line and headers: [DEVELOPER 00:00:00] stderr: req: Connecting to 127.0.0.1:5232 [DEVELOPER 00:00:00] stderr: Sending request body: [DEVELOPER 00:00:00] stderr: Body block (305 bytes): [<?xml version="1.0" encoding="utf-8" ?> <C:calendar-query xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav"> <D:prop> <D:getetag/> <C:calendar-data/> </D:prop> <C:filter> <C:comp-filter name="VCALENDAR"> <C:comp-filter name="VEVENT"> </C:comp-filter> </C:comp-filter> </C:filter> </C:calendar-query> ] [DEVELOPER 00:00:00] stderr: Request sent; retry is 0. [DEVELOPER 00:00:00] stderr: [status-line] < HTTP/1.0 207 Unknown [DEVELOPER 00:00:00] stderr: [hdr] Date: Mon, 20 Feb 2012 15:05:39 GMT [DEVELOPER 00:00:00] stderr: Header Name: [date], Value: [Mon, 20 Feb 2012 15:05:39 GMT] [DEVELOPER 00:00:00] stderr: [hdr] Server: WSGIServer/0.1 Python/2.7.2+ [DEVELOPER 00:00:00] stderr: Header Name: [server], Value: [WSGIServer/0.1 Python/2.7.2+] [DEVELOPER 00:00:00] stderr: [hdr] Content-Length: 30072 [DEVELOPER 00:00:00] stderr: Header Name: [content-length], Value: [30072] [DEVELOPER 00:00:00] stderr: [hdr] Content-Type: text/xml [DEVELOPER 00:00:00] stderr: Header Name: [content-type], Value: [text/xml] [DEVELOPER 00:00:00] stderr: [hdr] [DEVELOPER 00:00:00] stderr: End of headers. [DEVELOPER 00:00:00] stderr: Running post_headers hooks [DEVELOPER 00:00:00] stderr: Reading 8000 bytes of response body. [DEVELOPER 00:00:00] stderr: Got 8000 bytes. [DEVELOPER 00:00:00] stderr: Read block (8000 bytes): [<?xml version="1.0"?> <multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav"> ... <response> <href>/public_user/calendar/calendar_1//[email protected]</href> <propstat> <prop> <getetag>"-2078255212071890575"</getetag> <C:calendar-data>BEGIN:VCALENDAR PRODID:-//Radicale//NONSGML Radicale Server//EN VERSION:2.0 BEGIN:VTIMEZONE TZID:/softwarestudio.org/Olson_20011030_5/Europe/Berlin X-LIC-LOCATION:Europe/Berlin BEGIN:DAYLIGHT TZOFFSETFROM:+0100 TZOFFSETTO:+0200 TZNAME:CEST DTSTART:19700329T020000 RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=3 END:DAYLIGHT BEGIN:STANDARD TZOFFSETFROM:+0200 TZOFFSETTO:+0100 TZNAME:CET DTSTART:19701025T030000 RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=10 END:STANDARD END:VTIMEZONE BEGIN:VTIMEZONE TZID:EST/EDT BEGIN:STANDARD TZOFFSETFROM:-0400 TZOFFSETTO:-0500 TZNAME:EST DTSTART:19671029T020000 RRULE:FREQ=MONTHLY;INTERVAL=12;BYDAY=-1SU END:STANDARD BEGIN:DAYLIGHT TZOFFSETFROM:-0500 TZOFFSETTO:-0400 TZNAME:EDT DTSTART:19870405T020000 RRULE:FREQ=MONTHLY;INTERVAL=12;BYDAY=1SU END:DAYLIGHT END:VTIMEZONE BEGIN:VTIMEZONE TZID:Europe/Berlin X-LIC-LOCATION:Europe/Berlin BEGIN:DAYLIGHT TZOFFSETFROM:+0100 TZOFFSETTO:+0200 TZNAME:CEST DTSTART:19700329T020000 RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=3 END:DAYLIGHT BEGIN:STANDARD TZOFFSETFROM:+0200 TZOFFSETTO:+0100 TZNAME:CET DTSTART:19701025T030000 RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=10 END:STANDARD END:VTIMEZONE BEGIN:VEVENT X-RADICALE-NAME:[email protected] UID:20080407T193125Z-19554-727-1-50@gollum DTSTAMP:20120220T150539Z DTSTART:20080406T090000Z DTEND:20080406T093000Z TRANSP:OPAQUE SE] [DEVELOPER 00:00:00] stderr: Reading 6072 bytes of response body. [DEVELOPER 00:00:00] stderr: Got 6072 bytes. [DEVELOPER 00:00:00] stderr: Read block (6072 bytes): [QUENCE:2 SUMMARY:Recurring DESCRIPTION:recurs each Sonday\, 10 times CLASS:PUBLIC RRULE:FREQ=WEEKLY;UNTIL=20080608T090000Z;BYDAY=SU CREATED:20080407T193241Z LAST-MODIFIED:20120220T150539Z END:VEVENT END:VCALENDAR </C:calendar-data> </prop> <status>HTTP/1.1 200 OK</status> </propstat> </response> ... ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _______________________________________________ SyncEvolution mailing list [email protected] http://lists.syncevolution.org/listinfo/syncevolution
