Configuring CalDAV on iPhone 3.0 for Google Calendar

Today, the iPhone 3.0 software update finally came out and about the first thing I did after upgrading mine was to check out the new CalDAV and LDAP functionalities.

This is how I configured CalDAV for Google Calendar:

  1. Go to Settings > Mail, Contacts, Calendars
  2. Tap "Add Account...", then "Other"
  3. Under Calendars, "Add CalDAV Account"
  4. Enter account information:
    • Server:
    • User Name: [your username]
    • Password: [your password]
    • Description: [e.g. Personal]
  5. Tap "Next"

That's it! Now you can launch the Calendar app, tap "Calendars", then select the CalDAV calendar. Events can be created or modified on the iPhone and they'll be reflected on the server instantly.

Secondary calendars: This only shows the main calendar. To get your other calendars, you'll need to repeat the above for each (with distinct Descriptions otherwise it'll be confusing), then edit that CalDAV account, and under "Advanced Settings" change the "Account URL". You can get this Account URL by clicking the down arrow next to your calendar at and selecting "Calendar Settings". You should find your Calendar ID next to the XML, iCal, HTML links in the Calendar Address section. Insert this Calendar ID into an URL like so: . You can email this to yourself, then leverage the new copy&paste feature of 3.0 to avoid typos. Why is this so cumbersome? Here's a possible explanation.

Offline access: Works in both directions. Changes are sync'd upon network reconnection.

CalDAV or Google Sync? Either way will give you read/write access to your Google Calendar. A major deciding factor is whether you already have an active Exchange account (e.g. for work), since iPhone only allows one Exchange account at any time, and Google Sync uses Exchange ActiveSync protocol.

[Updated per suggestions in the comments]


That's cool... thanks Robert

I also configured mine. But do you know of a way to show all the calendar's from my Google Calendar.

Right now it is only mapped to the default calendar in Google. Is it supposed to be that way?

Posted by Satpal Sharma on June 17, 2009 at 02:27 PM PDT #

It works beautifully, but only with my main google calendar. Know how I get my other Google calendars to show up (calendars that belong to me, that is, as opposed to public calendars I subscribe to)?

Posted by David Brewster on June 17, 2009 at 02:37 PM PDT #

Thanks for this! I am glad this also works with Google Apps. Tested it and it works.

A little extra note: After configuring the caldav you need to set the standard agenda in Mail, Contacts, Calendars to the caldav you just set up.

Posted by Chris on June 17, 2009 at 05:25 PM PDT #

Or just go here:
then set up your google exchange account and enable your services using your iPhone via

this worked perfectly for me - while the description above only worked for the main calendar, not for any other delegates...

Posted by Ole on June 17, 2009 at 07:35 PM PDT #

Great tip, thanks! Seems to be working excellent! However, I can't get my secondary calendar going as it should, could you post exactly how you did? Account URL doesn't seem to accept my url from gCal: ""?

Posted by Oscar on June 17, 2009 at 08:46 PM PDT #

Oh I found out:[Google Calendar ID]/user

I thought it should be just the Google Calendar ID :)

Posted by Oscar on June 17, 2009 at 09:03 PM PDT #

By "Changes are sync'd upon network reconnection." do you mean 3G access or wifi?

Posted by nikbronder on June 18, 2009 at 12:21 AM PDT #

How long did it take for the events to show up on your calendar. Mine haven't shown up yet. I'm afraid I haven't configured the CalDAV calendars correctly.

Posted by jbbentz on June 18, 2009 at 12:29 AM PDT #

When I added the secondary calendar it always reverts the Account URL in the Advanced Settings back to my Primary Calendar URL...

Any ideas?

Posted by nikbronder on June 18, 2009 at 12:30 AM PDT #

@nikbronder I mean any kind of network. I'm using Wi-Fi, but it should work on 3G as well I think.

Posted by Robert Chien on June 18, 2009 at 02:00 AM PDT #

@jbbentz they should show up as soon as the network activity indicator stops spinning when you are in the Calendar app.

Posted by Robert Chien on June 18, 2009 at 02:07 AM PDT #

Very cool Robert, thank you especially with secondary calendars info.

jbbentz - Mine was fairly instant. Yesterday when playing around I got the URL for the secondary calendar very wrong - no error messages it just sat there doing nothing. Double check everything and try again.

nikbronder - I found that deleting the entire URL and re-pasting it in worked, having put together an email to myself with the full URL which I then copied & pasted into the iPhone settings. Compose an email with the full URL - make up the entire thing, with the numbers etc, then copy & paste the into the Account URL bit from your email on the iPhone. Its easier to compose the full string using your computer in the first instance.

Posted by Ashley Hinton on June 18, 2009 at 02:57 AM PDT #

I tried the secondary address suggestion listed. Mine reverts to the Primary Calendar URL as well.

Posted by Tyler V on June 18, 2009 at 03:35 AM PDT #

Thanks for the very useful blog.

Like others I have got the primary calendar to work, but no luck on secondary.

in the Google calendar settings page which link do I need to copy and paste - XML, ICAL or HTML? Also, which link should I use - the Public or Private? Does the calendar need to be made public for it to work?

Answers to the above would help, as currently I've drawn a blank on this...

Posted by Keith on June 18, 2009 at 04:45 AM PDT #

I've tried the copy and paste as well to no avail. I'm wondering... those who have a secondary calendar working do you also have a primary google calendar working?

I have an exchange account (with calendar) and I've tried to setup both Primary & Secondary and just the exchange and secondary and it always reverts back to the primary calendar.

Posted by nikbronder on June 18, 2009 at 05:11 AM PDT #

@Keith in the Google Calendar settings page, you should see your Calendar ID right next to the XML, iCal, HTML links. Insert this Calendar ID into an URL like this:[Calendar ID]/user

I'll update the instruction to clarify on this point.

And to everyone who's seeing the Account URL revert to primary calendar URL, could you post your settings (including basic and advanced)? I'm unable to reproduce that behavior.

Posted by Robert Chien on June 18, 2009 at 05:31 AM PDT #

@nikbronder Yes, I have both primary and secondary working. It also works (i.e. does not revert to primary) when I only config a secondary calendar.

Posted by Robert Chien on June 18, 2009 at 05:40 AM PDT #

Exchange works to get all of your calendars - go here!

It also supports push protocols and will do you address book if you want it to. Rock!

Posted by Bobby on June 18, 2009 at 05:57 AM PDT #

Is Calendar ID simply the string of characters at the beginning of the address or is it the whole address with the at the end?

Thanks, for all the info.

Posted by nikbronder on June 18, 2009 at 06:02 AM PDT #

There's a way easier way to do this without having to copy those secondary calendar links.

Google provides the instructions right on their site:

Do this first:

Do this second:

Posted by Matt on June 18, 2009 at 06:18 AM PDT #

Also I forgot to mention that calendar events will sync both ways when following the Google instructions.

Add, modify, and delete events on your iPod Touch or iPhone and they will sync within seconds with your Google Calendar. Works great on my iPod Touch 1st gen.

Posted by Matt on June 18, 2009 at 06:21 AM PDT #

Matt, that doesn't work if you already have an Exchange email account. That's why the CalDAV Account is so appealing.

Posted by nikbronder on June 18, 2009 at 06:39 AM PDT #

for suscribed calendars.. just send yourself the ulr and then on your iphone check the email, click on the link you sent to yourself and the iphone will automatically ask if you'd like to subscribe to the calendar.

Posted by Ricky on June 18, 2009 at 06:52 AM PDT #

@nikbronder Calendar ID is the whole address with at the end.

Posted by Robert Chien on June 18, 2009 at 07:24 AM PDT #

The didn't work for me. However, this url did:

The calendar id was an email address so that might have been the problem.

Posted by kabucey on June 18, 2009 at 10:12 AM PDT #

Excellent tip. Thank you.

Posted by Jay Valambhia on June 18, 2009 at 01:43 PM PDT #

I can get it mostly setup, but the secondary calendars won't show up in the calendars list on the iPhone app. I've been at this off and on since 9am, any thoughts? I'm about ready to kick Google to the curb.

Posted by Micah on June 19, 2009 at 02:27 AM PDT #

Mine keeps asking me for the password and says I have it wrong when I don't. Any ideas?

Posted by RVB on June 19, 2009 at 09:31 AM PDT #

this is very wonky-like in its monkeying around. and should have a better interface solution.
i'm going to guess that IT rollout is a nightmare.

Posted by eh on June 19, 2009 at 10:42 AM PDT #

Thanks for the great step by step. Worked fantastically on the main calendar. I also wanted to set up the public google "holidays" calendar. I tried your method with the calendar ID but could not make it work. When I emailed both the calendar ID URL and the iCal URL to my iphone, while cutting and pasting I accidentally clicked on the iCal link, which popped up a "do you want to subscribe" box, to which I said yes, and the public holidays calendar automatically added itself to the iPhone calendar. This might also work with any secondary calendars, but I have not tried it yet.

Posted by djoyce on June 20, 2009 at 04:00 AM PDT #

I got this work ok (it was a little tricky getting the URL just right), but the problem is that the secondary calendars are inconsistent on when they're updated. I'm not sure what "Changes are sync'd upon network reconnection" means exactly. I tried going to airplane mode and then back to normal mode, but usually after the spinning wheel stops spinning, only the main calendar is updated. The only way I was able to reliably update the other calendars was to go back into setup and change something (like resetting the password).

Has anyone else experienced this?

Posted by Ford Grasson on June 22, 2009 at 02:18 AM PDT #

I've also go the issue with secondary calendar.

I can type in the URL or paste it in and it appears to be accepted but if I change screens and then go back the default URL is in there

I don't have a primary Google calendar setup.
Username and password are mine
Advanced settings-
Use SSL: off
Account URL:

Where _BLAHBLAHBLAH_ is obviously the key for the cal.

Posted by Gromski on June 22, 2009 at 02:32 AM PDT #

Thanks a million Robert!

I was trying to figure out how to add my Secondary Google Calendar to my iPhone rather than the main/default one.

The setup was easy... now when I add a new event in the calendar via the iPhone it syncs up to Google Calendar, and vice versa!

Your a genius... keep up the good work!



Posted by PB on June 22, 2009 at 02:58 AM PDT #

I configure in the right way my caldav account. The application sayd that have verify the account... but when I enetr in mobilecalendar I can't see my calendar? Where it is? Any ideas what's going wrong?

Posted by problematic_man on June 22, 2009 at 06:06 AM PDT #

@Gromski check the Account URL, it's not in the correct format.

Posted by Robert Chien on June 22, 2009 at 07:32 AM PDT #

I have a little more information on my comment above on the fact that the secondary calendars don't always get updated... What happens is that they only get updated if you make a new calendar entry or update an existing entry. It can be any calendar, including the main calendar. As long as something is updated, then all the secondary calendars get updated. Otherwise, when the spinning wheel stops only the main calendar is updated.

At least that's what happens on my iPhone. Did anyone else notice this also? If not, then something must be messed up on mine.

Posted by Ford Grasson on June 22, 2009 at 09:09 AM PDT #

URL format fixed and now appears to be working

Can't seem to find this URL format in my Google Calendar settings though - have XML, iCAL and HTML links but not sure where the CalDAV URL is

Posted by Gromski on June 22, 2009 at 05:20 PM PDT #

If anyone's looking for the same info for setting up CalDAV for iCal Server, we've published a step by step here:

Posted by Michael Oh on June 23, 2009 at 03:19 AM PDT #

I'm on a Mac and in Google calendars settings, I don't see a private address. Only the choices of XML, iCal or HTML. Which one do I choose?

Posted by Barbara on June 24, 2009 at 04:56 PM PDT #

THANK YOU!!!! This is GREAT advice and has solved a huge problem for me.

Again thank you, thank you, thank you!!!!

Posted by Gretchen Hembree on June 25, 2009 at 06:28 AM PDT #

I don't think private calendars work by any other means than giving the username and login for that account in the non-advanced settings calDAV account information. The custom url doesn't seem to work for them (I'm referring to the calendar IDs that start with "private-").

Shared calendars work exactly as described by Gromski.

Posted by dj on June 25, 2009 at 08:02 AM PDT #

Thanks for this post, nicely done!

Posted by Sam on June 25, 2009 at 11:19 AM PDT #

I don't have the new iphone (software); however, I did just set up three google calendars using all the information above on iCal on my macbook pro. The instructions for the secondary calendars is critical (thanks!). WIthout it, you get the delegates which won't show up on the iPhones/iPods. Anything changed in iCal is changing in google and anything changed in google is changing in iCal. Also, when synced with my iPod touch. All looks good.

Only thing that I do not see happening yet is I cannot edit the google calendars on the iPod touch. If my understanding is correct, this is the functionality that is on the new 3.0 software (which is not on my touch).

Perhaps it would be easier for people to set this all up using iCal because then there is no messing around with those long google calendar urls on the iPhone.

Posted by Eric G on June 25, 2009 at 02:45 PM PDT #

Thank you for these very clear directions. Works for me - primary and secondary calendars. 5 minute set up! The longest art is emailing myself the directions!

Posted by ABC on June 25, 2009 at 03:45 PM PDT #

What if you want events that added to your phone to show up on your google calendar? How do you sync iphone calendar to google calendar. When i tried this it only adds the events i add to my google calendar to my iphone calendar.

Posted by Loiku on June 25, 2009 at 04:26 PM PDT #

This worked great, except that my iPhone calendar is populated by appointments that are all two hours ahead of the Google calendar. Anyone heard of this, or know how to fix it?

Posted by Shelley on June 27, 2009 at 01:47 AM PDT #

Hi there,

Thank you so much for sharing this info. I was about to pay £5.99 on itunes for the calendar sync app so if you were around I would buy you a drink with the money I saved!

Thanks again,

Posted by Olivier Laudus on July 11, 2009 at 07:48 AM PDT #

Thanks -- very helpful!

Posted by JW on July 14, 2009 at 07:29 AM PDT #

Thank you so much for the information. It came in handy!

Posted by Vishwas on July 15, 2009 at 01:06 AM PDT #

Okay I already said thank you and have two CalDev calendars working on my phone just fine. I do however have an employee that would like the same set up (We use Exchange for email so that is not an option.) I set hers up the exact same way, but her calendars don't sync or update if you add/remove events. It will work with just one calendar in there, but not when you add the second. Thoughts? After reading the comments I may try to make the second calendar public in Google and see if I can get it to work that way.

Posted by Gretchen Hembree on July 20, 2009 at 11:55 PM PDT #

DJs post on June 24
"I don't think private calendars work by any other means than giving the username and login for that account in the non-advanced settings calDAV account information. The custom url doesn't seem to work for them (I'm referring to the calendar IDs that start with "private-")."

How do you get the private calendars to be able to be added or edited on your iPhone? Where in the non-advanced settings for username or server do you put the URL and which URL are you using?

Posted by Barbara on July 23, 2009 at 12:23 AM PDT #

In order to get this working, I had to make a slight change to the ending of the CalDAV Account URL.

Instead of:


Simply replace the '@' with '%40'. The ampersand is a special purpose character in a URL which precedes the hostname. When passing in as a parameter use '%40'. As an example, when viewing your Google calendar settings have a look at the "Embed This Calendar" section, you'll see the '@' in the calendar address was replaced by '%40'.


Not sure if it matters, but I also included the port number (:443) for the secure https URL.

If everything goes well, you'll see your secondary calendar appear in the Calendars list within the Calendar application.

Tip: The colour you select for the Google calendar views is applied to the synced calendar entries on your iPhone. Allows you to quickly distinguish which calendar an event was imported from.

Posted by jpdbest on July 23, 2009 at 03:09 PM PDT #


I'm trying to add a secondary calendar that has the following calendar id:

I've tried different combinations of

but it doesn't seem to work with any of them.

I'd really appreciate help with this.

Thanks in advance.

Posted by avery on July 26, 2009 at 05:46 AM PDT #

Muchas gracias. This was exactly the information I was looking for.

Posted by PJ on August 15, 2009 at 11:57 PM PDT #

Extremely cool !!!
Works majestuoso !

Posted by caroline on August 20, 2009 at 12:40 AM PDT #

Thanks for this write up. I have just one problem. I've setup my main google calendar and secondary calendars on my iphone and it works great. Then I clicked on your "possible explanation" link and saw that you could also set up CalDav calendars in iCal so I did that too. and added the secondary calendars via delegation.

The problem is that now I see both the CalDav calendars that I set up on my iphone AND the one that I set up in iCal and now every entry is duplicated. I can't remove the CalDav calendars on the iphone because then I would need to rely on my Mac and a hard-wired sync to get updates. I also can't remove the CalDav calendar from the iCal application on my Mac because I want to be able to see them there and it appears that the added CalDav calendars on the iphone DO NOT get synched back to iCal.

Since you mentioned both the iphone and iCal, I figured you might have figured out a work around for this issue. Thanks for any info...

Posted by Steve on August 24, 2009 at 02:19 PM PDT #

Cool. Nice to know how to add secondary calendar!
Thanks mate!

Posted by guest on August 26, 2009 at 01:22 AM PDT #

@Steve, you can select which iCal calendars you wish to sync to iPhone from iTunes under the Info tab when your iPhone is connected.

Posted by Robert Chien on August 26, 2009 at 02:40 AM PDT #

I see your "Secondary Calendar" section, but i need help on the exact account address and what format it needs to be in the Account Url. Do i need to make my secondary calendar public? Does it need to be"EXACT_COPY_FROM_SETTINGS"/"MY_GMAIL_USERNAME"

It has an account address in there already, should i paste the code from the setting into that url? Thanks for your help!

Posted by Brian Sturtevant on September 02, 2009 at 01:41 AM PDT #

OK - this is weird. I finally got it to work with avery's addition of the %40 but it syncs once at the top of the iphone screen when I open the calendar, shows the calendar, then does the sync again and everything disappears. When I go to look at the advanced information, everything I pasted in has been changed. Anyone know what that's all about?

Posted by O.J. Aldrich on September 02, 2009 at 03:08 PM PDT #

Thanks all. One tip for anyone still struggling to set up a secondary calendar without turning the calendar public. The URL that worked for me is:

Where "This_Is_Your_Calendar_ID" is the ID showing in the "Calendar Address" section (not the ID showing in any of the Private Address options). There is a comment stating that no one can link to the calendar unless it's public but that's misleading: YOU can link your iPhone calendar app because you're entering the username / pwd in the account basic settings screen.

Posted by atamirny on September 06, 2009 at 04:14 AM PDT #

jpdbest, thanks that solved my problem with the secondary google calendars! Robert, thanks for the writeup this is exactly what I needed!

Posted by Erika on September 10, 2009 at 12:38 AM PDT #

ok, secondary calendar issue. I have tried everything mentioned here but always get a bad CalDav server error, even thought the delegate (secondary) calendars show up fine in my primary calendar page. also, when i check the settings in google calendar, I do not get an ical ULR, only HTML. might that be the problem? These public secondary calendars to which I am subscribed are not available in ical/iphone?

Posted by scott siler on September 11, 2009 at 08:23 AM PDT #

Thanks Robert Lifesaver!!!

Posted by Ben Hampshire on September 14, 2009 at 09:43 AM PDT #

So glad I stumbled upon this site! I got my main google apps calendar working via setting up an exchange account on my iphone, but wanted to set up my calendar for Birthdays and UK holidays, but nothing seemed to work.

I was trying to subscribe to them or set up via CalDav... little did I know Google had already made it so easy!

Set up google mail/Google Apps sync for contact, mail and calendars here:

Then once that is done change your sync settings to select all your calendars. The instructions are here:

If you follow the instructions (for gmail and apps) you end up on a website on your phone browser and you just select the calendars via a tickbox that you want visible on your iPhone calendar! Amazing!

Posted by Joe on October 01, 2009 at 08:20 AM PDT #

Thank you for this info, it was very helpful. I also have an Exchange account for work so i needed to set up my GCal separately.

Posted by Brad Bice on October 12, 2009 at 07:05 AM PDT #

Post a Comment:
Comments are closed for this entry.

I currently live in San Francisco Bay Area. For the past seven years, I have been designing and building messaging solutions for Sun.


« July 2016