IETF CALSCH Working Group Anik Ganguly/OnTime Issues Document Frank Dawson/IBM Derik Stenerson/Microsoft April 27, 1997 Core Object Specification - Issues Document Abstract This document is an IETF CALSCH working group document. The document is used as a tool for recording issues and their resolution with mailing list discussions. This Issues Document is intended to track the resolution of issues related to the "Core Object Specification" deliverable. The most current version of this document can be found on the IETF CALSCH Working Group document archive at http://www.imc.org. Issues within this document are classified as either being OPEN or RESOLVED. Additionally, an issue may be found to no longer be a concern and may be classified as WITHDRAWN. Issues falling into each of these categories are listed in a separate section. An issue is documented with a short summary title, a brief description, and a list of identified alternatives. A resolved issue will also include a description of the resolution and the date/venue that the resolution was reached. Distribution of this document is unlimited. 1. Open Issues The following issues were raised at the 1997-04-07 IETF CALSCH Meeting in Memphis, TN 1.1 Recurrence Rule Grammar Description: What model/grammar should be used for representing recurrences within calendar component descriptions. Alternatives: 1. New grammar as defined in draft-ietf-calsch-ical-01.txt. The new grammar was based on the original CSA semantics, with a different syntax styled after the rest of the iCalendar specification. It also has been enhanced to handle a wider range of patterns/occurrences. 2. Original (vCal) grammar. This grammar is more terse. It has already been implemented by a number of vendors. 11 IETF CALSCH Core Object Specification - Issues Document 04/27/9704/27/97 1.2 Property Parameters Description: Property parameter use should be minimized. Alternatives: 1. Usage as defined in current draft 2. Redefine all properties to minimize usage of property parameters. The current format, while correct, is viewed as inelegant. 1.3 Divide the data dictionary into core/non-core Description: Classify the properties into a core subset of properties and the more complete set. Alternatives: 1. One complete dictionary of properties, listed alphabetically by their descriptive name (current draft format). 2. Divide the property set in to a "core" primary set and a secondary set of additional "non-core" properties. 3. Divide the property set by categories that describe their intended use (e.g., General Use, Identification, Recurrence, Time zone, Freebusy, Alarm, Entry Definition, Security, Management, etc.). 1.4 ValueType, Type, etc. usage confusing. Description: The use of the terms "Value Type" and "Type" as parameters of a property value are confusing. Resolution: This comment is accepted, and this editorial issue will be fixed in the next draft. 1.5 Usage of local time and Interoperability. Description: Local time usage needs to be clarified to avoid potential interoperability issues. Text must be clear so that the interpretations of time/date values are globally unambiguous to the recipient(s) of the calendar object. Usage of local time has a very specific interpretation for calendaring _ this means that the recipient of the calendar object interpret the time in the recipients local time (no adjustment for time zone). This allows for "floating" events; e.g."lunch" is at noon no matter where I am. In general, local time + time zone information (or UTC offset) is recommended. Some text exists in the current draft describing the meaning of local time with out time zone or UTC offset, but the text needs clarification. 215 IETF CALSCH Core Object Specification - Issues Document 04/27/9704/27/97 Resolution: This comment is accepted, and this editorial issue will be fixed in the next draft. 1.6 Usage of non-significant LWSP Description: Non-significant LWSP-Characters can lead to interoperability problems. Alternatives: 1. Non-significant LWSP-Characters should be restricted everywhere. 2. Usage as in the current draft-ietf-calsch-ical-01.txt draft. 1.7 PROFILE-VERSION Description: Need for PROFILE-VERSION is questioned. Alternatives: 1. Retain PROFILE-VERSION property to allow versioning of profiles. Revisioning, while ignored by some implementations, has been a known requirement for sometime. 2. Eliminate PROFILE-VERSION property. Revisions to a profile specification are not versioned. Vendors generally ignore these properties anyway. 1.8 DUE property definition. Description: DUE property value should be limited to DATE-TIME, not allow DURATION Alternatives: 1. Allow DUE property to be a DURATION. May be useful in project management applications where a task is specified in terms of its duration. This will also allow the specification of an originator's intent (i.e., "the task is due in three days", "the activity has been sized to take 12 hours"). 2. Limit to DATE-TIME. Use of duration adds an unnecessary complexity. 1.9 UID uniqueness hints needed Description: Ways of achieving UID uniqueness need to be described. Resolution: This comment is accepted, and this editorial issue will be fixed in the next draft. 315 IETF CALSCH Core Object Specification - Issues Document 04/27/9704/27/97 1.10 Complex Registration Process Description: The PROFILE registration process is complex. Separate definition of new profiles from the registration process. New PROFILEs to be published as an RFC. Resolution: This comment is accepted, and this editorial issue will be fixed in the next draft. 1.11 BNF definition Description: Change BNF to an acceptable form. Use a single specification, rather than the iterative form in the current document. Noted that the iterative form can lead to inconsistencies across the overall grammar. Resolution: This comment is accepted, and the editors will work with Ned Freed to correct this issue in the next draft. 1.12 MIME encoding considerations Description: Insure conformance to MIME. Current draft does not conform to MIME encoding with respect to quoted-printable. Change text needed here. Resolution: This comment is accepted, and the editors will work with Ned Freed to correct this issue in the next draft. 2. Resolved Issues 2.1 Scope and Application of Specification Description: Should the specification be defined with the intent that the content type is to be used solely within a SMTP/MIME message transport or should there be a broader scope and application taken into the definition of the specification? Alternatives: 1. The specification should be designed with the scope and application target of just the SMTP/MIME messaging transport. 2. The specification should be designed with the scope and application target of just the IETF transport protocols. 3. The specification is for an industry calendaring and scheduling standard. The scope and application target should be a broad range of IETF and non-IETF transport protocols. Resolution: Alternative 3. (Working Group Charter/1996-10) 415 IETF CALSCH Core Object Specification - Issues Document 04/27/9704/27/97 2.2 Property Syntax Description: What syntax should be used to represent individual properties or MIME body elements within the specification? Alternatives: 1. Properties are to be defined using the syntax from vCalendar: propname *[;parmname "=" parmvalue] ":" propvalue 2. Properties are to be defined using the syntax from the July 1996 Microsoft document: propname ["," parmname "=" parmvalue] ":" propvalue Resolution: Alternative 1. (Mailing List/1996-12). 2.3 Ordering of Properties Description: Should the specification require ordering of properties? Alternatives: 1. No. There is not ordering requirement for properties, other than sentinel properties. 2. Yes. The ordering of some properties is important. Resolution: Alternative 1. (Mailing List/1996-11) 2.4 Specification of Usage Profiles Description: How should the specification encode the originator's intent with respect to the usage profile for content information conforming to the specification? Alternatives: 1. Include within the specification a new MIME header field CONTENT-PROFILE that will declare the intended usage profile. 2. Include within the specification a new "profile=" header field parameter for the MIME Content-Type header field. This parameter will declare the intended usage profile. 3. Include within the specification both a new "profile=" header field parameter for the MIME Content-Type header field and a new optional PROFILE property for the content information. These two elements will be used to declare the intended usage profile. The PROFILE property is needed within the content information in the event that the content information is transported using a non-MIME messaging transport, but is not required when the content information is transported in MIME. Resolution: Alternative 3 (Mailing list/1996-12). 515 IETF CALSCH Core Object Specification - Issues Document 04/27/9704/27/97 2.5 Strong, Explicit Data Typing Description: Should the specification include the definition of properties with strong data typing? Alternatives: 1. The specification should implicitly define the data types for the properties within the specification. While the content information itself does not include any explicit data typing information with the properties, it is defined within the specification. 2. The specification must include a mechanism for explicitly defining the data types for the properties within the specification. The content information includes explicit data typing with a VALUETYPE property parameter. A minimal set of value data types are defined by the specification. Additional value data types can be registered within the IANA registration procedures. The value data type must be explicitly declared on each property within the content information. 3. The specification must include a mechanism for explicitly defining the data types for the properties within the specification. Additionally, the specification must include a default value for the data type; in the event that the value data type is not explicitly specified in the content information. The content information includes explicit data typing with a VALUETYPE property parameter. A minimal set of value, data types are defined by the specification. Additional value, data types can be registered within the IANA registration procedures. The value, value data type may be explicitly declared on each property within the content information. If the value data type is not specified, it is defaulted to the default data type for the property value. Resolution: Alternative 3. (Mailing list/1996-10) 2.6 Minimalization of Property Names Description: Should property names be specified using the verbose style of MIME or a more minimal style for "low chat" and "small foot print" devices? Alternatives: 1. Use the verbose style of MIME for defining names. This is easier to read and comprehend. 2. Use a minimal, short name for properties. This is more suitable for small size datagrams. In addition, it is friendly to "low chat" transports and small "foot print" devices, like a PDA. 615 IETF CALSCH Core Object Specification - Issues Document 04/27/9704/27/97 Resolution: Alternative 1. When creating property names, make them as short as possible. (Mailing List/1996-11) 2.7 Multi-valued Property Values Description: Should property values be allowed to have multiple values? Alternatives: 1. No. A property value can only appear once in a content information with one value. 2. Yes. A property value may appear multiple times in a content information with multiple values. Resolution: Alternative 2 (Mailing List/1996-11) 2.8 Data Syntax/Base Core Object Specification Description: What semantics should the iCalendar specification be based on? Alternatives: 1. Base the specification on the vCalendar document. This includes a model of a calendar object as a conceptual container for calendar components including events and todos. This model is heavily borrowed from the XAPIA and X/Open Calendaring and Scheduling API (CSA) which represents a data model that has some broad consensus among a group of calendaring and scheduling vendors. It has also been implemented on over four operating system platforms by numerous vendors. 2. Base the specification on a set of semantics that is new and developed within the IETF. Where appropriate, utilize the best ideas from existing products or model specifications to derive a standard based on the consensus of the IETF Calendaring and Scheduling Working Group. Resolution: Per the pre-working group meeting, we've decided to use the CSCT draft as our starting point for the working group spec. The entire draft is up for review and group consensus will be reflected in any modification made to the draft. Modifications, as needed, will be made via postings of change text to the list. Posting should indicate the "broken" component of the existing specification. 2.9 Attendees In MIME Header Fields and Content Body Description: When calendar components are transported in the form of a MIME message, how should the attendees be specified? Alternatives: 715 IETF CALSCH Core Object Specification - Issues Document 04/27/9704/27/97 1. Attendees specified using the RFC-822 addressing fields. For example, "To:" header are "required", those in the "Cc:" header are "optional", etc. 2. Attendees specified with the "ATTENDEE" properties in the content information. 3. Attendees specified by 1 and 2. 4. Attendees specified by 1 and optionally 2,where 2 has precedence over 1 if 2 is specified. Resolution: Alternative 2, Attendees specified with the "ATTENDEE" properties in the content information. 2.10 Non-Gregorian Calendar Description: Should support be provided in the specification for specifying calendar components using non-Gregorian calendar systems? Alternatives: 1. No. Only Gregorian-based descriptions of calendar components are supported? 2. Yes. The specification should support specification of calendar components using a non-Gregorian calendar scale. Resolution: Modification of alternative 2. A mechanism for specifying alternate calendar types will be defined: a calendar scale property will allow the calendar scale to be named. However, the specification will only define behavior for the Gregorian calendar scale. Alternate calendar types and their behaviors, conversion rules, etc. will be defined in separate documents. 2.11 Property Definition (Normalization) Description: Should data type values be defined using simple base data types or should we allow structured data types (like a 'C' struct)? Requirements: Solution must have . Mechanism for grouping. . Named parameters for simplified parsing/ease of extensibility . Extensibility Alternatives: 815 IETF CALSCH Core Object Specification - Issues Document 04/27/9704/27/97 1.Type name and value consisting of multiple data types combined. For example: DALARM:19960415T235000;PT5M;2;Your Taxes Are Due !!! The advantage of this format is compactness of the data. The disadvantage is the cost of more specialized parsing code that is required to break this specialized data type apart and extract the base data type components. 2.Type name and value consisting of a single base data type. (Normalized). For example: DALARM-DATE:19960415T235000 DALARM-REMIND:000500 DALARM-SNOOZE:2 DALARM-MESSAGE:Your Taxes Are Due !!! The disadvantage of this format is compactness of the data. The advantage is that generic parsing code can be used and no specialized data types beyond the base data types (string, date-time, etc.) need to be defined. 3.Combine alternative 2 with the BEGIN:ALARM/END:ALARM, to meet the grouping requirement. 4.Use TERM CAPS type model. (Need someone to expand on this.) 5.Combine alternative 2 with MIME-DIR style grouping. Allows for unambiguous, multiple occurrences of property. Example: A.DALARM-DATE:19960415T235000 A.DALARM-REMIND:000500 A.DALARM-SNOOZE:2 A.DALARM-MESSAGE:Your Taxes Are Due !!! Resolution: Alternative #3 was used when the ALARM and DAYLIGHT properties were redefined in the current specification. 2.12 Content Type Description: What content type and subtype should be specified in the specification? Alternatives: 1. Use the "application/calendar" content type/subtype. The purpose of the "application" Content-Type as defined in section 7.4 of [RFC-1521] is "for data to be processed by mail-based uses of application programs." Calendaring and scheduling data falls into this category as recommended by 915 IETF CALSCH Core Object Specification - Issues Document 04/27/9704/27/97 [RFC-1521]. The "application/calendar" Content-Type is used to hold textual calendaring and scheduling information. Applications that want to supply a textual representation for legacy systems should use multipart/alternative with a text/plain representation and an application/calendar representation. 2. Use the "text/calendar" content type/subtype. The specification uses a clear-text format that is reasonably readable. In addition, the default action for MIME user agents that do not understand the "calendar" subtype will be to render as a "text/plain" content type/subtype. This is what will need to be done for all legacy systems. This is a very important constituent for this content type. Otherwise, the content type would be rendered as a binary attachment. 3. Use a framework media type such as being used in MIME-DIR. Resolution: Alternative #2 was used. Of additional note, the MIME- DIR framework media type has changed to be text/directory from application/directory. 2.13 BEGIN/END Content Sentinel Properties Description: Should the MIME calendaring and scheduling content include a BEGIN and END sentinel property? Alternatives: 1. Include the BEGIN/END sentinel properties. These properties will allow the content to be identified outside of the MIME message transport. They do have any significant overhead. 2. Do not include the BEGIN/END sentinel properties. They are not needed in the MIME encapsulation of the content type. Having another mechanism for delimiting MIME objects, adds to the overhead required to parse such objects, particularly if multiple calendaring and scheduling objects are permitted in a single body part. On the other hand, using the encapsulation methods provided by MIME allows applications to leverage protocols, such as IMAP, extract individual calendaring and scheduling content objects. Resolution: Alternative #1. We have found them to be useful in grouping as well as bounding the content. 2.14 Date and Time Format Description: What date and time format should be used for properties with date and time value types? Alternatives: 1015 IETF CALSCH Core Object Specification - Issues Document 04/27/9704/27/97 1. Use the revised RFC 822 date and time format defined by RFC 1123. This is the format that is used within the MIME messaging transport. It is also used by numerous IETF protocols. 2. Use the ISO 8601 based date and time format defined by the "- csct-01.txt" Internet Draft. This is the format that is used with Resolution: Alternative #2, ISO 8601 date and time format. Explicit BNF for this format has been included in the iCalendar document. 2.15 DST Rule Support Description: Should the specification for Time Zone include support for specifying the behavior and rules DST? If so, what format should be used? Alternatives: 1. No. The specification should not include support for calendaring functionality that depends on the specification of the behavior and rules for DST observance. 2. Yes. The specification should include a property that defines the behavior and rules for DST observance; based on the POSIX model. This would include a Boolean value defining DST observance, the offset from UTC for standard time, offset from UTC for daylight savings time, date and time or recurrence rule for beginning standard time, date and time or recurrence rule for beginning DST, optional string for the standard time zone name, optional string for the DST zone name. 3. Yes. The specification should include a set of properties that define the behavior and rules for the time zone. This would include at a minimum the time zone time delta from the prime meridian. In addition, if necessary (if DST is observed): a) a time delta used in DST, b) a Standard Time transition rule, i.e. a recurrence rule or list of absolute date/times; and c) a DST transition rule, i.e. a recurrence rule or list of absolute date/times. Additional optional properties may be desirable including a Time Zone identifiers, a time zone name for STD and DST time, a date- stamp to indicate "freshness" of the time zone rule, a URL to standardized time zone rule definitions, etc. Resolution: A variant on Alternative #3. A new VTIMEZONE component was added to encapsulate the behavior and rules for the time zone. 1115 IETF CALSCH Core Object Specification - Issues Document 04/27/9704/27/97 2.16 Exceptions To Recurrence Rules Description: How should exceptions to a recurrence rule be specified (e.g., as a sequence of dates, an exception recurrence rule, or optionally both)? Alternatives: 1. The recurrence model should support the specification of exceptions to the recurrence as a sequence of dates. 2. The recurrence model should support the specification of exceptions to the recurrence as a sequence of dates and optionally an exception recurrence rule or both. Resolution: Alternative #2. 2.17 Infinite Recurring Patterns Description: Should the recurrence rules allow for an infinite number of recurrences? Alternatives: 1. No. The recurrence rules need to specify a finite number of occurrences. 2. Yes. The recurrence rules need to allow for an open-ended, infinite number of recurrences. 3. Yes. The recurrence rules need to allow for open-ended recurrence rules. However, there also needs to be a way of specifying a stop date or count to the open-ended recurrence rule. Resolution: Alternative #3 as drafted in the new recurrence grammar. 2.18 Non-Standard Extensibility Description: Should the specification support a formal method for making "non-standard" extensions to the specification? Alternatives: 1. No. The specification should limit support for extensions in order to maximize possible interoperability. 2. Yes. The specification should include the RFC 1521 method of "X-" tags for non-standard extensions to the property names and values and non-standard extensions to the property parameter names and values. Standard extensions should also be supported via the IANA registration process of new property names and values or new property parameter names and values. 1215 IETF CALSCH Core Object Specification - Issues Document 04/27/9704/27/97 Resolution: Alternative #2. IANA registration is preferred, but "x- token" non-standard properties and property parameters, as well as, enumerated values are allowed. 2.19 Model for iCalendar needs to be defined. Description: Need a clear description of the model used by iCalendar. Resolution: Agreed this will either be a separate document (general consensus) or added as an introduction to the iCalendar document. 3. Withdrawn Issues 3.1 Functional Completeness Description: What types of scheduling functionality should be included in the specification? Alternatives: 1. Just include support for requesting, replying-to and canceling an event. 2. Begin with the base concepts of requesting, replying-to and canceling an event. Add additional functionality that is deemed as required by the group. 3. Start with as full a set of scheduling functionality as possible (e.g., requesting, replying-to, canceling, modifying, replacing, resending, negotiating events and todos, as well as requesting and replying-to free/busy time requests.). Let the group decide what to add and remove. Resolution: Alternative #3 fairly closely represents the decision of the group by accepting the CSCT draft as the basis for the core object specification. However, the issue is still valid in the context of the Calendaring and Scheduling Content Type Profile document and should be addressed there. 1315