I’ve been frustrated with my calendars not being in sync between my iPhone and my Mac’s iCal. I’ve inadvertently double-booked myself many times. I didn’t want to spend $99 a year for MobileMe because I already spent a lot on remote servers and don’t need most of what MobileMe offers. I just want calendar syncing. The below has been described by many others, in much greater detail and clarity. This is really a list of things I did so I can remember it.
The essential idea is both iCal and the iPhone Calendar program can talk to a CalDAV server, much like Mail.app and iPhone Mail can talk to an IMAP server. Google Calendar is a CalDAV server, so let’s use that, since it’s free and already set up. If you already have a CalDAV server, you can use that instead as the intermediary.
1. Create calendars in Google Calendar
Sign into Google Calendar and set up however many calendars you want. Once you do that, go to the bottom of the settings details for a particular calendar you’re interested in and note its “calendar address”:
2. Set up iCal to sync with Google Calendar
In Preferences in iCal, go to Accounts, click the “+” to add an account, and choose “Google” as the account type. Fill in your info.
Click on the “Delegation” tab for the newly created account, and pick which other calendars you want besides your main one (if any). You’ll see them in a separate list in the calendar list pane.
Now you have calendars that sync between iCal and Google Calendar.
3. Set up iPhone to sync with Google Calendar
On the iPhone Settings app, go to the “Mail, Contacts, Calendars” section and scroll down to “Add An Account…”. Choose “Add CalDAV Account” and fill in your Google Calendar login info.
If you just have the one main calendar on Google Calendar, that was the last step, you’re done and any changes you make on the iPhone will get send to your Google Calendar, which iCal will then pick up. And vice-versa. If you want to add one of the secondary calendars, you have one more step.
4. Adding a “delegate” Google calendar to iPhone
To add secondary Google calendars (what iCal calls “Delegates”), you need to do step (3) again. Then with this second CalDAV account on the iPhone, go into its “Advanced Settings” section of that account’s information and edit the Account URL. Replace the “firstname.lastname@example.org” part of the URL with the Calendar address you noted down from step (1).
That is, the full CalDAV URL for my main Google calendar is:
and the full CalDAV URL for my “things-to-do” calendar is:
You’ll probably find it easier if you email yourself this URL from your computer, pull it up on your phone, and use copy-n-paste to enter it.