Twitter, and the wider ‘blogosphere’, have been alive tonight (UK time), with people commenting on, or mostly simply repeating, the news that Facebook have implemented the hCalendar microformat on all their events, making them parsable by machines and thus easy to add to desktop or on-line calendars. They’ve also included hCard microformats for venue details.
This is generally a good thing, but what most people — at least some of whom should have known better — failed to notice was that the implementation is broken.
Consider this event, a concert by my friends’ band, Treebeard:
which, as you can see, is on 18 February from 19:00–22:00 (7–10pm).
That’s encoded, in the Facebook page’s mark-up, as:
<span class=”dtstart”><span class=”value-title” title=”2011-02-18T19:00:00-08:00“> </span>19:00</span> – <span class=”dtend”><span class=”value-title” title=”2011-02-18T22:00:00-08:00“> </span>22:00</span>
The “-08:00” at the end of each date-time value represents a timezone 8 hours behind UTC (as we must now call Greenwich Mean Time) — that would be correct were the event in California, or elsewhere in the Pacific Time Zone; but for the UK, the mark-up translates to 3-6am.
Since the event is in the UK, the start time should be encoded as “2011-02-18T19:00:00+00:00“, which puts it in the correct UTC timezone (in British Summer Time, it would be “2011-02-18T19:00:00+01:00“). Ditto for the end time.
The same will apply for events in any other timezone on the planet, each with an appropriate adjustment.
I’ve already alerted Facebook developer Paul Tarjan to the problem, and this is my response to his requests for assistance in fixing it.
Thanks for the writeup.
Timezones are hard, since we don’t require a location to be a geo co-ordinate. Because of this, all times on Facebook are in local time to the viewer.
I’ve updated the ISO date to not include a timezone. It should be out around 5pm PST on Friday.
Paul,
Thanks for the prompt response, and promise of action. Glad I could help.
I’m in the UK, so -8:00 isn’t local to me; and I saw others in the UK reporting the same issue, with other events.
[For UK readers, 5pm PST is 1am GMT (on Saturday morning)]
You can safely attend your treebeard concert at the right time. The ISO date is now
2011-02-18T19:00:00
which your client should decide is localtime to either you or the event (depending on the implementation). Either way, that is better than -8GMT.
Thanks, Paul, that seems to work well (tested by exporting from Firefox with the Operator add-on; then importing into Google Calendar).
You used to have hCard microformats on user profiles. Will they ever return?
Pingback: Tweets that mention Fixing Facebook’s Microformats (at their request) -- Topsy.com
I noticed today that Facebook’s hCalendar microformats are again broken; the mandatory “summary” property is missing from every one I checked.