In a previous Collaboration Loop post I briefly mentioned iCal, the calendar program in Apple's Mac OS X. This handy application has done more to promote calendar interoperability than any other, including solutions from the traditional large enterprise collaboration vendors.
For a lack of a better description I will refer to the calendar sharing techniques used by iCal as "webcal" since this is the beginning of the URL for an iCal calendar subscription. For example, iCalShare is a popular site for announcing the availability of published calendars. One of the calendars it lists contains the schedule of episodes for the popular Fox show "24". Its webcal URL is webcal://ical.mac.com/rparman/24.ics.
If you are using a Mac you could simply click on a link with this webcal URL and the "24" episode calendar is added to your list of subscriptions. When viewing your iCal calendar you will now see that the "24" episode aired January 23 was when "President Logan begins to lose control". All of this is brought to you by someone named Ryan who publishes this calendar on his .Mac account. Thank you Ryan.
The social benefits of this are obvious. Ryan takes the time to enter and publish the schedule of "24" episodes, then advertises it on iCalshare for anyone to use. Others do the same with their favorite calendars so everyone in the iCalShare community benefits. Clearly, it would be better if Fox published this webcal calendar themselves since they produce the show and, presumably, would know when it is aired. However, this is not happening because the use of webcal calendars has been mostly limited to iCal users and the .Mac service. But that is changing.
Webcal support is available in Airset, the service I told you I was using in my previous post. Airset users can subscribe to calendars and can publish calendars for other Airset or iCal users to subscribe to. You could think of Airset as being the web equivalent to iCal except it is free and does not require a Mac.
Mozilla Sunbird, the Open Source calendar program presently under development (and a sister project to Mozilla Thunderbird and Firefox), also supports webcal calendars. Sunbird can both publish and subscribe to webcal calendars.
But what really legitimizes webcal calendars is support from Microsoft and IBM. Windows Calendar is debuting in Microsoft Vista and will provide full support for webcal calendars. In addition, Microsoft Outlook 12 reportedly will support webcal calendars. IBM recently announced support for webcal calendars in Workplace Collaboration Services 2.6.
The beauty of webcal calendars is they are easy to create and share. The mechanics behind desktop applications sharing calendars are simple. The application exports the calendar to an iCalendar-formatted file (based on RFC 8445). This file is then uploaded to a webserver using the webdav protocol. There is nothing special about iCal using webdav, except perhaps it is easier to traverse Intranet boundaries. Any method of transferring the file would have sufficed. In fact, Mozilla Sunbird can use webdav, ftp, or even a shared filesystem to publish the iCalendar-formatted file.
But applications don't necessarily have to export and upload files to share calendars. Server-based applications can serve iCalendar-formatted data directly over http. This is how webcal URLs from Airset are served. Since Airset provides the application and the webserver it does not need to transfer a file to publish a calendar. This is no different than serving web pages; they can be created with an html editor (and then uploaded to a webserver) or with a content management system that dynamically builds a webpage on demand.
On the subscribing end the calendar application downloads all of the iCalendar-formatted data via http and then compares the events with those previously downloaded. Each event has a unique identifier so it is a simple operation to detect what events have changed or have been added.
There are many use cases for public calendars:
- Schools or parent associations publishing school events, like half-days or holidays.
- Local sports leagues publishing league events and team schedules.
- Other local groups publishing event schedules.
- Television schedules.
- Public holidays, the phase of the moon, horoscopes, and the list could go on and on.
Two popular websites to find published calendars are Apple's Calendar Library and the aforementioned iCalShare. You can also use iCalShare to publish your calendar. Another website available for publishing is iCal Exchange. However, if you have a website hosted on a server that supports the webdav protocol then you can use it instead. Both Microsoft IIS and Apache, using the mod_dav module, support webdav.
There are enterprise use cases that could benefit from webcal. For example, web conferencing services provide the ability to download iCalendar-formatted files. Links to download these iCalendar files are included in invitations sent from the service in the form of "click here to add this event to your calendar". These calendar events are imported in to a calendar. Any changes to the web conference require another invitation to be sent and events are imported again as if they were totally separate events. Usually, I just create an Outlook meeting and copy/paste the event information into it and use it to keep participants updated and just hope everyone participating in the event is using Outlook.
If webconferencing service vendors could use webcal, changes to the event would be automatically reflected on your calendar (at least, within a reasonable period of time since the calendar application must poll the calendar URL to detect the changes).
There are many situations where webcal could be used. Think how often you send or receive .ics files as attachments or download them from a website or workspace and import them into Outlook. Now, look at those situations again and turn them into active links where changes are automatically detected and your calendar is updated.
Nearly any application that already publishes events (in some form) is a good candidate to publish an iCalendar URL.
- A calendar system. For example, Hula is an Open Source calendar application that can publish an iCalendar URL.
- A collaborative workspace that manages calendars (team events, project milestones, etc.).
- A community or organizational website with a calendar of events.
- Any ERP system that tracks deadlines or milestones.
A good example of where this is happening is the Open Source Drupal content management system. The Drupal event module is evolving into a good calendar manager and already has some support for publishing iCalendar events. Ultimately, users of Drupal-based websites will be able to subscribe to any number of calendars. When combined with its powerful taxonomy-based content management, easy to use self-publishing, and RSS generation it will be quite powerful.
For example, my wife is using Drupal as the basis for a local parent-teacher website. Although, iCalendar support is still in development (as of this writing) it is quite functional as a simple calendar manager and we expect to be publishing iCalendar URLs soon. Imagine subscribing to your local school event calendar including holidays, half-days, and district events such as special elections and board meetings. It may not be long until we can publish calendars with sports schedules and other events like school plays.
Commercial interest is building for webcal calendars. Microsoft is investing in webcal with Windows Calendar and Outlook 12 and IBM is including webcal support in Workplace. Startup companies like Upcoming.org (just recently acquired by Yahoo!), Eventful, and Zevents provide event subscription services based on webcal and RSS. Calendar services such as Airset and Trumba also support webcal calendars.
Although webcal subscriptions are not as popular as RSS they operate in similar ways. Subscribers of webcal calendars and RSS feeds poll http sources for new calendar events or new RSS items. Multiple feeds or multiple calendars can be combined or aggregated into a single view. However, there is no widely recognized standard for embedding calendar data in RSS feeds. Methods such as hCalendar and Structured Blogging are being developed to include calendar data in RSS feeds. In addition, Ray Ozzie stirred speculation when he talked about synchronizing calendars in his blog posting announcing Simple Sharing Extensions for RSS.
However, these extensions to RSS are still developing. Webcal, on the other hand, is mature, has momentum behind it, and is simple to produce. In my opinion all indications are that webcal has crossed the threshold of "good enough" and its adoption will continue to grow. I think there may be some middle-ground for both subscription models to cooperate. For example, perhaps RSS 2.0 feeds could use enclosures to point to associated webcal URLs much like iTunes uses enclosures for pointing to multimedia files.
Without a doubt, how you keep up your calendar is quickly changing for the good. Calendar subscriptions offer new exciting opportunities both on the Internet and your intranet.