Archive for July, 2010

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 Comment

Palm to iPod (iPhone) Memo Migration: Notes+

The Palm “Memo” app is much better than the built-in iPhone “Notes” app, except for the small matter of PalmOS being discontinued. My requirements for the iPhone “Memo” app replacement:

  • Categories – or “folders”, or “tags”, or whatever. Single-tags is sufficient, multiple tags per memo is not required.
  • Per-note password protection. The Palm “Memo” app allows for individual notes to be password-protected so that one doesn’t have to password-lock the entire iPhone.
  • No cloud-service requirement. The existence of personal data in the Palm Memos makes synchronizing with a cloud service a deal-breaker. Notably, this excludes Google Docs (popular with many apps) and the apparently-popular EverNote, Notespark, and Appigo/Toodledo.com apps.
  • Data Portability. I need to import 400+ memos from my Palm.

The app I settled on is called Notes+, which at $1.99 on iTunes is very reasonably priced compared to other apps. Aside from meeting all of the above requirements, it features a freely-downloadable companion desktop application (a super-stripped-down Palm Desktop “Memo” application) which can synchronize with the iPhone, and, most importantly, stores its data in a very developer-friendly SQLite3 database.

Palm Memo notes can be exported by Palm Desktop 6.2 as a CSV file.

I wrote memo2notes.py to read this CSV file and put its contents into the Notes+ SQLite3 database. Finally, I synchronized the desktop app contents into the iPhone.

The Notes+ app itself is fine; I only have a few small complaints:

  • Category navigation is not as good as in the Palm app. It has the same “category” button at the top of the screen. On the Palm, tapping this button yielded a dropdown for category selection (either to change the browsed category, or for changing the category of the viewed memo). However, in Notes+, clicking this button brings up a category chooser at the bottom of the screen, requiring that the finger move from the top of the screen to the bottom of the screen.
  • The index of notes doesn’t use screen real estate as efficiently as in the Palm. In the Palm, the index view uses a single row of text per note. In Notes+, each note in the index takes up two rows: the subject (just like in Palm), and a second row for the note’s category. This is somewhat understandable because having only a single row would make things difficult to hit with a finger (since iPhone users don’t typically uses styluses). But it would have been nice to have a single-row option.
  • Starting up the app is delayed with a splash screen. It looks nice, but it gets in the way, and is seems gratuitous. The app is already paid for, it’s not like this is a free app trying to upsell you to a paid app, or showing some advertising.
  • On Windows, the desktop app doesn’t minimize into the system tray; it takes up Taskbar space. It is nice that you can leave this app running so that the iPhone can back up its data without having to be plugged into iTunes. Unfortunately for Linux geeks like me, there is no “headless” non-GUI version of this app.

Other Palm refugees will hopefully find this tool helpful.

Donate

(I am not affiliated in any way with SEPV Corporation, just a satisfied customer.)

7 Comments