jkeating (jkeating) wrote,

Getting Fedora Schedules into google calendar

I'm a calendar junky. If it's not on my calendar (and synced to my evolution and my iphone) I likely will forget about it. That's why it was important for me to figure out how to get my google calendar shared by both iPhone and Evolution so that I can make changes at any of those three points and have all there kept in sync easily. I'll detail that arrangement for anybody that would like it.

John Poelstra has done great work for getting a schedule in place for Fedora. Part of that work is producing .ical files for the various different task lists. See http://poelstra.fedorapeople.org/schedules/f-12/ for all that is available.

Given my capacity to forget dates, I wanted to import the .ical file for Release Engineering tasks into my google calendar. This turned out to be far harder than it needed to be, mostly because of how .ical is a fairly loose standard and no two producers/consumers shall agree. Every time I attempted to import or the .ical file I wound up with odd timezone issues and events spanning multiple days. Turns out that Zimbra reads X-MICROSOFT-CDO-ALLDAYEVENT:TRUE while google doesn't, so google was going by the timestamps on the events, offsetting the UTC for my Pacific timezone and generally making a mess of it.

Of course, I couldn't just find what Google wanted to see, searching for terms that involve google is not exactly easy. What I wound up doing was creating a test calendar in google, adding an event that was an all day event, exporting that as a .ical file and reading what it wrote. BINGO! Seems that in order to accomplish an all day event in google calendar parlance, you just have DTSTART and DTEND be just dates, without any time attached. Once I had that info, it was easy to sed the .ics file from John to strip the time parts out of the events (since all the events are listed as all day events) and then I had an .ics file that imported nicely into google. John says he'll look at doing the sed himself when creating the .ics files since he already has to post-process them out of TaskJuggler.

Lessons learned:

1) When testing importing events to your google calendar, do create a scratch calendar to test with. Deleting 40 some odd events by hand was not fun :/

2) When in doubt of an expected format, generate said format from the tool itself to get an idea of what it would like.

3) TaskJuggler can do neat things, but ZOMG does it have a learning curve. I wasted two hours or so trying to figure out how times and dates were set thinking that the .ics was getting generated incorrectly, and I still don't really know how it does things. I just backed away slowly and went on with "ok, just fix the .ics manually after the fact" route.
Comments for this post were disabled by the author