I’ve been using iCal for a couple of years now; never really loved it but it’s OK. Today for some reason my PowerBook locked up (no big gripe, this hardly ever happens) and when it came back up, iCal showed a little red splodge next to my calendar which when clicked said “iCal was unable to load the calendar. The file might be corrupted or temporarly (sic) unreadable. you can try again later or reset this calendar. Resetting the calendar will remove all calendar content.” There are not words to express how much this sucks. A programmer working for me who left this kind of hole in a personal-productivity application would be subject to dismissal. Anyhow, I got my life back; read on to find out how, along with some other advice to iCal users and to Apple.
What Went Wrong ·
Of course, in a sane world iCal would store a calendar named “Tim” in
Library/Calendars/Tim
, but they’re off in Library/Application Support/iCal/Sources/<long-hexadecimal-string>
.
And mine contained eight hundred thousand null bytes.
Dear Apple · Here’s how you update a file containing valuable data safely:
First, you write out the new version without touching the old version, and carefully check that it worked.
Then, you move the old version aside, giving it name like Tim.ics.backup, and carefully check that the move worked.
Then, you move the new version in to the location of the old version and carefully check that this worked.
Then, you delete the backup. Even better, don’t; keep a few generations around.
I don’t want to be rude. But a personal-productivity application that updates crucial high-value information files in place is Broken As Designed, and evidence of an extreme lack of professionalism.
Dear World · Try to find an alternative to iCal. While its UI is good, it’s still kind of sluggish. And all the exciting action out there is in shared calendaring on the net, so you can update it from anywhere and share it with family and friends. Anyhow, my hunt for alternatives is now officially in high gear. I would like an Open-Source alternative so I can verify that they, unlike the iCal developers, know how to save files safely.
But if you must use iCal, publish your calendar. That means, find or build a WebDAV server somewhere, or use Apple’s own .Mac service, so that when iCal decides that it’s OK to discard your whole life, there’ll be an alternative somewhere else.
That’s what I did, so I was able to go get the .ics
file back
from that server and restore my life.
It could have been worse; it could have decided to upload the corrupted
calendar and overwrite the backup.