On this week’s Innovators show, Doug Day joins me to discuss the new iCalendar validator he has recently deployed on Azure.
The project draws inspiration from the pathbreaking RSS/Atom feed validator originally created by Mark Pilgrim and Sam Ruby. The RSS/Atom validator’s test-driven and advice-oriented approach is exemplary, and the iCalendar validator follows in its footsteps.
The tests, in this case, are iCalendar snippets that are, or are not, valid according to the spec. These snippets, packaged into XML files, form a library of examples that does not depend on the programming language used to run the tests. So although Doug’s validator, based on his open source parser, is written in C#, another validator written in Java or Python or Ruby could use the same test suite.
The advice offered is minimal so far, but I hope will expand as the test suite grows. Sam Ruby observes:
Identifying real issues that prevent real feeds from being consumed by real consumers and describing the issue in terms that makes sense to the producer is what most would call value.
In that spirit, I am gathering examples of calendars in the wild and looking for ways to help Doug add value.
In the podcast we discuss a nice example that came up recently in the curators’ room of the elmcity project. A custom-built calendar contained events (VEVENT components, in iCalendar-speak) with no start or end times (DTSTART and DTEND properties). This, it turns out, is not prohibited by the spec. But reporting no error is unhelpful. The author of the calendar — or of the software that produced the calendar — ought to be warned that such a calendar won’t yield a useful or expected result.
Why would anyone produce such a calendar in the first place? This harkens back to the early days of RSS. Many of us found that we could craft simple ad-hoc feeds in order to leverage RSS as a lightweight data exchange. It was liberating to be able to do that. But hand-crafted feeds, or feeds written by hand-crafted software, were valuable only to the extent they would reliably interoperate. Often they would not. The feed validator, by showing what was wrong with these feeds, and explaining why and how to fix them, was a powerful ally for those of us trying to bootstrap a feed ecosystem.
The iCalendar validator has a long way to go yet. But the road ahead is well lit, and I’m grateful to Doug Day for resolving to travel it.
January 6, 2010 at 4:30 pm
[...] Talking with Doug Day about the iCalendar validator « Jon Udell [...]
January 6, 2010 at 6:23 pm
[...] Talking with Doug Day about the iCalendar validator « Jon Udell Any push to standardize iCalendar is good in my book, also check out this post (and the whole blog) for more calendar standardization/validation discussion. [via twitter.com ] [ programming, discussion, calendar, validation, dates ] permalink Latest Updates from this link [...]
January 18, 2010 at 10:04 am
RFC2445 is obsolete should be RFC 5545
January 18, 2010 at 10:37 am
You’re right. I’ve been saying and writing 2445 for so long it’s hard to break the habit. But as of Sept 2009, it’s 5545.
It’s like writing 2010 for the first time, after writing 2009 so many times. Hard to make the shift!
March 3, 2010 at 4:33 pm
I used RFC2445 when writing http://feed2ical.appspot.com. I will let you subscribe to feeds in iCal, Outlook 2007, etc.
webcal://feed2ical.appspot.com/convert?url=http%3A%2F%2Fblog.jonudell.net%2Ffeed