iCal Redux

Okay.

Here's the scoop on internet Calendaring and Scheduling standards. It's a bit difficult to decipher at first because of all the acronyms and lack of a decent history.

It started with the "v" specs in the mid 1990s:

"The versit Consortium was a multivendor development initiative of the communication and computer industries, founded by Apple, AT&T, IBM and Siemens... The versit specifications were made freely available to any interested party. The versit Consortium disbanded at the end of 1996 after handing over control of vCard to the Internet Mail Consortium (IMC)." Here's a press release: http://www.imc.org/pdi/versit-to-imc.html

This is the reason why we have vCard and vCalendar (vCal). The "v" doesn't have anything to do with "virtual".

The IMC - owners of the MIME standard - still maintain the vCard and vCalendar stuff. However, it seems that the vCalendar stuff was standardized into the IETF standard http://www.imc.org/rfc2445 called iCalendar (iCal):

"This memo is based on the earlier work of the vCalendar specification for the exchange of personal calendaring and scheduling information. In order to avoid confusion with this referenced work, this memo is to be known as the iCalendar specification."

Yeah, thanks. That makes it MUUUCH easier to understand. Especially since the IMC now uses iCalendar instead of the original vCalendar (though they don't use the new name, which makes sense since iCalendar is really vCalendar v2.0). vCalendar has come to represent a group of C&S specs including http://www.imc.org/rfc2446 iTIP and http://www.imc.org/rfc2447 iMIP and soon http://www.imc.org/draft-ietf-calsch-cap CAP. This is explained here:

"iCalendar is the language used to describe calendar objects. iTIP describes a way to use the iCalendar language to do scheduling. iMIP describes how to do iTIP scheduling via e-mail. CAP describes a way to use the iCalendar language to access a calendar store in real- time.

The relationship between calendaring protocols is similar to that between e-mail protocols. In those terms, iCalendar is analogous to RFC 2822, iTIP and iMIP are analogous to the Simple Mail Transfer Protocol (SMTP), and CAP is analogous to the Post Office Protocol (POP) or Internet Message Access Protocol (IMAP)."

To recap so far. vCalendar was version 1.0 of the calendaring language definition, iCalendar is the next and standard version. But now vCalendar is used a reference to a group of C&S technologies including iCalendar, iTIP and iMIP.

Now, there is also work being done on the next generation of Calendaring stuff:

"A revised version of the vCalendar spec is now being reviewed by the IETF in the Calendaring and Scheduling (calsch) Working Group. IMC is hosting the Working Group, which has a Web page with full information about the new spec."

This includes another version of the iCalendar stuff, but in XML. They're calling this xCal for short: http://www.imc.org/draft-ietf-calsch-many-xcal .

This finally explains to me that there is really only one widespread standard for calendaring, it's called vCalendar though it's also referred to as iCalendar if you're talking about the IETF spec only. The support for the standard is pretty widespread: http://www.imc.org/pdi/pdiprodslist.html, but whether all these companies are supporting the old vCalendar or the new, I'm not sure (Notice that StreetFusion is shown prominently as one of the products that use the vCalendar spec. ;-) This page needs to be updated...) . This also explains why SyncML has vCalendar and vCard support built in instead of defining their own C&S specs.

See, now that wasn't so hard to understand now, was it? Oof.

The question is, if you're developing for a future application, do you use the old vCalendar or the new xCal? I guess the xCal is only a draft, but it would be nice to use the XML version of the spec... (is there an xCard spec too?) And will Apple's iCal just be publishing an iCalendar doc (as ugly as it is to read) and use that for the calendar interchange, or will they look ahead and use xCal or will they define their own Calendaring XML doc and embed the original iCalendar stuff inside? It'll be interesting to see what they end up doing...

-Russ

< Previous         Next >