Home Picture Galleries Writing Technical Arcana Books Archive About This Site

Google search Hamfisted

Google Calendar

Switching to Google Calendar

I'm not naturally an organized person, but maybe organized people don't really exist. Maybe organized people are just disorganized people who keep to do lists, calendars and notes to make them seem organized. Either way, I started keeping a calendar a number of years ago, using Microsoft Word (ugh). I then upgraded to Mozilla Calendar, and then moved across to my own small web-based calendaring system, written in PHP and MySQL. I stuck with that for a while, since it did pretty much exactly what I wanted - I wrote it, after all. Then Google Calendar came out, and I was most impressed. All I had to do was to get my data across. This wasn't a huge effort, but there were a few tricky bits which warranted a writeup.

Import Format

Google Calendar can import iCal or CSV data, which allows transfers from Outlook, Apple iCal and Yahoo Calendar. My data was in my own custom format though, which meant I needed to find the exact format of the CSV file and write a quick output script to arrange my calendar data accordingly. A bit of digging in the Google Help Center and I discovered this field list (all on one line in the input file):

Subject, Start Date, Start Time, End Date, End Time, All Day Event, Reminder On/Off, Reminder Date, Reminder Time, Meeting Organizer, Description, Location, Private

This was most of the battle right there, but there were still a few difficulties to be overcome with the format of the data itself. Google's calendar import process isn't very friendly when it fails, displaying this message:

Processed zero events.
Failed to import events: Unable to process your iCal/CSV file. The file is not properly formatted.

Some indication of exactly where the import fails would be nice, but nevertheless I persisted and with some tweaks produced this valid data line:

"Kitsilano house hunting","21/12/2003","17:00:00", "21/12/2003",,"False","False",,,,"",,"False"

Note that there are no spaces outside the quotes. That messed me up, particularly as there are spaces in the field list. The date format is also dd/mm/yy, and On/Off fields are "True" or "False". There's also no option for events to be repeated, so I had to go in and manually update all my birthdays to repeat yearly after I'd done the import. It wasn't too bad though, as I don't have too many friends. You can grab a small demo import file if you want to check it out further.

Time zones

I also had a small problem with time zone settings when I did my first test import. Each calendar has its own time zone setting, and if it's different to the overall calendar time zone setting, it will recalculate the dates and times for your events. This is actually a good feature, and allows for synchronization of calendars in different time zones, but as most of my imported data was merely historical, I didn't need to know that I met someone for breakfast in Vancouver at 3am Australian time.

Deleted Events Just Won't Die

I hit another problem when I tried to re-import these events with the correct time zone. When I tried, Google said:

Processed one event.
Successfully imported 0 events.
Failed to import events: Some of the events in this file were not imported because you had imported them to Google Calendar before. Other events in this file have been imported..

Interesting - it seems that Google retains the deleted events somehow, and won't let me overwrite them. I didn't actually find a nice way to fix this - I had to go into the Settings option, choose the Calendars tab, and hit the little trash can next to the calendar to delete ALL the events in the calendar. This worked because I was just doing an initial import, but if I'd had a bunch of existing events in there, it would've been very annoying. There really should be an option to overwrite these events, or purge the hidden deleted events from the calendar.

That's about it. As I said, it wasn't much of a challenge, but there were a few snags. I'm now completely shifted across to Google Calendar and I like it a lot. See you next Tuesday at 10:00am.