Blog by Sumana Harihareswara, Changeset founder

27 Apr 2010, 10:55 a.m.

Importing iCal .ics Files to N900 Calendar (Maemo 5)

Hi, reader. I wrote this in 2010 and it's now more than five years old. So it may be very out of date; the world, and I, have changed a lot since I wrote it! I'm keeping this up for historical archive purposes, but the me of today may 100% disagree with what I said then. I rarely edit posts after publishing them, but if I do, I usually leave a note in italics to mark the edit and the reason. If this post is particularly offensive or breaches someone's privacy, please contact me.

I have a laptop running Mac OS 10.4.11 and iCal 2.0.5 (ancient and proprietary, I know, that's why I just got the ZaReason Hoverboard running Ubuntu). I decided to move my calendaring over to my Nokia N900. iCal, select calendar in sidebar, File, Export, name it filename.ics, use Petrovich to send the file to the N900 over Bluetooth [Yay Petrovich! So great not to have to break out the USB cable], open the file upon receipt, Maemo Calendar automatically opens and imports, right?

Wrong. Only a few of my calendar items imported. I tried exporting a much smaller calendar in case it was choking on the number of items: nope. I tried diffing the file on my Mac and the file on the N900 in case it had gotten corrupted in transit: nope. And a hasty visual inspection didn't tell me the pattern of what had imported and what hadn't.

Evidently there are different versions of the .ics standard! vCalendar, iCalendar. Since I just wanted to move the content once and didn't need to set up a permanent sync solution, I started looking around for a simple clean-up importer. But then I ran into GPE Calendar, an alternative calendaring app that does properly handle iCal .ics files, before getting around to installing or running a standalone converter script. So I ended up doing this (thanks,

  1. Install GPE Calendar ("GPE PIM Suite calendar application") from the App Manager on the N900
  2. Within GPE Calendar, hit Import from the main menu and import the .ics file
  3. Verify that GPE Calendar handles the import perfectly (behind the scenes, it moves the .ics data into the GPE database)
  4. Open a Terminal and type

    gpe-calendar -e export-from-gpe.ics

  5. Move export-from-gpe.ics to MyDocs/tmp/
  6. Open File Manager and open tmp/filename.ics to get Maemo Calendar to import the file
  7. Verify that all events have imported by checking visually against iCal
  8. Uninstall GPE Calendar via the App Manager and bask in the pretty UI and integrated alarms of Maemo Calendar
I know, installing another calendar app just for the sake of its import and export seem like overkill. I am uncomfortably reminded of "Excel as a database". But it worked.


27 Apr 2010, 13:30 p.m.

I get the .isc file transfer to work from my desktop computer to the GPE Calendar on my N900, but it seems only when a repeating calendar reminder/alarm is not set in the originating calendar - for example a birthday event that repeats every year. I get a message in the GPE Calendar that says, "invalid format for type "DURATION" in attribute TRIGGER". Is this perhaps a limiting factor for this method of transferring an .isc file to GPE Calendar - that only calendar events that don't repeat will work?

Sumana Harihareswara
27 Apr 2010, 14:16 p.m.

BHHolly, I have a monthly recurring event that transferred correctly to my N900, but it wasn't associated with an alarm. So at least some repeating calendar events do transfer correctly, but perhaps the ones with associated reminders or alarms have trouble. Sorry I didn't test that.

And I believe the correct file extension is .ics so please check that you're not using .isc as that may cause trouble.

Sumana Harihareswara
27 Apr 2010, 14:21 p.m.

Aha, even iSync fails to import alarmed items due to an N900 library issue. So it may be that there is no easy way to import alarmed items correctly from iCal to the Maemo or GPE calendars.

28 Apr 2010, 21:24 p.m.

For the record, I wrote an Calc spreadsheet that functions as a relational database at work. Including a many-to-many relationship. I am fully aware of the perversity.

11 May 2010, 23:48 p.m.

Thanks for the solution, overkill like you say but the kind of thing you only do once than forget.

One suggestion to avoid making a mess on the phone - I used the scratchbox on my Linux box to install gpe-calendar, do the import and re-export and then transferred the resulting file to the phone.