Update: I’ve added an additional section, “Multiple CalDAV Calendars” that details the extra steps required to synchronize more than one Google Calendar.
Update 2: I’d like to thank Elena for finding the address to add contact birthdays: https://email@example.com/user
With iPhone OS 3.0, Apple introduced new functionality for calendar synchronization. No longer is this ability limited to Exchange and MobileMe; with CalDAV and ICS support, you can sync or subscribe to many calendars. This is a boon for those of us that use Exchange for work, as previously we were unable to sync any other personal calendars and instead, had to rely on a desktop program.
The two most prominent supporters of CalDAV for calendar bidirectional synchronization is Yahoo! and Google. Below, I’ll show you how to sync your main Google Calendar with CalDAV and also subscribe to additional calendars via ICS files.
- Open up Settings from the home screen
- Swipe down and select “Mail, Contacts, Calendars”. At the bottom of the account list, touch “Add Account…”
- We’re not adding any of the built-in accounts, so select “Other”
- At the bottom, select “Add CalDAV Account”
- Now, enter the credentials. For Google Calendar, use the following information. According to Yahoo!’s documentation, you would instead use “caldav.calendar.yahoo.com” for Server.
- Server: www.google.com
- Username: <firstname.lastname@example.org>
- Password: <yourpassword>
- Description: <Calendar Description>
- The iPhone should now verify your account and auto-discover the rest of the settings. Really, that’s it!
Subscribed Calendar (ICS)
For Subscribed Calendars, the process is much easier due to some magic on Apple’s part. Simply email yourself a link to the ICS file and click it to open! Where do you get the URL for a calendar? I’ve got a couple of screenshots to guide you through that process:
- Click the down arrow next to the calendar you want to subscribe to and click “Calendar settings”.
- At the bottom of this page, you’ll see several buttons to access XML, ICAL, or HTML versions of a calendar. To avoid sharing your calendar, simply click the ICAL button listed under “Private Address”.
- A modal dialog box will pop up with the URL. Simply copy and paste this to yourself in an email.
Update: Commenters have pointed out, that you only need to open the link directly from the email, and the iPhone will take care of the rest… Genius!
Multiple CalDAV Calendars
It’s possible to sync secondary calendars from Google (i.e. those that are not the “main” calendar). This is simple, but you need a special ID similar to the ICS URL. Go back to you calendar settings page where the Private Address is listed. Above there is a section labeled Calendar Address. To the very right is a Calendar ID. Copy this ID into an email and compose a URL like the following:
- https://www.google.com/calendar/dav/ [ your Google Calendar ID ] /user
This URL is different than what the Google Calendar Help page suggests. Email this URL to yourself, copy it, then paste it into the “Server” field from above. The rest of the settings should copy itself into the Advanced Settings.
A couple notes:
- You can definitely set the CalDAV calendar as a default calendar, but I had problems making the change until I first went into the calendar app and let it populate. Afterward, I was able to drill back down to the “Default Calendar” setting in “Mail, Contacts, Calendars”.
- While CalDav is a bidirectional synchronization, it does not support Push like Exchange and MobileMe. Synchronization will happen just like like mail does: At every Fetch interval and also “on-demand”, which is whenever you open the app.