Palm to iPod (iPhone) Datebook Migration: Google Calendar


Migrating calendar data was supposed to be easy compared to migrating Notes and Contacts data. The unanticipated problem was that Palm Desktop v6 stores its data in some proprietary format that appears to be a Microsoft Access Database file, and it “exports” that data into another proprietary format called a “Datebook Archive”.

After much blood, sweat, and tears, this is how I got 6000 calendar events out of a Palm and into Google Calendar (and thus into an iPod Touch):

  • Export Palm Datebook data as a vCalendar file:
    • Download and install Palm Desktop v4 in a clean environment – one not polluted by Palm Desktop v6. In my case, I installed Palm Desktop for Mac.
    • Hotsync the Palm into this Palm Desktop v4.
    • Launch Palm Desktop and start the Datebook.
    • Export as vCal.
    • Close and uninstall Palm Desktop; you’re done with it.
  • Convert the vCalendar file into an iCalendar file. I used Apple iCal.app to import a vCal file.
  • Export the data as an .ics file. I used Apple iCal.app to export its data, which will create an .ics file.

At this point, you should theoretically be able to upload this .ics file into Google Calendar and be done. If you have a small calendar, then this will probably work. Stuff that didn’t work:

  • dba2ics promised to convert my Palm Datebook archive into an iCal file. It got a lot of stuff, but it also missed a lot of stuff.
  • Apple iCal can read the vCal export, but has some bugs where it transforms the vCal data into something else:
    • All-day single-day events in the vCal file get transformed into two-day events in iCal.
    • There is some kind of leap-year-ish bug where a Mar 1 event in the vCal file got transformed into a Feb 28 event in iCal.
  • I tried many different ways to get the iCal.app data into Google Calendar:
    • Create a CalDAV calendar (pointing to Google Calendar) in iCal. Copy-paste all the iCal events into the CalDAV calendar. This just froze iCal.app.
    • Use the Google Calendar ‘import’ dialog to receive the .ics file:
      • There is an undocumented maximum-file-size limitation of 1MB or so.
      • After splitting my .ics file into smaller pieces, Google Calendar barfed on something and presented me with an empty error dialog box.
      • Also, when uploading these .ics files, Google Calendar also reported API-call quota limits.
  • Google Calendar itself has its own quirk where recurring events appear to only get about 720 recurrences after which they stop (for DAILY events, this is about two years).

I wrote some python code to insert calendar events using the Google Calendar API. This unsurprisingly quickly encountered API-call quota limits, but now I could see that the limits were on the order of 5000 API calls per day “burst rate”, or 1 API call every 10 seconds sustained.

Fellow Palm refugees: you can find icalutil at github.com; I hope you find something useful.

Donate

  1. #1 by Ken Ho on Mon Feb 28, 2011 - 7:30 pm

    FYI, the Palm Desktop 4 link:

    http://kb.palm.com/wps/portal/kb/common/article/33529_en.html

    does not seem to be returning anything.

(will not be published)