Google Calendar and abusing/not-using XML

Update: - Google has added a full mode (replace basic in the feed XML url) which provides very nice XML. startDate and endDate are attributes of the gd:when tag. Also, another nice thing was the expansion of recurring events by specifying a window of dates to query. The events are both marked as recurring (and still using iCal recurring format) as well as specifically placed at each recurring event time. This allows devs and users to quickly use the XML feed and provide recurring events without having to deal with that massive hoard of confusing logic (every other Tuesday in April and June except on the 3rd Tuesday of June)

I spent the weekend digging further into the Google Calendar tidbits and putting together a project. There are some odd things about the XML output.

The actual date and time of the event are stored as plain text in the summary node:

When: 2006-05-14 20:30:00 to 2006-05-14 22:30:00
Who: Where: Boston Logan Airport, Boston, MA
Event Status: CONFIRMED

Why didn't Google use some form of XML, perhaps inspired by the Microformats hCalendar format? This is especially important because as Google demonstrated, it seems to change between using
to properly formed
tags (breaking my parsing code).

What is even more puzzling are recurring events:

Recurring Event
First start: 2006-04-18 09:00:00
Duration: 5400
Who: Public,Where: Warren, Michigan
Event Status: CONFIRMED

There is no actual output of the ending date, or type of recurrance the appointment has. iCal specifies it as the following:


DTSTART;TZID=America/New_York:20060418T090000
DURATION:PT5400S
RRULE:FREQ=WEEKLY;BYDAY=TU;UNTIL=20060627T130000Z

which covers all the pertinent information for recreating the output. This is perhaps why the Google Calendar homepage add-in doesn't yet support recurring events. It's currently impossible to!

And don't trying going to http://schemas.google.com/, which is where the schema tag points to.

Lastly, it would be very nice if the If-None-Match request-header was honored for updating the calendar RSS feeds.

Hopefully Google fleshes this out soon.

About this article

written on
posted in TechnologyProgrammingGoogleGoogle Calendar Back to Top

About the Author

Andrew Turner is an advocate of open standards and open data. He is actively involved in many organizations developing and supporting open standards, including OpenStreetMap, Open Geospatial Consortium, Open Web Foundation, OSGeo, and the World Wide Web Consortium. He co-founded CrisisCommons, a community of volunteers that, in coordination with government agencies and disaster response groups, build technology tools to help people in need during and after a crisis such as an earthquake, tsunami, tornado, hurricane, flood, or wildfire.