Wednesday, December 3, 2008

iCal sync broken again

Yesterday I was running around and noticed that my calendar wasn't up to date on my iPhone so I went through the following debug process. 

I have 3 macs and the iPhone all using the MobileMe calendars. First, since I was on the road, I deleted/re-added my MobileMe account to the iPhone. That was a long shot and did nothing but until I got to a machine it was about all I could do. When I got to a reasonable browser I checked my calendar directly on MobileMe. It wasn't up to date there, so data was not getting pushed up there from the machine i'd made changes on. I went to that machine and forced a "replace all data on MobileMe with data from this computer". It did the job, didn't complain but nothing was updated (nice, Apple). I looked in the console logs and saw ugliness:

12/3/08 6:53:44 AM[96229] 2008-12-03 06:53:44.779 iCalExternalSync[96232:10b] [ICalExternalSync ]Encountered CoreData could not fulfill a fault for '0x1ad70f0 <x-coredata://F854A380-7F11-44BA-A73C-C652C92C9F8C/Event/p4386>' with userInfo {  ... etc

I did a sync services reset using iSync, that did nothing.
I backed up iCal, blew away my ~/Library/Calendars folder, ran iCal and tried to restore, that failed with many of these: 

12/3/08 9:31:20 AM /Applications/[97404] setting security information: /var/folders/Xl/Xl6GakpqEEyCqKA-KgN23++++TI/-Tmp-/3B645785-A5C3-4AB1-AF16-947275E7716F.calendarstore/Calendars/FF3D9B60-07CC-4018-81FC-75E582A279F4.calendar/Events/4705E730-A642-402A-AF47-E5AB6F200169.ics: Operation not permitted 

So then I pulled back my ~/Library/Calendars folder, exported each individual calendar as a .ics and saved all my subscriptions off (to notepad). Then blew away the folder, launched iCal, imported each calendar and subscription and then did a "Replace all data on MobileMe with data from this computer". That worked.

My guess is this mess came from my experimentation with the Google Calendar CalDAV support for iCal through their Collaboration tool. It was about the time I added that calendar that the sync stopped working. 

It turns out the even with CalDAV support (and assuming it didn't break iCal), Google Calendar still isn't as good for the Mac User as Exchange or native iCal as there is no ability to see the google Calendars on the iPhone short of using something like BusySync