Re: Registration of media type application/calendar+xml

Keith Moore <> Fri, 10 September 2010 17:21 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id B35E13A6A4A for <>; Fri, 10 Sep 2010 10:21:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.297
X-Spam-Status: No, score=-2.297 tagged_above=-999 required=5 tests=[AWL=0.302, BAYES_00=-2.599]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id cY0fFQFeVBDq for <>; Fri, 10 Sep 2010 10:21:33 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 60E323A6977 for <IETF@IETF.ORG>; Fri, 10 Sep 2010 10:21:33 -0700 (PDT)
Received: from ( []) by (MOS 4.1.8-GA) with ESMTP id CDZ24189 (AUTH; Fri, 10 Sep 2010 10:21:25 -0700
X-Mirapoint-Received-SPF: <> 5 none
X-Mirapoint-Received-SPF: <> 5 none
X-Mirapoint-Received-SPF: <> 5 none
X-Mirapoint-Received-SPF: <> 5 none
X-Mirapoint-Received-SPF: <> 5 none
X-Mirapoint-Received-SPF: <> 5 none
X-Mirapoint-Received-SPF: <> 5 none
X-Mirapoint-Received-SPF: <> 5 none
Subject: Re: Registration of media type application/calendar+xml
Mime-Version: 1.0 (Apple Message framework v1081)
Content-Type: text/plain; charset=us-ascii
From: Keith Moore <>
In-Reply-To: <>
Date: Fri, 10 Sep 2010 13:21:25 -0400
Content-Transfer-Encoding: quoted-printable
Message-Id: <>
References: <> <> <B0EA09C87A5701A94419DB8F@socrates.local> <> <>
To: Cyrus Daboo <>
X-Mailer: Apple Mail (2.1081)
Cc: Douglass Mike <>, Keith Moore <>, Alexey Melnikov <>,, Steven Lees <>, IETF@IETF.ORG
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: IETF-Discussion <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 10 Sep 2010 17:21:34 -0000

>>> An XML representation for iCalendar is vital if we are to keep iCalendar
>>> relevant in the web-based world. The drive for this work comes from a
>>> number of areas - in particular the smart grid effort sponsored by NIST
>>> will make use of this as part of the standards suite they are defining.
>> Somebody needs to talk some sense into those people.  Defining another
>> calendar format will only harm interoperability.  It doesn't save any
>> calendar implementation from needing to implement another parser, because
>> if it wants to interoperate with existing products or be able to read old
>> events it's still going to have to support iCalendar and probably
>> vCalendar also.  So what's the _technical_ (not political) benefit from
>> doing this?
> First of all look at the mess we have got into with contacts (see recent discussion on the vcarddav WG mailing list). There we now have vCard, PoCo, OpenSocial and some new thing the OMA is doing (and their are lots of private apis too). Yet vCard has been around for a long time - why didn't those other folks just use that or at least propose fixes or extension to vcard that would satisfy their issues? Well, certainly in the case of PoCo one clear requirement was for a simple web/browser based solution - so they designed JSON and XML representations.

Mumble.  It's a lot harder to make a web browser do something useful with a calendar object (no matter what the syntax) than it is to make a web browser do something useful with contact information.  

And I *like* JSON.  I think it's a good approximation to what XML should have been. 

And I can even see that having a DOM-based representation of calendar data for internal use in a program, as awkward as that is, might be better than lots of ad hoc internal representations.   (I can't quite put my finger on it, but there does seem to be something about iCalendar that encourages building poor internal representations of the data.)

Still, if I were designing a PIM that wanted to be able to have web browsers manipulate contact information, I'd use vCard as the interchange format and use JSON only for the purpose of communicating with Javascript code in the browser.

> The same mess could happen to iCalendar too. In fact there are already lots of examples of "private" apis using XML to represent calendar data, see e.g. Google GDATA. Plus I know of some public event services that uses their own custom XML format for event publishers to submit calendar data to them. In fact the initial impetus for this work did come from one such public events company that really wanted to use iCalendar rather than some home grown solution, but really wanted that as XML. Sure you can argue that they should be made to parse iCalendar format, but why should they have to write their own new parser when they already have reliable, efficient XML processing available.

Code reuse is all the rage these days.  Can't they leverage work that someone else has already done?  

> Frankly the important thing here is the semantics of the iCalendar model, not the syntax. I want developers to only have to concentrate on getting the semantics right without worry too much about the syntax.

As much as I'd like to believe you can separate the model from the syntax, experience seems to indicate otherwise.  Every time I've seen people borrow a data model from one protocol and move it to another, the data models used by the two protocols have diverged.    Think about the differences between interpretation of email header fields and HTTP header fields.  The field names get borrowed, the syntax of each field generally stays the same, but the semantics change. 

And there are reasons why the semantics change.  In the case of calendar data, consider timezone handling.  If you're sending out an event "in the blind" (say over email) without knowing whether the recipient will recognize your event timezone, you want to send as much mapping data as the receiver will need - even though it might change.  But if you're sending the event over some link that permits interaction and negotiation, you probably want to either ask the receiver whether it supports the timezone, or give it a link to the timezone data so that it can refresh it as needed.

This also reminds me of why IETF avoids standardizing APIs: it's because people tried to use the API (which is pretty much just a data model) as the basis for interoperability rather than bits on the wire.  And it didn't work.

> Now I can understand your concern about poor interoperability when it comes to having the two data formats. I think for the HTTP-based world (CalDAV, iSchedule, web-services) this is really not a big deal given the content negotiation options. For something like iMIP (iCalendar in email) it is a much bigger problem. Speaking for myself only, and not my co-authors, I think I would be OK with adding a statement that iMIP messages SHOULD NOT use the application/calendar+xml format, or at the very least require both text/calendar and application/calendar+xml in e.g. a multipart/alternative (though I would worry that the later would cause existing clients problems, and lead to message bloat).

Something like that would help, I think.  It seems like the appropriate goal is to give clear guidance to implementors about when to use iCalendar and when to use the other formats.  I think there's a case to be made for standardizing on a single format for (a) sending "in the blind" when you can't do content-negotiation, and (b) as a "must support" format (even if you can negotiate others, you must support the base format, so that every implementation has a basis for interoperation).    And I suspect that iCalendar has the advantage as the "must support" format; though somebody might like to argue the opposite case.

>> IETF's job is to provide technical leadership, not to follow bad advice.
>> Instead of caving into them, what we need to do is publish a draft called
>> "Translating Everything into XML Considered Harmful".
> Ah, yes. I seem to recall something similar for the use of HTTP - perhaps the author of RFC 3205 would like to author this new document too :-)