Google’s exchange calendaring support for the iPhone always felt like a hack, and having tried syncing to a real exchange server I knew it was the fault of the protocol. I was excited at first to get push calendaring but the benefits just didn’t seem worth the hassles I had to put up with. And I’m very glad I decided not to try contact sync.
A bit of background: before exchange sync was available I was using plaxo to sync between my mac and google and then iTunes sync to the phone. This is important, because I knew exactly what the phone was capable of (in short, it’s very similar to iCal just with a limited set of recurring time periods). I switched to get over-the-air calendaring, but it hasn’t been pretty.
Beyond a few early problems with updating, the limitations of the exchange protocol bugged me constantly. It doesn’t support multiple alarms on one event and a few of my events wound up with a weird identifier string invited to them. The worst part though is it can’t move events between calendars; I often forget to change the calendar when creating events and pre-exchange it was an easy fix. With exchange sync, I had to delete and recreate the event when that happened.
All of that is fixed now that I’m using the caldav support added in OS 3.0. I can create multiple alarms again, after a few edits i’ve fixed up the weird events created under exchange protocol that the iPhone thought I didn’t own, and tonight when I set a calendar reminder on my mac to delay for 30 minutes I got a nice surprise when the re-reminder dinged on my phone as well. This is finally as good as direct phone syncing, and doing it over the air for instant updates isn’t costing me a MobileMe subscription.
I didn’t mention it at the time but the news of CalDAV support was my main reason for happily un-jailbreaking the phone. CalDAV worked so well with iCal that I had a feeling it would be awesome on the iPhone. And it is.