I know this is an old thread but I just got here trough Google ...
And after a lot of experimentation I found out this, I will paste what I just posted in Apple Discussion forums (
http://discussions.info.apple.com/thread.jspa?threadID=2710767&tstart=0)
Ok Guys, I just spent the last 4 hours going nuts with experimentations, trials and errors, and I finally think I figured it out, so bear with me here because it's not that simple. And excuse me for the poor english, I'm from Brazil.
Ok, in the iMac you're gonna set up a CalDAV account with your google login/password. It will work flawlessly and you won't have any problems, it will always update the google calendar and be updated by it. Just remember to use CMD+R to refresh it whenever you want, so you don't have to wait the 15 minutes or whatever you set in preferences.
Now let's talk iPad and iPhone. First of all, you have 2 options to sync calendars with Google, you can use protocol CalDAV or protocol Exchange.
Google's setup instructions for CalDAV (both iPhone and iPad) is here:
http://www.google.com/support/mobile/bin/answer.py?answer=151674
The instructions for both iPhone and iPad for Exchange is here:
http://www.google.com/support/mobile/bin/answer.py?hl=en&answer=138740
(just be sure to select calendar only, cause I'm assuming you're using IMAP or other protocol for mail and contacts).
The main difference between CalDAV and Exchange is that Exchange supports push updates, wich is instant, while with CalDAV you have to fetch manually (every time you open the calendar app) or another time setting (like 15 min, one hour, etc).
Well, my experiences revealed that the iPhone and the iPad will sync flawlessly with Google Calendar and the iMac, without any problems, BUT as long as you use Exchange AND Push to update the calendars (CalDAV doesn't support Push, and you need Push so the iPad sync works).
Let me repeat that: IF and ONLY IF you have BOTH Exchange protocol configured and PUSH enabled iPad and iPhone will sync flawlessly. But many people (me included) dont want to use push because a) it has a battery hit b) they don't need instant updates c) it consumes cellular data when you're not on Wifi, and if you don't have an unlimited plan that's not good.
So, if you TURN OFF PUSH with Exchange sync, the iPad will stop syncing properly. Curiously, the iPhone will continue syncing properly.
What I discovered is that, on the iPad, doesn't matter if you use CalDAV or Exchange, the moment you turn OFF push notifications it won't sync manually anymore. And by that I mean that with push off the iPad will not refresh calendar data when you open the calendar app (as it should since push is off and manual fetch is selected).
To sum it up, I discovred that with push OFF in both the iPad and the iPhone (either with Exchange or CalDAV):
The iPhone will update both google calendar and the iMac;
The iphone will be updated by both google calendar and the iMac and events created in the iPad;
The iPad will NOT be updated when you open the calendar app, so it won't see any changes made either on the iPhone, iPad or Google Calendar, but when you create new events in the iPad you will see the data icon spinning so it will send that event to the other 3, but it will not recieve anything.
On macrumors forum people discovered that on the iPad, if you open your calendar, close it, change settings from manually fetch to 15 minutes or whatever, it will sync the next time you open your calendar. But it's unreliable (doesn't work every time), not to mention that you won't want to do that every time you need to sync your calendar !
What about the iPhone ? Well, in my experiences I found out that it doesn't matter if you use Exchange OR CalDAV, it will manually sync with push off every time you open the calendar app. Just a sidenote: the iPhone wasn't manually refreshing with push off as well, just like the iPad, but as soon as I rebooted it started to sync manually every single time and it has been so far. But the iPad didn't sync manually every time even after I rebooted it.
To end it all, how to know if the calendar is manually syncing with Push OFF ? Well, just open the calendar app and after 5 seconds you should see the data spinning logo right next to the 3G or Wifi icon in the status bar. It must happen EVERY time you open the calendar app (you don't even need to force quit the calendar app for it to happen, it must happen every time you hit home and then open the calendar again). If it's not spinning (recieving data) 5 seconds after you opened the calendar app, it's not manually syncing, so on the iPhone you should reboot and on the iPad there's no fix I found so far (besides the unreliable fix of chaning the fetch time like I said before).
Oh, I did all these tests with an iPhone 3GS running iOS4 (don't complain it's not 4.2.1, cause the iPhone IS working, the problem is with the iPad), and an iPad running 4.2.1.
I just hope this thread gets attention because It almost drove me nuts to figure out all these things.
Cheers,
Felipe Raul