If you’ve ever wanted to easily find out what events are happening in your area, you know what an impossible a task it is. I usually have to check 4 or 5 sites, plus Facebook and Twitter before I feel up-to-date. To make matters worse, none of these services freely exchange information. An event listing on Upcoming, for example, has no correlation with the same listing on Facebook.
Adding insult to injury, duplicate events with differing times and dates often arise, cluttering up an otherwise decent experience with this:
Sun 05:00 PM Caribbean Night with the Marbali Steel Drum Band
(eventful: Inn at East Hill Farm)
Sun 05:25 PM Caribbean Night
(upcoming: The Inn at Hill Farms)
Which time is correct? Is the venue called East Hill Farm, or Hill Farms? The good news is problems like this can be avoided if these services just talk to each other.
From my experience with the APIs of the big players in the event listing market (Upcoming, Zvents, Eventful, TicketMaster, etc.), it is evident there is no standard format being used to exchange event information behind the scenes. If you’ve ever seen an event listing with redundant date, time and location information in its description, it’s because a proper event listing standard has yet to be widely adopted.
Each API arbitrarily assigns its own naming scheme, date formats and data structure. At Localist, we’ve picked up the slack a bit by developing customized parsers to retrieve and standardize the information, but cleaned up information isn’t truly useful until the format is adopted by a wider audience.
What about hCalendar?
While hCalendar is a great microformat for standardizing the presentation and “scrapability” of event listings (making the search engine the API), it inherently requires that all data related to the event be visible to the user. In practice, this has forced most event listing sites to intentionally limit the amount of parsable data available, restricting additional useful information to be entered in the free-text description ï¬eld, where no standard is defined.
Also, providing relational information between events and performers is not reliably possible using hCalendar. For example, if there are 5 recurring instances of “Trivia Night” at “Joeʼs Bar,” it is not possible to attach photos or other useful data to “Trivia Night,” only the specific date instance. This results in isolated information that is quickly lost as time goes on.
What needs to be done?
The first step is to get everyone, not just the big event listing services, to adopt a simple standard that has already been widely adopted. The best candidate so far is iCalendar, or ICS. Every calendar on the Web should be available in the ICS standard without requiring any modification by an external service or parser. Once this happens, event data can be collected consistently.
Then, we step it up. The ICS format ensures all event information revolves around the event time only, when really, it should revolve around time and space. A consistent way to add information on top of the ICS standard is easy to implement; the challenge is, again, reaching a critical mass.
Where can I see an example?
Services like FuseCal are diligently combing the Web looking for calendars of all shapes and sizes, then parsing them into a (somewhat) accurate iCal format.
People like Jon Udell are working hard to get everyone to adopt ICS as their standard and has demonstrated how powerful this standardized information can be when leveraging services like Delicious. Localist, Calagator and other event listing services are discussing what a good event listing standard should look like once the dust settles from mass ICS adoption.
What can I do?
If you have a calendar available on your site, make sure there’s a visible link to an ICS format somewhere on the page.
Read up on Jon Udell’s efforts to promote mass iCal adoption.
Join the discussion at the ELF Wiki.
E-mail me (Mykel Nahorniak) at Localist if you have any questions or contributions regarding anything mentioned above.
It won’t be long now…
The overall goal isn’t to destroy and replace hCalendar or ICS, it’s to co-exist with it, enriching it when possible.
In the end, keeping tabs on local events will be just as easy as staying up-to-date with your friends’ tweets.