Subject: New: 6.2.4.1 "create" Command

From: Doug Royer <[email-masked]>
Date: Sat, 16 Feb 2002 19:10:20 -0700

The drastic reduction in the size of the restriction
table is due to a statement that says, "Any valid [ITIP]
object plus..."

----------------------------------------------------------------

6.2.4.1 "create" Command

   Attributes:

         "cmdid" (see Section 6.2.2.1) (optional) and if present
                 then there MUST BE CMDID property in the iCalendar
                 object.

         "latency" with "action" (optional)

         "target" (required) And there MUST BE a TARGET property
                  in the iCalendar object.

   Response:

         One "result" message per "target" element MUST be returned (see
         Section 3.1)

         One of the following "request-status" codes MUST be returned:

               2.0 - successfully created the component or calendar

               6.1 - Target not found

               6.3 - Bad args
  
   The "create" command is used to create one or more iCalendar objects.

   The "target" elements specify the containers where the component(s)
   will be created.

   The CDATA portion of the command can be any valid [ITIP] object
   or any iCalendar object using the following restriction table.
   There MUST BE at least one component inside of the VCALENDAR
   object.

   Restriction table for the "create" command:

       Component/Property     Presence Comment
       -------------------    -------- -----------------------------
       VCALENDAR              1
       . VERSION              1        MUST be at least 2.0
       . TARGET               1+
       . CMDID                0+
       . [IANA-PROP]          0+       any IANA registered
                                       property

       . VAGENDA              0+
            (For VAGENDA minimum values - see the VCALSTORE
             properties sections)

       . VCAR                 0+
            (For VCAR minimum values - see the VCAR sections)

       . VQUERY               0+
            (For VQUERY minimum values - see the VQUERY sections.
             Plus each each new VQUERY must have a QUERYID property)

       . x-component          0+
 
   Restriction Table for the CDATA section of a reply that contains
   an iCalendar object is any valid [ITIP] response plus any from
   this restriction table and the VQUERY responses can contain
   any iCalendar properties that are wrapped in BEGIN/END VCALENDAR.
   There MUST BE at least one component inside of the VCALENDAR
   object.

       Component/Property  Presence Comment
       ------------------- -------- -------------------------------

       VCALENDAR              1+
       . VERSION              1        MUST BE at least 2.0
       . TARGET               1+
       . CMDID                0+

       . VAGENDA              0+
       . . RELCALID           1
       . . REQUEST-STATUS     1+

       . VCAR                 0+
       . . CARID              1
       . . REQUEST-STATUS     1+

       . VQUERY               0+
       . . REQUEST-STATUS     1+
         (Plus the query results)

       . x-component          0+

   Example:

   In the following example, two new top level VAGENDAs are created.
   Note that the CSID of the server is cal.example.com.

   C: MSG 1 8 . 3843 480
   C: Content-Type: application/cap+xml
   C:
   C: <create cmdid="creation01" target='cal.example.com'>
   C: <![CDATA[
   C: BEGIN:VCALENDAR
   C: VERSION:2.0
   C: CMDID:creation01
   C: TARGET:cal.example.com
   C: BEGIN:VAGENDA
   C: RELCALID:relcalz1
   C: NAME;LANGUAGE=EN-us:Bill's Soccer Team
   C: OWNER:bill
   C: CALMASTER:mailto:[email-masked]
   C: TZID:US/Pacific
   C: END:VAGENDA
   C: BEGIN:VAGENDA
   C: RELCALID:relcalz2
   C: NAME;LANGUAGE=EN-us:Mary's personal calendar
   C: OWNER:mary
   C: CALMASTER:mailto:[email-masked]
   C: TZID:US/Pacific
   C: END:VAGENDA
   C: END:VCALENDAR
   C: />]]>
   C: END

   When there are multiple 'target' values (comma, separated)
   in the original command then the replies MUST BE in the exact same
   order as they were provided to the CS. The same is true for
   the objects created, their responses MUST BE in the exact same
   order as they were supplied to the CS.
 
   S: RPY 1 8 . 4621 294
   S: Content-Type: application/cap+xml
   S:
   S: <reply cmdid="creation01" target='cal.example.com'>
   S: <![CDATA[
   S: BEGIN:VCALENDAR
   S: VERSION:2.0
   S: TARGET:cal.example.com
   S: BEGIN:VAGENDA
   S: RELCALID:relcalz1
   S: REQUEST-STATUS:2.0
   S: END:VAGENDA
   S: BEGIN:VAGENDA
   S: RELCALID:relcalz2
   S: REQUEST-STATUS:2.0
   S: END:VAGENDA
   S: END:VCALENDAR
   S: />]]>
   S: </create>
   S: END

   Example to create a new component in multiple containers.

   C: MSG 1 9 . 5268 285
   C: Content-Type: application/cap+xml
   C:
   C: <create cmdid="creation02" target="relcalz1,relcalz2">
   C: <![CDATA[
   C: BEGIN:VCALENDAR
   C: VERSION:2.0
   C: TARGET:relcalz1,relcalz2
   C: BEGIN:VEVENT
   C: DTSTART:99990307T180000Z
   C: UID:abcd12345
   C: DTEND:99990307T190000Z
   C: SUMMARY:Important Meeting
   C: END:VEVENT
   C: END:VCALENDAR
   C: />]]>
   C: </create>
   C: END

   S: ANS 1 9 . 58901 563 223
   S: Content-Type: application/cap+xml
   S:
   S: <result cmdid="creation02"  target="relcalz1">
   S: <![CDATA[
   S: BEGIN:VCALENDAR
   S: CMDID:creation02
   S: TARGET:relcalz1
   S: VERSION:2.0
   S: BEGIN:VEVENT
   S: UID:abcd12345
   S: REQUEST-STATUS:2.9
   S: END:VEVENT
   S: END:VCALENDAR
   S: />]]>
   S: </result>
   S: END

   S: ANS 1 9 . 6453 230 1
   S: Content-Type: application/cap+xml
   S:
   S: <result cmdid="creation02"  target="relcalz2">
   S: BEGIN:VCALENDAR
   S: VERSION:2.0
   S: CMDID:creation02
   S: TARGET:relcalz2
   S: BEGIN:VEVENT
   S: UID:abcd12345
   S: REQUEST-STATUS:6.0
   S: END:VEVENT
   S: END:VCALENDAR
   S: />]]>
   S: </result>
   S: END

   S: NUL 1 9 . 7016 0
   S: END

   The CS sends one response per "target" element present in
   the "create" command.

   The CS reply can be combined when there is exactly one target.
   If a <create> command deposited two METHOD:REQUEST objects into
   the same target, this could be the reply.

   S: RPY 1 9 . 58901 563 279
   S: Content-Type: application/cap+xml
   S:
   S: <result cmdid="deposit request"  target="relcalz1">
   S: <![CDATA[
   S: BEGIN:VCALENDAR
   S: CMDID:deposit request
   S: TARGET:relcalz1
   S: VERSION:2.0
   S: BEGIN:VEVENT
   S: REQUEST-STATUS:2.0
   S: END:VEVENT
   S: BEGIN:VEVENT
   S: REQUEST-STATUS:2.0
   S: END:VEVENT
   S: END:VCALENDAR
   S: />]]>
   S: </result>
   S: END

---

From: Bernard Desruisseaux <[email-masked]>
Date: Thu, 21 Feb 2002 17:14:48 -0500

>        Component/Property     Presence Comment

METHOD is not allowed?

Regards,
Bernard
-- 
Bernard Desruisseaux                    mailto:[email-masked]
Research & Development                  Tel.  : +1 514 733-8500 x4213
Steltor                                 Fax   : +1 514 733-8878

---

From: Bernard Desruisseaux <[email-masked]>
Date: Thu, 21 Feb 2002 17:17:17 -0500

>    C: CALMASTER:mailto:[email-masked]

Missing METHOD:CREATE ?

Regards,
Bernard

---

From: Bernard Desruisseaux <[email-masked]>
Date: Thu, 21 Feb 2002 17:19:34 -0500

>    S: <reply cmdid="creation01" target='cal.example.com'>

Add:

     S: CMDID:creation01

>    S: TARGET:cal.example.com

Change to:

     S: ]]>
     S: </reply>

Regards,
Bernard

---

From: Bernard Desruisseaux <[email-masked]>
Date: Thu, 21 Feb 2002 17:26:59 -0500

>    C: SUMMARY:Important Meeting

Add missing CMDID:creation02

Add:

     S: <![CDATA[

Regards,
Bernard

---

From: Doug Royer <[email-masked]>
Date: Thu, 21 Feb 2002 16:46:32 -0700

> >        . VERSION              1        MUST be at least 2.0

METHOD		1+
CMDID		0 or 1

Missed it - thanks.