Apple still hasn't gotten this right. It's almost there, but not quite. I'm talking about the CalDAV two-way communication between Google calendar and iPhone's iCal. The communication is only one-way at the moment. Upon updating iCal on the iPhone, the phone connects with google and updates the calendar. All well and good. Upon updating iCal on the desktop also updates google, BUT NOT the iPhone. The only workaround I've found is to go into the Settings → Mail, Contacts, Calendars, and then for each calendar you want updated change the URL by replacing the
%40 with the @ symbol (like I'm doing in the pic), then launch iCal and wait for it to connect up with google and grab all the events. I hope Apple fixes this annoyance soon.
Update (Friday, July 31, 2009): I posted the essence of the above on Apple's bug reporting site shortly after I wrote it up. For some reason I didn't think I'd get a response from them. To be fair, they did (and quite quickly at that) fix an OpenGL problem a few years ago when I sent them code exploiting the lack of functionality. Actually, in retrospect, I remember being quite impressed that within a few weeks a software update patch came out fixing that very problem (among other things). So I don't know why I was skeptical this time. Maybe because of my own lack of understanding of what was going on under the hood this time around. Anyway, I explained to them what I wrote above. They got me to install some code on the iPhone to enable logging. But, after going through the paces with logging turned on, I could not reproduce the problem. My sneaky suspicion is that maybe that logging facility code contained more than just logging. I'm wondering whether they didn't just get me to test some patch of theirs. Well, so what if they did...iCal now seems to be working, and I was happy to report back that the problem has been resolved. It seems to be on my iPhone anyway :)