Subject: CAP Restriction Table: CREATE

From: Steve Mansour <[email-masked]>
Date: Thu, 31 Aug 2000 11:46:44 -0700

Here's the latest.  Comments would be appreciated.
-Steve
Restriction Tables

Commands are sent to CAP servers encapsulated in iCalendar objects. The 
reply to these commands are also encapsulated in iCalendar objects.
The restriction tables listed in the commands below describe the composition 
of these commands and replies. 

The Presence column uses the following values to assert whether a property 
is required, is optional and the number of times it may appear in the
iCalendar object.  A Comment may be provided to further clarify the presence
criteria.

The table below defines the values for the Presence column.

Presence Value    Description
-------------------------------------------------------------------
1                 One instance MUST be present
1+                At least one instance MUST be present
0                 Instances of this property Must NOT be present
0+                Multiple instances MAY be present
0 or 1            Up to 1 instance of this property MAY be present
-------------------------------------------------------------------

While the tables list every component and property, their purpose is not to define the 
meaning of the component or property. 

There will be a RESPONSE-STATUS for each VCALENDAR and component created,
modified, deleted, or requested. The number of RESPONSE-STATUS values returned
MUST be equal to the number of TARGETS times the number of objects in the
command. The responses MUST be ordered first by TARGET then by the order of
the objects as supplied in the command. 

Client Restriction Table for the Create command

Component/Property        Presence Comment
-------------------       -------- --------------------------------------
VCALENDAR                  1+      The CUA can send up PIPELINE commands 
                                   without processing a response
      
  CMDID                    0 or 1  If CMDID is not supplied, then there must
                                   not be pending replies to previous command.

  VERSION                  1       MUST be 2.0

  VCOMMAND                 1       MUST at least one container (VCALENDAR,
                                   VCAR, VQUERY, VEVENT, VTODO, VJOURNAL,
                                   V
    METHOD                 1       MUST be CREATE. 
    TARGET                 1+      MUST be a the CSID or CALID

    VCALENDAR              0+       
      CALMASTER            0 or 1       
      NAME                 0 or 1  The user friendly name, localizable.
      OWNER                1+      
      RELCALID             1       
      TZID                 0 or 1
    
    VCAR                   0+
      CARID                0 or 1  A reference name
      DENY                 0+      permissions denied. Note, there must be at least
                                   one GRANT or DENY within the VCAR.
      GRANT                0+      permissions granted. Note, there must be at least
                                   one GRANT or DENY within the VCAR.

    VQUERY                 0+
      EXPAND               0 or 1  Expand recurrences or not
      MAXRESULTS           0 or 1  Limit the solution set to no more than this many 
                                   enries. 
      MAXSIZE              0 or 1  Maximum number of octets to transfer
      QUERYNAME            1       Name by which this query is referenced
      QUERY                1       The query

    VEVENT                 0+
      ATTENDEE             0+
      SEQUENCE             0 or 1  MUST be present if value is greater than 0,
                                   MAY be present if 0
      SUMMARY              1       Can be null
      UID                  1

      ATTACH               0+
      CATEGORIES           0 or 1  This property may contain a list of values
      CLASS                0 or 1
      COMMENT              0 or 1
      CONTACT              0+
      CREATED              0 or 1
      DESCRIPTION          0 or 1  Can be null
      DTEND                0 or 1  if present DURATION MUST NOT be present
      DTSTAMP              1
      DTSTART              1
      DURATION             0 or 1  if present DTEND MUST NOT be present
      EXDATE               0+
      EXRULE               0+
      GEO                  0 or 1
      LAST-MODIFIED        0 or 1
      LOCATION             0 or 1
      METHOD               1       <<placeholder. it may move to meta-info>>
      ORGANIZER            1
      PRIORITY             0 or 1
      RDATE                0+
      RECURRENCE-ID        0 or 1  only if referring to an instance of a
                                   recurring calendar component.  Otherwise it
                                   MUST NOT be present.
      RELATED-TO           0+
      REQUEST-STATUS       0+
      RESOURCES            0 or 1  This property MAY contain a list of values
      RRULE                0+
      STATUS               0 or 1  MAY be one of TENTATIVE/CONFIRMED/CANCELLED
      TRANSP               0 or 1
      URL                  0 or 1
      X-PROPERTY           0+
      [IANA-PROP]          0+      any IANA registered property

      VALARM               0+
        ACTION             1
        ALARMID            0 or 1  MUST be 1 if multiple VALARMs are present in same
                                   component.
        ATTACH             0+
        DESCRIPTION        0 or 1
        DURATION           0 or 1  if present REPEAT MUST be present
        REPEAT             0 or 1  if present DURATION MUST be present
        SUMMARY            0 or 1
        TRIGGER            1
        X-PROPERTY         0+

    VTODO                  0+
      ATTENDEE             0+
      SEQUENCE             0 or 1  MUST be present if value is greater than
                                   0, MAY be present if 0
      SUMMARY              1       Can be null.
      UID                  1

      ATTACH               0+
      CATEGORIES           0 or 1  This property may contain a list of values
      CLASS                0 or 1
      COMMENT              0 or 1
      CONTACT              0+
      CREATED              0 or 1
      DESCRIPTION          0 or 1  Can be null
      DTSTAMP              1
      DTSTART              1
      DUE                  0 or 1  If present DURATION MUST NOT be present
      DURATION             0 or 1  If present DUE MUST NOT be present
      EXDATE               0+
      EXRULE               0+
      GEO                  0 or 1
      LAST-MODIFIED        0 or 1
      LOCATION             0 or 1
      METHOD               1       <<placeholder. it may move to meta-info>>
      ORGANIZER            1
      PRIORITY             1
      PERCENT-COMPLETE     0 or 1
      RDATE                0+
      RECURRENCE-ID        0 or 1  MUST only if referring to an instance of a
                                   recurring calendar component.  Otherwise
                                   it MUST NOT be present.

      RELATED-TO           0+
      REQUEST-STATUS       0
      RESOURCES            0 or 1  This property may contain a list of values
      RRULE                0+
      STATUS               0 or 1  MAY be one of COMPLETED/NEEDS ACTION/IN-
                                   PROCESS/CANCELLED
      URL                  0 or 1

      X-PROPERTY           0+
      [IANA-PROP]          0+      any IANA registered property

      VALARM               0+
        ACTION             1
        ALARMID            0 or 1  MUST be 1 if multiple VALARMs are present in same
                                   component.
        ATTACH             0+
        DESCRIPTION        0 or 1
        DURATION           0 or 1  if present REPEAT MUST be present
        REPEAT             0 or 1  if present DURATION MUST be present
        SUMMARY            0 or 1
        TRIGGER            1
        X-PROPERTY         0+

    VJOURNAL               0+
      ATTENDEE             0
      DESCRIPTION          1       Can be null.
      DTSTAMP              1
      DTSTART              1
      ORGANIZER            1
      UID                  1

      ATTACH               0+
      CATEGORIES           0 or 1  This property MAY contain a list of values
      CLASS                0 or 1
      COMMENT              0 or 1
      CONTACT              0+
      CREATED              0 or 1
      EXDATE               0+
      EXRULE               0+
      LAST-MODIFIED        0 or 1
      METHOD               1       <<placeholder. it may move to meta-info>>
      RDATE                0+
      RECURRENCE-ID        0 or 1  MUST only if referring to an instance of a
                                   recurring calendar component.  Otherwise
                                   it MUST NOT be present.
      RELATED-TO           0+
      RRULE                0+
      SEQUENCE             0 or 1  MUST echo the original SEQUENCE number.
                                   MUST be present if non-zero. MAY be
                                   present if zero.
      STATUS               0 or 1  MAY be one of DRAFT/FINAL/CANCELLED
      SUMMARY              0 or 1  Can be null
      URL                  0 or 1
      X-PROPERTY           0+

    VFREEBUSY              0

    VTIMEZONE              0+      MUST be present if any date/time refers
                                   to timezone
       DAYLIGHT            0+      MUST be one or more of either STANDARD or
                                   DAYLIGHT
          COMMENT          0 or 1
          DTSTART          1       MUST be local time format
          RDATE            0+      if present RRULE MUST NOT be present
          RRULE            0+      if present RDATE MUST NOT be present
          TZNAME           0 or 1
          TZOFFSET         1
          TZOFFSETFROM     1
          TZOFFSETTO       1
          X-PROPERTY       0+
       LAST-MODIFIED       0 or 1
       STANDARD            0+      MUST be one or more of either STANDARD or
                                   DAYLIGHT
          COMMENT          0 or 1
          DTSTART          1       MUST be local time format
          RDATE            0+      if present RRULE MUST NOT be present
          RRULE            0+      if present RDATE MUST NOT be present
          TZNAME           0 or 1
          TZOFFSETFROM     1
          TZOFFSETTO       1
          X-PROPERTY       0+
       TZID                1
       TZURL               0 or 1
       X-PROPERTY          0+

Server Restriction Table for the CREATE command

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

VCALENDAR            1+      
TARGET               1

VERSION              1       MUST be 2.0

CMDID                0 or 1  MUST be returned if the request contained
                             a CMDID

VALARM               0

    RESPONSE-STATUS  0       if not creating a calendar
                     1+      if creating a calendar

  VCAR               0+
    RESPONSE-STATUS  1+      
    *                0       No other VCAR properties are present

  VCOMMAND           0

  VEVENT             0+
    RESPONSE-STATUS  1+      
    *                0       No other VEVENT properties are present

  VFREEBUSY          0+
    RESPONSE-STATUS  1+      
    *                0       No other VFREEBUSY properties are present

  VJOURNAL           0+
    RESPONSE-STATUS  1+      
    *                0       No other VJOURNAL properties are present

  VQUERY             0+
    RESPONSE-STATUS  1+      
    *                0       No other VQUERY properties are present

  VTODO              0+
    RESPONSE-STATUS  1+      
    *                0       No other VTODO properties are present

Issues:
   freebusy - a cap server should dynamically calculate freebusy information
              we recommend that you cannot create, modify, or delete 
              freebusy composers

---

From: [email-masked]
Date: Thu, 31 Aug 2000 15:47:15 -0400

Second quick observation:

VALARM               0

Why is 1+ creating a calendar if it is in a VALARM?  I think this is a 
typo (or Im just not groking vAlarms anymore).

Bruce
===========================================================================
Bruce Kahn                                INet: [email-masked]
Iris Associates                          Phone: 978.392.5335
Westford, MA, USA 01886                    FAX: and nothing but the FAX...
Standard disclaimers apply, even where prohibited by law...