IETF CALSCH Working Group                           Anik Ganguly/OnTime
Issues Document                                        Frank Dawson/IBM
<draft-ietf-calsch-ical-issues-00.txt>        Derik Stenerson/Microsoft
Expire in six months                                   February 2, 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 is listed in a separate section.

   An issues 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

1.1     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:

        1.Type name and value consisting of multiple data types
          combined..


                                   1


IETF CALSCH   Core Object Specification - Issues Document      02/03/97


          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 !!!

1.2     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
          [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


IETF CALSCH   Core Object Specification - Issues Document      02/03/97


        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.

1.3     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.

1.4     Recurring Event Model

   Description: What model should be used for representing recurrences
           within calendar component descriptions. For example, how will
           recurring events be represented?

   Alternatives:

        1. Base the recurrences model on that specified in the vCalendar
          specification. The vCalendar specification includes a model
          that allows both the representation of recurrences as a
          sequence of discrete recurring dates and as a recurrence
          pattern with a recurrence grammar. The model also allows the
          inclusion of exceptions to a calendar component description
          using the same options of a sequence of discrete exception
          dates or an exception pattern. This model has been
          implemented by numerous vendors. It is based on previous work
          of the IETF CHRONOS working group and accepted practice in
          _small foot print_ machines such as Personal Digital
          Assistants (PDA).




                                   3


IETF CALSCH   Core Object Specification - Issues Document      02/03/97


        2. Base the representation of recurring events on a model that
          describes calendar based recurrence patterns ranging from the
          simple to the complex in a manner that is simple to implement
          properly and flexible enough to allow for support non-
          gregorian calendars.  The draft-ietf-calsch-sch-00.txt draft
          attempts to define such a model, implemented as a set
          calendar restrictions, similar to a database query, combined
          with reference date and time information. Each restriction,
          or pattern, is combined with the next pattern using the
          logical AND operations.  The query style method allows for a
          wide variety of patterns to be specified without complex
          parsing or grammar.

1.5     Date and Time Format

   Description: What date and time format should be used for properties
           with date and time value types?

   Alternatives:

        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

1.6     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


                                   4


IETF CALSCH   Core Object Specification - Issues Document      02/03/97


          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.

1.7     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.

1.8     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.

1.9     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.




                                   5


IETF CALSCH   Core Object Specification - Issues Document      02/03/97


        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.

1.10    Local Time Values

   Description: Should we allow local time values for date and time
           value types within the specification?

   Requirement: Solution must have time values specified such that they
           are globally unambiguous to the recipient(s) of the calendar
           object.

   Alternatives:

        1. No. Only UTC values should be specified for data and time
          values.

        2. Yes. However, the local time should always include the time
          zone offset from UTC.

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)

2.2     Property Syntax

   Description: What syntax should be used to represent individual
           properties or MIME body elements within the specification?

   Alternatives:


                                   6


IETF CALSCH   Core Object Specification - Issues Document      02/03/97


        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).

2.5     Strong, Explicit Data Typing

   Description: Should the specification include the definition of
           properties with strong data typing?

   Alternatives:


                                   7


IETF CALSCH   Core Object Specification - Issues Document      02/03/97


        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.

   Resolution: Alternative 1. When creating property names, make them as
           short as possible. (Mailing List/1996-11)






                                   8


IETF CALSCH   Core Object Specification - Issues Document      02/03/97


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 Model

   Description: What calendaring and scheduling data model should the
           specification use?

   Alternatives:

        1.   Base the model on the vCalendar specification. 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 model on an architecture 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 will be made
   via postings of change text to the list.

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:

        1. Attendees specified using the RFC-822 addressing fields.  For
          example, "To:" header are "required", those in the "Cc:"
          header are "optional", etc.



                                   9


IETF CALSCH   Core Object Specification - Issues Document      02/03/97


        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.

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.



                                   10


IETF CALSCH   Core Object Specification - Issues Document      02/03/97


   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 <draft-ietf-calsch-csp-xx.txt> and should be addressed
   there.


















































                                   11