A fix for disappearing to dos and calendars in iCal

Sep 03, '08 07:30:03AM

Contributed by: ur_beer_buddy

Recently, iCal started acting strangely with screen artifacts, non-responsive behavior, and unexpected quits (I would think that Leopard would start expecting them after a couple dozen times!). I could change views from the menu, but not from any of the buttons. Deleting the iCal preference files brought only temporary satisfaction. iCal would then open fine, but at some point, the calendars and to dos would suddenly disappear from sight. (I found this would happen when I would open the to do list.)

Hiding the to do list would make the calendars visible again, but I still could not work in them. After some testing (checking one calendar at a time and opening the to do list to see if it would freeze), I narrowed down the problem to a corrupted to do in one of the calendars. This is how I fixed it:

  1. Quit iCal.
  2. Delete the following preference file: ~/Library » Preferences » com.apple.iCal.plist
  3. Open iCal.
  4. With the to do list hidden, export the offending calendar and delete it from iCal (you have multiple back ups of your calendars, right?)
  5. Open the exported calendar in TextEdit. Each to do entry will look something like this:
    BEGIN:VTODO
    PRIORITY:0
    SEQUENCE:8
    DTSTART;TZID=America/Denver:20040101T120000
    UID:AF68ADF6-C8EC-4543-B0AC-0CCED4CA8FD5
    STATUS:COMPLETED
    DTSTAMP:20080721T221616Z
    SUMMARY:New To Do
    CREATED:20080827T223955Z
    COMPLETED:20080812T060000Z
    X-APPLE-SORT-ORDER:2127475757
    DUE;VALUE=DATE:20080808
    END:VTODO
  6. Delete the chunk of code for the last to do and save the file. Go ahead and overwrite the locked file when prompted.
  7. Repeat steps one through three, and then import the edited calendar file into iCal.
I had to delete the last two to dos to fix my issue -- one was blank and the other was simply labeled New To Do. I hope this helps.

Comments (1)


Mac OS X Hints
http://hints.macworld.com/article.php?story=20080829092036465