Open Dating

The open-source iCalendar standard allows people to coordinate their schedules.

Jun 1, 2004

My lab at MIT publishes a calendar of events on its website. Lab staff can use the site to enter information about talks, seminars, and special events. Lab members can even sign up to get the day’s announcements sent to them by e-mail. When I see a talk that looks interesting, I copy the announcement’s text and paste it into my computer’s calendar.

The registrar’s office at MIT publishes the institute’s academic calendar. This calendar tracks official events, such as the start of classes, institute vacations, and thesis deadlines for grad students. At the beginning of the school year, I spent half an hour entering these dates into my computer as well.

My wife, Beth, has a calendar, too-this one filled with doctor appointments for the kids, my daughter’s gymnastics lessons, and the nights that I have child-care duties. She keeps her calendar on her Mac with Apple’s iCal program and occasionally e-mails me reminders about important appointments. But she doesn’t have to: less than 15 minutes after she enters an appointment into her calendar, it automatically appears in mine.

Like the MIT calendars, Beth’s is also published on a website. But instead of being published in a form that’s easy for humans to understand, her complete calendar is uploaded every 15 minutes in a computer-readable form called iCalendar. My calendar program downloads this file every 15 minutes and displays Beth’s calendar events in a different color on my own calendar. Likewise, my calendar events are automatically uploaded to the Web server, downloaded by Beth’s copy of iCal, and displayed on her calendar.

Don’t confuse Apple’s iCal program with the iCalendar file format: iCal is an application for the latest Macintosh operating system, but iCalendar is a six-year-old open standard that was developed to let desktop applications share calendar events. An iCalendar file can consist of a single appointment, a repeating appointment, or items from a to-do list.

Those same engineers who developed iCalendar also created vCard, a kind of virtual business card used to store names, phone numbers, and other contact information. VCard has become the standard for moving that kind of information around the Internet; you probably have received hundreds of e-mail messages with vCards attached. With most e-mail programs, you can just click on these attachments and have them automatically added to your address book.

The iCalendar format has been decidedly less successful. One reason is that Microsoft has not embraced it; Outlook 2003 claims to support iCalendar, but the implementation is incomplete and doesn’t work properly. But support for iCalendar is picking up steam. You can now create, display, and subscribe to iCalendar files over the Internet using either Mozilla Calendar or Ximian’s Evolution; both of these open-source programs provide full support. A nifty Web-based application called PHP iCalendar displays these files directly on a website.

Tools like these, based on standards that are both open and easy to use, are incredibly powerful. I have set up a password-protected website with PHP iCalendar that lets a few trusted people access my entire calendar, with all of its confidential information. But I’ve written another program that can create a version of the calendar suitable for public viewing; in this “sanitized” calendar, descriptions of appointments and events are replaced by the word “busy.” I publish this sanitized calendar on my website. It lets people know when I’m free for meetings but doesn’t reveal any of my secrets.

All of these issues came to mind this spring when a bug in my lab’s calendar notification system caused it to send multiple copies of each announcement to everybody in the lab. In the discussion that followed, it was clear that some people wanted one announcement sent out for each event, some wanted one daily message with all events, and some wanted reminders sent out 15 minutes before every talk. Finally some bright scientist (who happened to have a Mac) suggested that the lab simply publish the events in an iCalendar file; that way lab members could have the talks automatically displayed on their own calendars. It’s a good idea-one that I hope will be taken up not just by the Computer Science and Artificial Intelligence Laboratory but also by the registrar’s office and every other MIT organization that publishes a calendar. Publishing in iCalendar format makes it possible for people to subscribe and get updates automatically.

And let’s not stop at MIT: every organization that has a website should publish its upcoming events in the iCalendar format. People could subscribe to whatever lists they wished and have the events automatically dropped into their calendars. If an organization starts publishing information that you find annoying, all you have to do is unsubscribe; the events will automatically disappear.

As with all open standards, the power of iCalendar is that it lets developers of different applications stop squabbling about file formats and spend their time delivering features to users. The sooner Microsoft and other companies selling proprietary calendar systems get on the bandwagon, the better.