Open ICS File

Information, tips and instructions

CalDAV Protocol

CalDAV is an HTTP based protocol which allows management of calendar and scheduling information on the server. It was published in March 2007 as a common standard to be used by multiple vendors including Apple, Oracle, CommerceNet, and others. It is quite popular as a calendar synchronization protocol and is supported by most e-mail and calendar vendors.

Typically, CalDAV protocol is used by client applications to sync calendar data with a remote server. For example, if you use Yahoo Mail and Calendar as an online server for your e-mail and calendar and want to start using Microsoft Outlook as a client e-mail and calendar application then CalDAV may be an easy way to sync e-mail and calendar data between Yahoo Mail and Microsoft Outlook.

In order for CalDAV synchronization to work, the remote server has to support CalDAV protocol and provide the URL for CalDAV protocol.

Below is a list of steps on how to add CalDAV synced account to iOS.

  • Open “Settings”
  • Go to “Password & Accounts”
  • Tap on “Add Account”
  • Tap on “Other”
  • Tap on “Add CalDAV Account”
  • Enter CalDAV URL into a server field, authentication details into User Name and Password fields, and name you want to use for the account into “Description” field, and tap “Next”.

CalDAV is based on WebDAV protocol which is used to manipulate data on a server using HTTP connection. WebDAV defines how client should authenticate with a server and which commands it can use for data manipulation. CalDAV extends WebDAV to allow manipulation of calendar data. CalDAV requests are issued as specially formatted XML commands which specify where and how data on a server should be manipulated. Calendar data itself is formatted accordingly to iCalendar specification. ICS files are used by CalDAV to store event data on a server.

Below is an example of CalDAV request for calendar data:

REPORT /bernard/work/ HTTP/1.1
Host: cal.example.com
Depth: 1
Content-Type: application/xml; charset="utf-8"
Content-Length: xxxx

<?xml version="1.0" encoding="utf-8" ?>
<C:calendar-query xmlns:D="DAV:"
xmlns:C="urn:ietf:params:xml:ns:caldav">
<D:prop>
<C:calendar-data>
<C:limit-recurrence-set start="20060103T000000Z"
end="20060105T000000Z"/>
</C:calendar-data>
</D:prop>
<C:filter>
<C:comp-filter name="VCALENDAR">
<C:comp-filter name="VEVENT">
<C:time-range start="20060103T000000Z"
end="20060105T000000Z"/>
</C:comp-filter>
</C:comp-filter>
</C:filter>
</C:calendar-query>