I used Palm Desktop from 1999 until December 2005. In 2004, I migrated my address book information to Apple's Address Book for its greater flexibility and integration with the OS. I hesitated migrating my calendar information because I was concerned that I would lose some functionality. This year, I decided to migrate to iCal. I do miss some features of Palm Desktop, but iCal does offer features that are not in Palm Desktop.

I was using Palm Desktop (version 2.6.3) under Mac OS 9 and migrated to iCal under Mac OS X by way of Palm Desktop (version 4.2.1) under Mac OS X. (In retrospect, I don't think it was helpful to migrate through version 4.2.1. When I was having problems, I did that migration hoping that the newer version would offer more flexibility in exporting.) My migration was not painless. As I was not quick to migrate, I expected to find instructions and advice from others that had already done it. All I could find was a shareware application that never worked for me. The rest of this page are my notes on how I migrated. I hope someone trying to migrate from Palm Desktop to iCal will find this helpful.

Goal 

Migrate from Palm Desktop 4.2.1 to iCal 2.0.3 (1055)/Address Book 4.0.3 (483)

Caveat 

This approach is tailored to my situation and may completely mangle your data. It would be wise to read this entire document (including the "Known issues" section) before using. Examples:

* I did not use alarms in Palm Desktop, so there is no provision for migrating alarms

* Many of my TO DO items had category 2 set but not category 1 (this is a historical problem so remote that I don't recall the cause); these are accommodated

* I rarely used multiple categories, so this issue is not handled well

Distribution and Disclaimer

These instructions and the accompanying Perl scripts are distributed under the Perl artistic license. By using the software, you agree that you alone are responsible for any consequence of the use of the software and that your sole remedy is to delete it from your computer.

While it worked well for me, it will probably erase your hard drive, cause your network performance to suffer, break some of the pixels on your monitor, and may make your cat spontaneously combust. Plan accordingly. Back up your data regularly and keep a fire extinguisher handy. Do NOT run the script as root or with administrator privileges; it doesn't need them, it doesn't want them, and it wasn't tested with them.

Method

I strongly recommend doing at least one dry run before committing to the migration. Some things may be easier to fix in Palm Desktop.

Clean data:

* delete or schedule all unscheduled events
* remove multiple categories manually from all records
* delete completed TO DO items and events that are no longer of interest

Export data from Palm Desktop:

Put these files in the same folder (directory) with the program files. You don't have to use these filenames, but the rest of the instructions assume you do.

* Date Book data (vCal format) in exp-date-book.vcal
* To Do data (Palm format) in exp-to-do.palm
* Address data (vCard format) in addresses.vcf
* Memo data (any format) - this will be an issue to address later

Import vCard file into Address Book:

This can be done through the Import menu item or dragging the file into Address Book. A limitation is that notes, custom fields, and categories all end up in Address Book's note field. A program could probably massage the file into a better form, but I didn't write one. I fixed the records manually as I used them.

Import files into iCal:

In Terminal.app, run mkical-events.pl and mkical-todos.pl:

    $ cd ~/where/you/put/the/perl/scripts
    $ chmod 700 ical-events.pl ical-todos.pl
    $ mkdir ical-import
    $ ./mkical-events.pl exp-date-book.vcal
    $ ./mkical-todos.pl exp-to-do.palm


Use whatever tool you like to set the file type for all files in ical-import to "vCal". I used "iLikeYouMore.app", though I don't know that it is still available for download.

Import each file in the ical-import directory into iCal. This can be facilitated by telling the Finder to open the files with iCal. For each file, tell iCal to put it in its own calendar. It is relatively easy to move large numbers of items from one calendar to another (with multiple items selected in the search results pane [see View menu], control-click to bring up a choice of calendars). Expect to do further clean up later.

Memos:

Some of these should be notes for a particular Event or TO DO. Others may belong in a note keeping application (eg, sidenote, VoodooPad Lite, viJournal Lite) or plain text files. With memos, you're on your own.

Known issues

Some of these can ruin your day if you are not prepared. I've used red for the ones with the greatest potential for a loss of data.

* clicking on imported unscheduled TO DO items crashes iCal (this is a limitation of ical-todos.pl; this should be fixable if you are willing to work on the code)

* information on recurring TO DO items is lost (by removing a "#" on line 50 of mkical-todos.pl, all uncompleted TO DO items can be flagged with "may recur")

* event items with multiple categories produce separate calendars for each permutation (not combination)

* to do items with multiple categories ignore a second category (but will use category 2 if there is no category 1)

* iCal will only import a file TYPEd as "vCal"; CREATOR is not important

* multi-day events (RRULE:D1) get created as a recurring event (one each day)

* all recurring events get the string "(recurs)" appended to their description - this is intended to make it easier to fix multi-day events and redundant birthday events

* for TO DO items, alarm, priority, and privacy are not preserved

* links (attachments) between Palm records are not preserved

* data in memos is not handled

* when exporting in vcal format, Palm Desktop escapes semicolons, but iCal does not seem to realize these are escaped