My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
IPhone  
Information on the iPhone CalDAV client.
CalDAV, Clients
Updated Oct 9, 2011 by evert...@gmail.com

The Apple iPhone client

Connecting the iPhone

Adding 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 details

User agent

Found user agent was:

  • DAVKit/4.0 (728.4); iCalendar/1 (42.1); iPhone/3.1.3 7E18

Principal properties

iPhone calendar will request the following properties on the principal:

  • {urn:ietf:params:xml:ns:caldav}calendar-home-set
  • {urn:ietf:params:xml:ns:caldav}calendar-user-address-set
  • {urn:ietf:params:xml:ns:caldav}schedule-inbox-URL
  • {urn:ietf:params:xml:ns:caldav}schedule-outbox-URL
  • {http://calendarserver.org/ns/}dropbox-home-URL
  • {DAV:}displayname

After that, it will query the location of calendar-home-set for the following properties:

Calendar properties and requests

On 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>

Sign in to add a comment
Powered by Google Project Hosting