Calendar Working Group                                      Ian Ferrell
 INTERNET DRAFT                                            Darren Shakib
 draft-ferrell-prop-cal-00.txt                                 Microsoft
 Expire in six months
 
        An Application/Properties Profile for Calendar Information
 
 
 1.  Status of this Memo
 
 This document is an Internet-Draft. Internet-Drafts are working docu-
 ments of the Internet Engineering Task Force (IETF), its areas, and its
 working groups. Note that other groups may also distribute working
 documents as Internet-Drafts.
 
 Internet-Drafts are draft documents valid for a maximum of six months
 and may be updated, replaced, or obsoleted by other documents at any
 time. It is inappropriate to use Internet- Drafts as reference material
 or to cite them other than as "work in progress."
 
 To learn the current status of any Internet-Draft, please check the
 "1id-abstracts.txt" listing contained in the Internet- Drafts Shadow
 Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
 munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
 ftp.isi.edu (US West Coast).
 
 
 2.  Abstract
 
 This document defines several calendar information profiles to be car-
 ried in the application/properties MIME Content-Type defined in [MIME-
 PROP]. These profiles describe properties required for appointment,
 appointment request, and appointment response. A complete list of
 properties is provided.
 
 
 3. Overview
 
 The profiles described in this document support storing calendar infor-
 mation in the application/properties MIME Content-Type as well as gener-
 ating appointment requests and responses. These three basic profiles,
 appointment, appointment request, and appointment response, are
 separately defined instead of derived soley from a single appointment
 profile in order to avoid ambiguous property definitions. Appointments
 can be one-time or recurring.
 
 
 4. The Appointment Profile
 
 This section describes core appointment items to be carried in the
 application/properties MIME Content-Type defined in [MIME-PROP].
 
 The Appointment Profile is the basis upon which the One Time, Recurring,
 and Exception variants are constructed. The variants of the basic ap-
 pointment inherit properties from the basic appointment profile in the
 following way:
 
                             +---------------+
                             |  Appointment  |
                             |    Profile    |
                             +---------------+
                               |           |
                   +---------------+   +---------------+
                   |   One Time    |   |   Recurring   |
                   |    Variant    |   |    Variant    |
                   +---------------+   +---------------+
                           |
                   +---------------+
                   |   Exception   |
                   |    Variant    |
                   +---------------+
 
           Figure 1: Overview of Appointment profiles and variants
 
 
 4.1 Appointment profile registration
 
 The properties of the core appointment profile is listed below.  The
 format of this listing is in a standards based form discussed in [MIME-
 PROP].  Note that the *types* of the properties (text, datetime,
 boolean) are also listed in [MIME-PROP].
 
    To: [mailing list TBD]
    Subject: Registration of application/properties MIME profile
             Appointment
 
    Profile name: Appointment
 
    Profile purpose: Indicates schema of Appointment item
 
    Profile property names: AlarmEnabled
                            AlarmTime
                            Busy
                            Description
                            Summary
                            Location
                            Resources
                            Confidentiality
                            Priority
                            Category
                            ID
                            AppointmentVersion
 
    Profile intended usage: COMMON
 
    Property descriptions:
 
       Name: AlarmEnabled
 
       Data type: BOOLEAN
 
       Purpose: Flag indicating whether an alarm is enabled for this
                appointment.
 
       Encoding:
 
       Special notes: This property is useful for preserving alarm state
                      in cases where expired appointments are rescheduled
                      in the future.
 
                      Absence of this property indicates Alarm is
                      ENABLED.
 
       Required: NO
 
       Multi-valued: SOMETIMES
 
       Intended usage: COMMON
       __________
 
       Name: AlarmTime
 
       Data type: DATETIME
 
       Purpose: Date and time of item alarm.
 
       Encoding:
 
       Special notes: Absence of this property indicates that there is
                      no alarm.
 
       Required: NO
 
       Multi-valued: SOMETIMES
 
       Intended usage: COMMON
       __________
 
       Name: Busy
 
       Data type: BOOLEAN
 
       Purpose: Describes how appointment appears in busy-time searches.
 
       Encoding:
 
       Special notes: TRUE indicates that for the appointment time, the
                      user is busy, and other appointments should not be
                      scheduled.
 
                      If this property is absent, assume TRUE.
 
       Required: NO
 
       Multi-valued: SOMETIMES
 
       Intended usage: COMMON
       __________
 
       Name: Description
 
       Data type: TEXT
 
       Purpose: A user-specified description of the appointment.
 
       Encoding:
 
       Special notes: This property is intended to accommodate more ver-
                      bose descriptions than the Summary property. For
                      example, it could be used to keep the agenda for a
                      meeting.
 
                      This property may refer to another MIME body part.
                      In particular, a URL to an HTML body part would
                      give you the ability to have a rich-text
                      description.
 
       Required: NO
 
       Multi-valued: SOMETIMES
 
       Intended usage: COMMON
       __________
 
       Name: Summary
 
       Data type: TEXT
 
       Purpose: A brief description of the appointment
 
       Encoding: This property SHOULD NOT include linebreaks
 
       Required: NO
 
       Multi-valued: SOMETIMES
 
       Intended usage: COMMON
       __________
 
       Name: Location
 
       Data type: TEXT
 
       Purpose: Describes the location of the appointment
 
       Encoding:
 
       Special notes: [none]
 
       Required: NO
 
       Multi-valued: SOMETIMES
 
       Intended usage: COMMON
       __________
 
       Name: Resources
 
       Data type: TEXT
 
       Purpose: Contains resources needed for the appointment
 
       Encoding:
 
       Special Notes: Possible resources include,
                      Projector
                      VCR
                      Computer
                      Coffee Machine
                      Car
 
       Required: NO
 
       Multi-valued: ALWAYS
 
       Intended usage: COMMON
       __________
 
       Name: Confidentiality
 
       Data type: TEXT
 
       Purpose: Rating of appointment's confidentiality.
 
       Encoding: Three possible values are defined.
 
                 "Public": Item is viewable by all users, subject to
                           global security restrictions of the system.
                           The item affects free-busy time calculations
                           and display.
 
                 "Private": Item is not viewable by all users, subject
                            to security restrictions of the system. The
                            item affects free-busy time calculations and
                            display.
 
                 "Confidential": Item is not viewable by all users, sub-
                                 ject to security restrictions of the
                                 system. The item does not affect free-
                                 busy time calculations and display.
 
                 All values are case insensitive.
 
       Special notes: Absence of this property indicates that the item
                 is "Public".
 
       Required: NO
 
       Multi-valued: SOMETIMES
 
       Intended usage: COMMON
       __________
 
       Name: Priority
 
       Data type: LONG
 
       Purpose: Denotes appointment priority
 
       Encoding: This value should not be negative
 
       Special Notes: Smaller values denote higher priority.
 
       Required: NO
 
       Multi-valued: SOMETIMES
 
       Intended usage: COMMON
       __________
 
       Name: Category
 
       Data type: TEXT
 
       Purpose: Contains appointment categorisations
 
       Encoding:
 
       Special Notes: Possible categories include,
                      Education
                      Holiday
                      Meeting
                      Miscellaneous
                      Phone Call
                      Sick Day
                      Special Occasion
                      Travel
                      Vacation
                      Business
                      Personal
 
       Required: NO
 
       Multi-valued: ALWAYS
 
       Intended usage: COMMON
       __________
 
       Name: ID
 
       Data type: TEXT
 
       Purpose: Unique ID for the parent item
 
       Encoding: ID format is the same as MessageID, as described in
                 [RFC 822]
 
       Special notes: An ID is necessary to correlate responses with
                      appointment requests and recurrence exceptions
                      with parent recurrences.
 
       Required: NO
 
       Multi-valued: NEVER
 
       Intended usage: COMMON
       ________
 
       Name: AppointmentVersion
 
       Data type: DATETIME
 
       Purpose: Datetime of the last change to the appointment that
                would invalidate attendee responses prior to the
                change. An example of this change is the rescheduling
                of an appointment.
 
       Special notes: Absence of this property implies that all
                      attendees' responses are valid.
 
       Encoding:
 
       Required: NO
 
       Multi-valued: NEVER
 
       Intended usage: COMMON
 
 
 4.2 OneTime variant
 
 The OneTime variant describes an appointment that occurs once, like the
 traditional meeting or appointment.
 
 
 4.2.1. OneTime variant of the Appointment profile
 
 This section covers formal registration of the OneTime variant of the
 Appointment Profile to a standards body. Note that it inherits the
 properties of the basic appointment profile.
 
    To: [mailing list TBD]
    Subject: Registration of application/properties MIME variant
             OneTime
 
    Variant name: OneTime
 
    Variant profile: Appointment
 
    Variant purpose: Indicates schema of OneTime Appointment items
 
    Variant property names: Start
                            End
 
    Variant intended usage: COMMON
 
    Property descriptions:
       __________
 
       Name: Start
 
       Data type: DATETIME
 
       Purpose: Start date and time of the item.
 
       Encoding:
 
       Required: YES
 
       Multi-valued: SOMETIMES
 
       Intended usage: COMMON
       __________
 
       Name: End
 
       Data type: DATETIME
 
       Purpose: End date and time of the item.
 
       Encoding:
 
       Required: YES
 
       Multi-valued: SOMETIMES
 
       Intended usage: COMMON
 
 4.2.2 Example
 
 Example #1 demonstrates a simple OneTime appointment in the
 application/properties MIME Content-Type. The appointment has a start
 and end datetime.
 
 Example 1:
 
    Content-Type: application/properties; profile="Appointment"
    Profile: Appointment
    Variant: OneTime
    Start, datetime: 22 Oct 96 17:00:00 PST
    End, datetime: 22 Oct 96 19:30:00 PST
    Location: Conference Room 3384
    Categories: "Business", "Review"
    Summary: Present market feedback results
    Resources: "Projector", "VCR", "Twister(tm) mat"
    AlarmTime, datetime: 22 Oct 96 16:45:00 PST
    Busy, boolean: TRUE
    Description: "At this meeting we will review next "
                 "month's schedule. Any conflicts will be "
                 "resolved with the Twister(tm) mat."
 
 
 4.3 Recurring variant of the Appointment Profile
 
 The recurring variant describes appointments which occur more than
 once. For example, weekly meetings could be described using a single
 appointment with a recurring pattern.  This not only reduces storage,
 but allows the description of appointments which have no predefined
 end date. The use of individual properties to describe components of
 the pattern allows for a wide variety of patterns to be specified
 without specialized parsing or grammar.
 
 4.3.1 The Recurrence Model
 
 Recurrence patterns are described using seven properties. Detailed
 explanation of all of these properties is in Section 4.3.4.
 
 Three properties are used to denote specific days or months. These are:
 
      DaysOfWeek
      DaysOfMonth
      MonthsOfYear
 
 Four properties describe the interval between instances of the pattern.
 
      DayInterval
      WeekInterval
      MonthInterval
      YearInterval
 
 Using these properties, it is possible to describe calendar-based recur-
 ring patterns. (Examples of non-calendar-based patterns include Easter
 and Winter Solstice which are based on lunar patterns.)
 
 A unique feature of the above properties is that they may be used in
 combination to represent arbitrarily complex recurrence patterns.
 
 Recurring patterns have four properties describing the date and time of
 the recurring item. The Start and End single-instance appointment prop-
 erties are not used.
 
      InstanceStartTime
      InstanceEndTime
      StartDate
      EndDate
 
 The two time-related fields hold the item's start and end time. The two
 date-related fields cover the start and end dates of the recurring pat-
 tern. It is not required to have an end date for a pattern; unbounded
 patterns are allowed.
 
 The following examples depict recurring patterns using this model.
 
 Example 1:
 Christmas Day (December 25th) is described as:
 
 DaysOfMonth, long: 25
 MonthsOfYear, long: 12
 YearInterval, long: 1
 PatternDescription: "December 25, every year"
 
 
 Example 2:
 A weeknight television broadcast is described as:
 
 DaysOfWeek, text: "Mon", "Tue", "Wed", "Thu", "Fri"
 WeekInterval, long: 1
 InstanceStartTime, time: 21:00
 InstanceEndTime, time: 22:00
 ReferenceTimeZone: PST
 PatternDescription: "Monday-Friday, every week, 9:00p.m.-10:00 p.m."
 
 
 Example 3:
 Payday is described as:
 
 DaysOfMonth, long: 15, -1
 MonthInterval, long: 1
 InstanceStartTime, time: 12:00
 InstanceEndTime, time: 12:00
 PatternDescription: "15th and last day of the month at noon"
 
 
 Example 4:
 U.S. Presidential Election Day is described as:
 
 DaysOfMonth, long: 2,3,4,5,6,7,8
 DaysOfWeek: Tue
 MonthsOfYear, long: 11
 YearInterval, long: 4
 PatternDescription: "First Tuesday after a Monday in November, "
                     "every four years"
 
 (Since there must be a Monday in November before the election day,
 November 1 is disqualified.)
 
 
 4.3.2 Recurring variant of the Appointment Profile definition
 
 This section covers formal registration of the Recurring variant of the
 Appointment Profile to a standards body.
 
    To: [mailing list TBD]
    Subject: Registration of application/properties MIME variant
             Recurring
 
    Variant name: Recurring
 
    Variant profile: Appointment
 
    Variant purpose: Indicates schema of Recurring Appointment items
 
    Variant property names: DaysOfWeek
                            DaysOfMonth
                            MonthsOfYear
                            DayInterval
                            WeekInterval
                            MonthInterval
                            YearInterval
                            InstanceStartTime
                            InstanceEndTime
                            StartDate
                            EndDate
                            ReferenceTimeZone
                            PatternDescription
                            ExceptionDate
 
    Variant intended usage: COMMON
 
    Property descriptions:
 
       Name: DaysOfWeek
 
       Data type: TEXT
 
       Purpose: A list of the individual days of the week that the
                appointment can occur.
 
       Encoding:  Sun, Mon, Tue, Wed, Thu, Fri, Sat.  The values are
                  case insensitive and non-localizable.
 
       Special notes: For example, a recurring weekly Appointment that
                      occurs on Monday and Wednesday sets DaysOfWeek
                      equal to "Mon, Wed".
 
       Required: NO
 
       Multi-valued: ALWAYS
 
       Intended usage: COMMON
       __________
 
       Name: DaysOfMonth
 
       Data type: LONG
 
       Purpose: A list of the individual days of the month that the
                appointment can occur.
 
       Encoding:  1 to 31 / -31 to -1. 0 is undefined.
 
       Special notes: Negative values specify an offset from the end of
                      the month.  Negative one is the last day of the
                      month.  For example, a recurring monthly
                      Appointment that occurs on the first and tenth
                      days sets DaysOfMonth equal to "1, 10".
 
       Required: NO
 
       Multi-valued: ALWAYS
 
       Intended usage: COMMON
       __________
 
       Name: MonthsOfYear
 
       Data type: LONG
 
       Purpose: A list of the individual months of the year that the
                appointment can occur.
 
       Encoding: 1 - 12
 
       Special notes: For example, a recurring appointment that occurs
                      in the fourth and tenth months sets MonthsOfYear
                      equal to "4, 10".
 
       Required: NO
 
       Multi-valued: SOMETIMES
 
       Intended usage: COMMON
       _________
 
       Name: DayInterval
 
       Data type: LONG
 
       Purpose: Interval between days for a recurrence pattern.
 
       Encoding:
 
       Special notes: For example, every other day has DayInterval = 2.
 
       Required: NO
 
       Multi-valued: NEVER
 
       Intended usage: COMMON
       __________
 
       Name: WeekInterval
 
       Data type: LONG
 
       Purpose: Interval between weeks for a recurrence pattern.
 
       Encoding:
 
       Special notes: For example, pay day every two weeks has a
                      WeekInterval of 2.
 
       Required: NO
 
       Multi-valued: SOMETIMES
 
       Intended usage: COMMON
       __________
 
       Name: MonthInterval
 
       Data type: LONG
 
       Purpose: Interval between months for a recurrence pattern.
 
       Encoding:
 
       Special notes: For example, a quarterly appointment, every three
                      months, has a MonthInterval of 3. Property taxes,
                      due every six months, have a MonthInterval of 6.
 
       Required: NO
 
       Multi-valued: SOMETIMES
 
       Intended usage: COMMON
       __________
 
       Name: YearInterval
 
       Data type: LONG
 
       Purpose: Interval between years for a recurrence pattern.
 
       Encoding:
 
       Special notes: For example, the Summer Olympics have a
                      YearInterval of 4.
 
       Required: NO
 
       Multi-valued: SOMETIMES
 
       Intended usage: COMMON
       __________
 
       Name: InstanceStartTime
 
       Data type: Time
 
       Purpose: Start time for the appointment within the recurring
                pattern.
 
       Encoding:
 
       Required: NO
 
       Multi-valued: SOMETIMES
 
       Intended usage: COMMON
       __________
 
       Name: InstanceEndTime
 
       Data type: Time
 
       Purpose: End time for the appointment within the recurring
                pattern.
 
       Encoding:
 
       Required: NO
 
       Multi-valued: SOMETIMES
 
       Intended usage: COMMON
       __________
 
       Name: StartDate
 
       Data type: DATE
 
       Purpose: Start date for the recurring pattern.
 
       Encoding:
 
       Required: YES
 
       Multi-valued: NEVER
 
       Intended usage: COMMON
       __________
 
       Name: EndDate
 
       Data type: DATE
 
       Purpose: End date for the recurrence pattern.
 
       Encoding:
 
       Special notes: If EndDate is not specified, the appointment is an
                      unbounded recurring series.
 
       Required: NO
 
       Multi-valued: NEVER
 
       Intended usage: COMMON
       __________
 
       Name: ReferenceTimeZone
 
       Data type: TEXT
 
       Purpose: Timezone for the recurrence pattern.
 
       Encoding:
 
       Special notes: Contents of this property will follow the [RFC
                      822] time zone description, however we need
                      additional semantics to define daylight savings
                      transitions. Exact format of this property remains
                      OPEN.
 
       Required: NO
 
       Multi-valued: SOMETIMES
 
       Intended usage: COMMON
       __________
 
       Name: PatternDescription
 
       Data type: TEXT
 
       Purpose: Human-readable definition of recurrence pattern.
 
       Encoding:
 
       Special notes: Some examples of this string are
                     "Every 3 months, on the 12th day, from 12/1/96"
                     "Every week on Wednesday from 7/10/96 to 12/31/96"
 
                      This property is highly-recommended when sending a
                      recurring appointment request so clients have a
                      text description of the pattern to display.
 
       Required: NO
 
       Multi-valued: SOMETIMES
 
       Intended usage: COMMON
       __________
 
       Name: ExceptionDate
 
       Data type: DATE
 
       Purpose: Instance date of an exception to the recurring pattern.
 
       Encoding:
 
       Special notes: An exception is an appointment or appointments
                      that are excluded from a recurrence pattern.
 
       Required: NO
 
       Multi-valued: ALWAYS
 
       Intended usage: COMMON
 
 
 4.3.3 Example
 
 Example #1 demonstrates a recurring appointment in the
 application/properties MIME Content-Type. The recurring pattern
 describes the United States Presidential Election Day:
 
 Example 1:
 
    Content-Type: application/properties; profile="Appointment"
    Profile: Appointment
    Variant: Recurring
    InstanceStartTime, time: 8:00
    InstanceEndTime, time: 18:00
    ID: <foo@bogus.com>
    StartDate, date: 1 Jan 96
    ReferenceTimeZone: EST
    DaysOfMonth, long: 2,3,4,5,6,7,8
    DaysOfWeek: Tue
    MonthsOfYear, long: 11
    YearInterval, long: 4
    PatternDescription: "First Tuesday after a Monday in November, "
                        "every four years"
    Location: Conference Room 3384
    Categories: "Business", "Review"
    Summary: Present market feedback results
    Busy, boolean: TRUE
 
 4.4 Exception Variant
 
 4.4.1 Exception variant of Appointment Profile registration
 
 An exception is an appointment or appointments that are excluded from a
 recurrence pattern.
 
    To: [mailing list TBD]
    Subject: Registration of application/properties MIME variant
             OneTime.Exception
 
    Variant name: OneTime.Exception
 
    Variant profile: Appointment
 
    Variant purpose: Indicates schema of OneTime.Exception Appointment a
                     items where the item contains the data for an ex-
                     ception to a recurrence pattern.
 
    Variant property names: AppointmentID
                            OriginalExceptionDate
 
    Variant intended usage: COMMON
 
    Property descriptions:
 
       Name: AppointmentID
 
       Data type: TEXT
 
       Purpose: ID of the parent recurring item
 
       Encoding: AppointmentID format is the same as MessageID, as
                 described in [RFC 822]
 
       Required: NO
 
       Multi-valued: NEVER
 
       Intended usage: COMMON
       _________
 
       Name: OriginalExceptionDate
 
       Data type: DATE
 
       Purpose: Instance date of the exception to the recurrence
                pattern.
 
       Encoding:
 
       Required: NO
 
       Multi-valued: NEVER
 
       Intended usage: COMMON
 
 
 4.4.2 Example
 
 Example #1 demonstrates an exception to recurring appointment in the
 application/properties MIME Content-Type.
 
 Example 1:
 
    Content-Type: application/properties; profile="appointment"
    Profile: Appointment
    Variant: OneTime.Exception
    Start, datetime: 7 Nov 1996 8:00 PST
    End, datetime: 7 Nov 1996 18:00 PST
    Summary: "Resceduling for the 7th, instead of the 5th."
    AppointmentID: <foo@bogus.com>
    OriginalExceptionDate, date: 5 Nov 1996
 
 
 5. The Appointment Request profile
 
 5.1 Appointment Request overview
 
 Appointment request messages are sent from the appointment organizer to
 attendees. Requests contain the minimal amount of information needed to
 determine a time and date for the appointment.
 
 Figure 2 describes the appointment request flow:
 
        +-------------+
        | Appointment |_____________\ Attendee(s)
        |   Request   |             /
        +-------------+
 
               Figure 2 : Appointment requests
 
 If an appointment needs to be rescheduled, the client generates a new
 appointment request with the AppointmentID property equal to the origi-
 nal appointment's ID property. Recipients need to verify whether an
 appointment request is for a new appointment, cancellation, or re-
 scheduled appointment.
 
 The appointment request profile is organized as follows:
 
                             +---------------+
                             |  Appointment  |
                             |    Request    |
                             |    Profile    |
                             +---------------+
                               |           |
                   +---------------+   +---------------+
                   |   One Time    |   |   Recurring   |
                   |    Request    |   |    Request    |
                   |    Variant    |   |    Variant    |
                   +---------------+   +---------------+
                           |
                   +---------------+
                   |   Exception   |
                   |    Request    |
                   |    Variant    |
                   +---------------+
 
       Figure 3: Appointment Request profiles and variants overview
 
 
 5.2 Appointment Request profile registration
 
    To: [mailing list TBD]
    Subject: Registration of application/properties MIME profile
             AppointmentRequest
 
    Profile name: AppointmentRequest
 
    Profile purpose: Indicates schema of AppointmentRequest item
 
    Profile property names: Description
                            Summary
                            Location
                            Resources
                            Confidentiality
                            Priority
                            Category
                            ID
                            AppointmentVersion
                            (Above properties as defined in
                            Section 4.1 above)
                            AppointmentID
                            (Above properties as defined in
                            Section 4.4.1 above)
                            ResponseRequested
                            RequestType
 
 
    Profile intended usage: COMMON
 
    Property descriptions:
 
       Name: ResponseRequested
 
       Data type: BOOLEAN
 
       Purpose: Flag denoting whether the appointment organizer requests
                an attendance response from appointment attendees.
 
       Encoding:
 
       Special notes: TRUE = response is requested,
                      FALSE = response is not requested.
 
                      Some appointments do not require
                      attendance tracking or the organizer
                      does not care. This property should
                      be set accordingly.
 
                      If the property is absent, it is
                      assumed FALSE.
 
       Required: NO
 
       Multi-valued: SOMETIMES
 
       Intended usage: COMMON
       _______
 
       Name: RequestType
 
       Data type: TEXT
 
       Purpose: Indicates the type of the request.
 
       Encoding: One of the following values:
                 "Request" Request to attend appointment.
                 "Cancel"  Request to cancel appointment.
                 Values are case insensitive.
 
       Special Notes:  If the value is absent, "Request" is assumed.
 
       Required: NO
 
       Multi-valued: NEVER
 
       Intended usage: COMMON
 
 
 5.3 OneTimeRequest variant of AppointmentRequest Profile
 
 5.3.1. OneTimeRequest variant registration
 
    To: [mailing list TBD]
    Subject: Registration of application/properties MIME variant
             OneTimeRequest
 
    Variant name: OneTimeRequest
 
    Variant profile: AppointmentRequest
 
    Variant purpose: Indicates schema of OneTime Request items
 
    Variant property names: Start
                            End
                           (Above properties as defined in
                            Section 4.2.1 above)
 
    Variant intended usage: COMMON
 
    Property descriptions: [none]
 
 
 5.3.2 Example
 
 Example #1 demonstrates a minimal appointment request in the applica-
 tion/properties MIME Content-Type. The appointment has a start and end
 datetime.
 
 Example 1:
 
    To: Franklin W. Dixon <franklind@bogus.com>
    From: Carolyn Keene <carolynk@bogus.com>
    Subject: Discuss contract issues
    MIME-Version: 1.0
    Message-ID: <id1@bogus.com>
    Content-Type: application/properties; profile="appointment"
    Content-ID: <id2@bogus.com>
 
    ID: <foo@bogus.com>
    Profile: Appointment
    Variant: OneTimeRequest
    Start, datetime: 22 Oct 96 14:00:00 UT
    End, datetime: 22 Oct 96 15:00:00 UT
 
 
 5.4 Recurring variant of AppointmentRequest profile
 
 5.4.1 Recurring variant definition
 
    To: [mailing list TBD]
    Subject: Registration of application/properties MIME variant
             Recurring
 
    Variant name: Recurring
 
    Variant profile: AppointmentRequest
 
    Variant purpose: Indicates schema of Recurring Appointment items
 
 Variant property names: DaysOfWeek
                         DaysOfMonth
                         MonthsOfYear
                         DayInterval
                         WeekInterval
                         MonthInterval
                         YearInterval
                         InstanceStartTime
                         InstanceEndTime
                         StartDate
                         EndDate
                         ReferenceTimeZone
                         PatternDescription
                         ExceptionDate
                         (Above properties as defined in
                         Section 4.3.2 above)
 
    Variant intended usage: COMMON
 
    Property descriptions: [none]
 
 
 5.4.2 Example
 
 Example #1 demonstrates a recurring appointment request in the
 application/properties MIME Content-Type. The recurring pattern
 describes the United States Election Day:
 
 Example 1:
 
    To: President <president@whitehouse.gov>
    From: Vice President <vice.president@whitehouse.gov
    Subject: Don't forget to vote!
    MIME-Version: 1.0
    Message-ID: <id1@whitehouse.gov>
    Content-Type: application/properties; profile="appointmentrequest"
    Content-ID: <id2@whitehouse.gov>
 
    Profile: AppointmentRequest
    Variant: Recurring
    ID: <foo@bogus.com>
    InstanceStartTime, time: 8:00
    InstanceEndTime, time: 18:00
    StartDate, date: 1 Jan 96
    ReferenceTimeZone: EST
    DaysOfMonth, long: 2,3,4,5,6,7,8
    DaysOfWeek: Tue
    MonthsOfYear, long: 11
    YearInterval, long: 4
    PatternDescription: "First Tuesday after a Monday in "
                        "November, every four years"
 
 5.5 Exception Variant of AppointmentRequest profile
 
 5.5.1 Exception variant registration
 
    To: [mailing list TBD]
    Subject: Registration of application/properties MIME
             variant OneTime.Exception
 
    Variant name: OneTime.Exception
 
    Variant profile: AppointmentRequest
 
    Variant purpose: Indicates schema of Exception Appointment items
 
    Variant property names: OriginalExceptionDate
                            (Above property defined in 4.4.1)
 
    Variant intended usage: COMMON
 
    Property descriptions: [none]
 
 
 5.5.2 Example
 
    To: President <president@whitehouse.gov>
    From: Vice President <vice.president@whitehouse.gov>
    Subject: Don't forget to vote!
    MIME-Version: 1.0
    Message-ID: <id1@whitehouse.gov>
    Content-Type: application/properties;
                  profile="appointmentrequest"
    Content-ID: <id2@whitehouse.gov>
 
    Profile: AppointmentRequest
    Variant: OneTime.Exception
    Start, datetime: 7 Nov 1996 18:00 PST
    End, datetime: 7 Nov 1996 18:00 PST
    AppointmentID: <foo@bogus.com
    OriginalExceptionDate, date: 5 Nov 1996
    Summary: Rescheduling due to invasion.
 
 
 
 6. The Appointment Response profile
 
 6.1 Appointment Response overview
 
 Appointment response messages update attendance status for each atten-
 dee, and are issued by the attendee after receiving an appointment re-
 quest. Attendee response verbs are documented in the AttendeeStatus
 property.>
 
 Figure 4 describes the appointment request/response flow:
 
        +-------------+
        | Appointment |_____________\ Attendee(s)
        |   Request   |             /     |
        +-------------+                   |
                                          |
                                   +-------------+
         Appointment /_____________| Appointment |
           Organizer \             |   Response  |
                                   +-------------+
 
               Figure 4 : Appointment response
 
 Here, the appointment organizer issues an appointment request. The at-
 tendee receives the request and issues an appointment response back to
 the organizer.
 
 Note that appointment responses are not required for each appointment
 request, and in some cases, particularly informational appointment re-
 quests sent to a large group of people, the meeting organizer will find
 responses undesirable.
 
 The appointment response profile is organized as follows:
 
                             +---------------+
                             |  Appointment  |
                             |   Response    |
                             |    Profile    |
                             +---------------+
                               |           |
                   +---------------+   +---------------+
                   |   One Time    |   |   Recurring   |
                   |    Variant    |   |    Variant    |
                   +---------------+   +---------------+
                           |
                   +---------------+
                   |   Exception   |
                   |    Variant    |
                   +---------------+
 
       Figure 5: Appointment Response profiles and variant overview
 
 6.2.1 Appointment Response profile registration
 
    To: [mailing list TBD]
    Subject: Registration of application/properties MIME
             profile AppointmentResponse
 
    Profile name: AppointmentResponse
 
    Profile purpose: Indicates schema of AppointmentResponse items
 
    Profile property names: Description
                            Summary
                            Location
                            Resources
                            Confidentiality
                            Priority
                            Category
                            ID
                            AppointmentVersion
                            (Above properties as defined in
                            Section 4.1 above)
                            AppointmentID
                            (Above property as defined in
                            Section 4.4.1 above)
                            Response
 
    Profile special notes: Responses should include as many original
                           appointment request properties as possible.
 
    Profile intended usage: COMMON
 
    Property descriptions:
 
       Name: Response
 
       Data type: TEXT
 
       Purpose: Attendee's response for the Appointment.
 
       Encoding: Three values are defined:
 
                      "Accept": Attendee accepted the
                                appointment request
                                and will attend the
                                appointment.
 
                      "Decline": Attendee declined the
                                 appointment
                                 request and will not attend
                                 the appointment.
 
                      "Tentative": Attendee is not sure if he
                                   can attend and has
                                   tentatively accepted the
                                   request, but does not
                                   guarantee he will attend.
 
                      All values are case insensitive.
 
       Special notes: Absence of this property indicates that the
                      response is "Accept".
 
       Required: YES
 
       Multi-valued: NEVER
 
       Intended usage: COMMON
 
 6.3 OneTime variant of the AppointmentResponse profile
 
 6.3.1 OneTime variant definition
 
    To: [mailing list TBD]
    Subject: Registration of application/properties MIME
             variant OneTime
 
    Variant name: OneTime
 
    Variant profile: AppointmentResponse
 
    Variant purpose: Indicates schema of OneTime
                     AppointmentResponse items
 
    Variant property names: Start
                            End
                            (Above properties as defined in
                            Section 4.2.1 above)
 
    Variant special notes: [none]
 
    Variant intended usage: COMMON
 
    Property descriptions: [none]
 
 
 6.3.2 Example
 
 Example #1 demonstrates an appointment response. The minimum fields in
 the response are Response, AppointmentID, and AppointmentVersion. The
 other fields are included for cases where User Agents do not support
 automatic correlation of responses to the request.
 
 Example 1:
 
    To: Carolyn Keene <carolynk@bogus.com>
    From: Franklin W. Dixon <franklind@bogus.com>
    Subject: Discuss contract issues
    MIME-Version: 1.0
    Message-ID: <id1@bogus.com>
    Content-Type: application/properties
 
    Profile: AppointmentResponse
    Variant: OneTime
    Response: Accept
    AppointmentID: <foo@bogus.com>
    AppointmentVersion, datetime: 21 Oct 96 17:02:34 PST
    Start, datetime: 22 Oct 96 17:00:00 PST
    End, datetime: 22 Oct 96 18:00:00 PST
    Summary: "Let's have a meeting"
 
 
 6.4 Recurring variant of the AppointmentResponse definition
 
 6.4.1 Recurring variant definition
 
    To: [mailing list TBD]
    Subject: Registration of application/properties MIME
             variant Recurring
 
    Variant name: Recurring
 
    Variant profile: AppointmentResponse
 
    Variant purpose: Indicates schema of Recurring
                     AppointmentResponse items
 
    Variant property names: DaysOfWeek
                            DaysOfMonth
                            MonthsOfYear
                            DayInterval
                            WeekInterval
                            MonthInterval
                            YearInterval
                            InstanceStartTime
                            InstanceEndTime
                            StartDate
                            EndDate
                            ReferenceTimeZone
                            PatternDescription
                            ExceptionDate
                            (Above property as defined in
                            Section 4.3.2 above)
 
    Variant special notes: [none]
 
    Variant intended usage: COMMON
 
    Property descriptions: [none]
 
 
 6.4.2 Example
 
 Example #1 demonstrates an appointment response to a recurring
 appointment or recurring appointment exception request:
 
 Example 1:
 
    To: Carolyn Keene <carolynk@bogus.com>
    From: Franklin W. Dixon <franklind@bogus.com>
    Subject: Discuss contract issues
    MIME-Version: 1.0
    Message-ID: <id1@bogus.com>
    Content-Type: application/properties
 
    Profile: AppointmentResponse
    Variant: Recurring
    Response: DECLINE
    AppointmentID: <foo@bogus.com>
    AppointmentVersion, datetime: 21 Oct 96 17:02:34 PST
    PatternDescription: "Every Tuesday"
    Summary: "No I can't have a meeting on Tuesdays :("
 
 6.5 Exception variant of the AppointmentResponse definition
 
 6.5.1 Exception variant definition
 
    To: [mailing list TBD]
    Subject: Registration of application/properties MIME variant
             OneTime.Exception
 
    Variant name: OneTime.Exception
 
    Variant profile: AppointmentResponse
 
    Variant purpose: Indicates schema of an exception
                     AppointmentResponse items
 
    Variant property names: AppointmentID
                            OriginalExceptionDate
                            (Above properties as defined in
                            Section 4.4.1 above)
 
    Variant special notes: [none]
 
    Variant intended usage: COMMON
 
    Property descriptions: [none]
 
 
 6.5.2 Example
 
 Example #1 demonstrates an appointment response to a
 recurring appointment or recurring appointment exception
 request:
 
 Example 1:
 
    To: Carolyn Keene <carolynk@bogus.com>
    From: Franklin W. Dixon <franklind@bogus.com>
    Subject: Discuss contract issues
    MIME-Version: 1.0
    Message-ID: <id1@bogus.com>
    Content-Type: application/properties
 
    Profile: AppointmentResponse
    Variant: OneTime.Exception
    Response: Accept
    AppointmentVersion, datetime: 21 Oct 96 17:02:34 PST
    AppointmentID: <blah@bogus.com>
    OriginalExceptionDate, date: 28 Oct 96
    Summary: "But I can have a meeting on this Tuesday :)"
 
 7. Acknowledgements
 
 The author gratefully acknowledges the assistance of Darren Shakib,
 Brian Deen, Larry Osterman, Hal Howard, Se-Wai Lee, and Lewis Geer in
 the preparation and review of this document.
 
 
 8. Author's Addresses
 
 Ian Ferrell
 Microsoft
 One Microsoft Way
 Redmond, WA 98052
 USA
 
 Phone: (206) 936-1086
 Email: ianf@microsoft.com
 
 
 9. References
 
 [MIME-PROP]
      Shakib, D.,  "A MIME Content-Type for Tagged Attribute Value
      Storage", draft-shakib-mime-prop-00.txt, July 1996.
 
 [RFC-822]
      Crocker, D., "Standard for the Format of ARPA  Internet  Text
      Messages", STD 11, RFC 822, August 1982.
 
 [RFC-1521]
      Borenstein, N., Freed, N., "MIME (Multipurpose Internet Mail
      Extensions)  Part One: Mechanisms for Specifying and Describing
      the Format of Internet Message Bodies", RFC 1521, September 1993.