The Apple iPhone clientConnecting the iPhoneAdding new CalDAV accounts can be done from within the Mail, Contacts, Calendars option in the Settings menu. Note that in order to configure this correctly, you must use the principal url in the server field (or advanced settings). A principal url on CalDAV is usually something like: http://www.example.org/principals/admin In this example the username is 'admin'. Note that if the full uri is not specifed, the iPhone will guess the principal url. By default it will guess something like: http://www.example.org/principals/users/admin This is very similar, but not correct. In that case setup would fail. Implementation detailsUser agentFound user agent was:
Principal propertiesiPhone calendar will request the following properties on the principal:
After that, it will query the location of calendar-home-set for the following properties:
Calendar properties and requestsOn Calendars themselves, it uses the calendar-query REPORT to retrieve the events. Example of such a report: <x0:calendar-query xmlns:x0="urn:ietf:params:xml:ns:caldav" xmlns:x1="DAV:"> <x1:prop> <x1:getetag /> <x1:resourcetype /> </x1:prop> <x0:filter> <x0:comp-filter name="VCALENDAR"> <x0:comp-filter name="VEVENT"> <x0:time-range start="20100420T150000Z" /> </x0:comp-filter> </x0:comp-filter> </x0:filter> </x0:calendar-query> The last report is only used to find out of any event changed. The calendar-multiget report is used to download the actual changes: <x0:calendar-multiget xmlns:x0="urn:ietf:params:xml:ns:caldav" xmlns:x1="DAV:"> <x1:prop> <x1:getetag /> <x0:calendar-data /> </x1:prop> <x1:href>/calendars/admin/default/524022B0-8AA8-44BD-8E6A-F1B41FBBC9E2.ics</x1:href> </x0:calendar-multiget> | |