Subject: CAP: these are not legal iCalendar objects

From: John Stracke <[email-masked]>
Date: Thu, 16 Aug 2001 14:34:08 -0400

In all (I think) of the CAP examples, we have a Content-type: of 
text/calendar, but the outermost BEGIN of the iCalendar is "VCAP". By 
2445, this is not legal; an iCalendar object always begins with 
"BEGIN:VCALENDAR".

We have similar problems scattered around; for example, in the first 
example in 7.2.1.2.1, creating a VCALENDAR component is used to 
represent a calendar to create. A VCALENDAR component *is* an iCalendar 
object; it cannot (I think) appear inside another component. In the 
responses to a query, if you request only some fields, you can get back 
VEVENT components which are not legal VEVENTs (they don't have all the 
required properties).

We need to either change the syntax so these data structures do not 
claim to be iCalendar objects, or add text to CAP clarifying that these 
objects are not what they claim to be, and may not parse properly in a 
parser based on RFC-2445. The latter is probably more reasonable; having 
them look like iCalendars is probably more helpful than misleading. 
Still, I would rather see some minor changes for better harmony with 
2445: have the VCAP contained inside a VCALENDAR, and define a new 
component representing calendars.

-- 
/=================================================================\
|John Stracke    | http://www.ecal.com |My opinions are my own.   |
|Chief Scientist |================================================|
|eCal Corp.      |"How quietly do you think we can nail these back|
[email-masked] <mailto:[email-masked]>|in?" --Calvin                                   |
\=================================================================/

---

From: George Babics <[email-masked]>
Date: Thu, 23 Aug 2001 10:06:00 -0400

We replaced VCALENDAR with VCAP to contain all of the commands
and responses since it would make things clearer and avoid
having VCALENDARS in VCALENDARS.

Looking at RFC 2445, all iCalendar objects must begin with
BEGIN:VCALENDAR. Thus, we can change all VCAP back into
VCALENDAR or simply have all VCAPs in VCALENDARs.

As for queries returning invalid calendar components,
there are very few required properties. Thus, specifying
in CAP how a calendar component returned by a query may
differ from the standard should not be too difficult.

George