Wednesday, July 19, 2006

Let Your Google Calendar Evolve

I successfully added my Evolution (desktop-based) calendar events to my Google calendar with a few very easy steps (see below). To see how to view your Google Calendar from Evolution, check out Johnny Jacob's fantastic tutorial Johnny [Life & Code]: Google Calendar in Evolution. Got me fixin ta git me summa them screenshots an' purty up my page. Geez, Johnny. Make the rest of us look bad, why don't ya!


  1. Export Selected Evolution Calendar to Disk
    1. In Evolution, under the Calendars button in the left hand navigation frame, highlight and right-mouse click the the name of the calendar you wish to export to google.
    2. From the pop-up menu, select "Save to Disk".
    3. Within the Save dialog window, select the "iCalendar format (.ics)" from the list of file types at the bottom of the window.
    4. Enter a name for your calendar export file. **Be sure to append the file extension (.ics). Evolution will not add it automatically.
    5. Select filesystem location easy for you to remember and click Save As.
  2. Create and/or Select the Google Calendar to Receive Import
    1. In your Google Calendar account, if the calendar you wish to receive the import already exists, skip to the next numbered step. If you do not have a calendar to which you will import the new calendar file (see step 5), follow the appropriate links or help instructions on the Google Calendar site to create your receiving calendar.
    2. Click the "Manage Calendars" link at the bottom of the Calendars nav box in the left-hand navigation column.
    3. Click "Import Calendar" tab (link)under Calendar Settings.
    4. Click "Browse" button next to "Step 1: Select File" field and navigate to the calendar file you created in step 5.
    5. Use the select box in "Step 2: Choose Calendar" to select the Google calendar to which you will import the new file.
    6. Click "Import" button next to "Step 3: Complete Import". If successful, the page will refresh with a message saying "X events were imported into ______ Calendar". (not a direct transcription of actual message, but the gist of it nonetheless.)
  3. Check Your Work
    1. If successful, go to the Calendars box in the left nav and make sure that check box next to the calendar name is checked.
    2. Click the calendar's name and navigate through the calendar to make sure the new "events" have been added. **I've noticed it can take a minute or two for new entries to update. Refreshing the page or switching your calendar view seems to refresh the page and reveal the newly added data.
  4. Comments and Caveats
    • I noticed that the times in my entries shifted back 3 hours. I'm on EDT and the site is hosted in the Pacific timezone. Google's import code is probably adjusting the time displayed to the server's timezones. It's the same data, just assuing that you want to see it in California People Time - CPT ;-)
    • I haven't completely troubleshooted the transfers I've made so far, the items I have checked seem to have come over almost perfectly. There's some occasional wierdness in the formatting or character selection in the Comments section (e.g. a pair of TAB characters from Evolution were converted to lowercase letter "t" on import). Not sure if it's the Evolution export or the Google import that catches the blame for that one.
    • Several events on my exported calendar were recurring (repeating over a given date range daily or weekly). I'm happy to note that they carried over into Google as recurring events. In which case you are able to update or delete one and Google will ask if you wish to do the same for the repeats.
    • Finally, so far so good as far as all fields and event properties (e.g. location, show time as, privacy level...) appear to have carried over from Evolution to Google (individual and repeat events alike).
  5. Additional Testing and Follow-Up
    • Haven't tested this yet, but would really like to know what happens when you update your Evolution calendar, create a new export file, and import the newer file to Google. Does Google prevent double entries for the same event? Will it prompt you to overwrite (or not) the existing event with the event info from the latest copy?
    • I have successfully made changes (e.g. correcting the event times) in the imported events. However, I have not tested uploading an updated event from Evolution to Google. Will Google do a "diff" between the data file and the data on their site? If so, will it choose the authoritative version automatically (which one)? Will it prompt you to choose? Will they give you an option to merge the data from both where possible?
    • Finally, (as if you couldn't tell before) this is a workaround. Despite looking clunky and laborious in all its steps, I was surprised at how relatively quick, easy, and painfree the effort was. (For example: I still haven't managed to sync my WinCE smartphone to Evolution. <Wince!> indeed!).
      That said, the standard protocols and an API for Google Calendar already exist, putting the pieces in place for an update for Evolution popping up in our respective package managers in days, if not weeks. Should I be predicting wrong, then I challenge all the sharp hackers out there to turn away from Unreal Tournament and WoW for 10 minutes and bring your prodidgious grey-matter to bear on what would seem such an academic exercise in coding. Imagine, fifteen minutes of lightwork, and the love, admiration, cell numbers, IMs, MySpace pages... of the world will be yours. Think about it!

As always, Peace & Blessings.
(Now more than ever!)