Network Working Group F. Dawson, Lotus
INTERNET-DRAFT R. Hopson, ON Technologies
<ietf-calsch-itip-part3-00.txt> S. Mansour, Netscape
Expires in six months from July 18, 1997 S. Silverberg, Microsoft
iCalendar Transport-Independent Interoperability Protocol
(iTIP) Part Three - Scheduling Journal Entries
Status of this Memo
This document is an Internet-Draft. Internet-Drafts are working
documents 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. Internet-Drafts may be updated, replaced, or made obsolete by
other documents at any time. It is not appropriate to use Internet-
Drafts as reference material or to cite them other than as a "working
draft" or "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 ds.internic.net (US East Coast), nic.nordu.net
(Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific
Rim).
Distribution of this document is unlimited.
Abstract
This set of documents, collectively called the iCalendar Transport-
independent Interoperability Protocol, or iTIP, defines a transport-
independent message protocol to allow for searching for busy time and
the scheduling of events, journal entries, or journal entries on
different calendaring and scheduling systems. These documents are
based on earlier work documented in the iCalendar format. Because
iCalendar delt mainly with the format of calendaring information and
said so little about the method for conveying scheduling semantics,
these documents add scheduling semantics to the base calendaring
functionality defined in iCalendar.
The initial document specifies the messages for allowing searching
for free or busy time information and for scheduling events. The
second document defines the messages for scheduling journal entries,
or action items. The third document defines the messages for
scheduling journal entries. This document set is intended to convey
calendaring and scheduling semantics between different applications,
independent of transport. This document is also being offered as a
specification for demonstrating industry-wide, calendaring and
scheduling interoperability. The protocol defined by this document is
applicable for conveying calendaring and scheduling information
across any reliable transport. This format is useful for both client-
to-server communication, server-to-server communication, and client-
to-client, peer communication (e.g., PDA synchronization with a PIM).
Dawson/Hopson/Mansour/Silverberg 1 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
The breadth of this document is limited to exchanging only the
journal type of calendar information. It does not address issues
related to events or journal entries. Instead, the document outlines
a model for calendar exchange that defines both static and dynamic
journal entry objects. Static journal objects are used to transmit
journal entries from one entity to another without the expectation of
continuity or referential integrity with the original item. Dynamic
journal entry objects are a superset of static journal entry objects
and will gracefully degrade to their static counterparts for clients
that only support static journal entry objects.
Dawson/Hopson/Mansour/Silverberg 2 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
Table of Contents:
1. INTRODUCTION........................................................5
1.1 ITIP SCHEDULING TRANSACTIONS.....................................5
2. PROTOCOL MODELS.....................................................6
2.1 APPLICATION PROTOCOL.............................................6
2.1.1 Scheduling Transaction State..................................7
2.2 ADVANCED CALENDARING CONCEPTS....................................8
2.3 CALENDAR ROLES...................................................9
3. APPLICATION PROTOCOL ELEMENTS......................................10
3.1 ITIP MESSAGE CONFORMANCE........................................11
3.1.1 Restrictions on DTSTART......................................11
3.2 SUMMARY OF APPLICATION PROTOCOL ELEMENTS........................11
3.2.1 JOURNAL-PUBLISH..............................................11
3.2.2 JOURNAL-REQUEST..............................................14
3.2.3 JOURNAL-REPLY................................................16
3.2.4 JOURNAL-CANCEL...............................................18
3.2.5 Rescheduling or Changing a Journal Entry.....................21
3.2.6 JOURNAL-RESEND...............................................24
3.3 REQUEST STATUS CODES............................................26
4. EXAMPLES...........................................................28
4.1 PUBLISHED JOURNALS..............................................28
4.1.1 A Minimal Published Journal..................................29
4.1.2 Changing A Published Journal.................................29
4.1.3 Canceling A Published Journal................................30
4.1.4 A Rich Published Journal.....................................30
4.2 GROUP JOURNAL EXAMPLES..........................................32
4.2.1 JOURNAL-REQUEST..............................................33
4.2.2 JOURNAL-REPLY................................................33
4.2.3 Update A Journal Entry.......................................34
4.3 RECURRING JOURNAL AND TIME ZONE EXAMPLES........................34
4.3.1 A Recurring Journal That Spans Timezones.....................34
4.3.2 Creating an Exception to a Recurring Journal................36
4.3.3 Modify Exception.............................................37
4.3.4 Cancel an Exception..........................................37
4.3.5 Cancel Recurring Journal.....................................37
4.3.6 Decline A Previously Accepted Exception......................38
5. APPLICATION PROTOCOL FALLBACKS.....................................39
5.1 ICALENDAR PROFILE TYPES.........................................39
5.2 CALENDAR COMPONENTS.............................................39
5.3 CALENDAR PROPERTIES.............................................39
5.4 COMPONENT PROPERTIES............................................40
5.5 LATENCY ISSUES..................................................41
5.5.1 Cancelation of an Unknown Journal Entry......................41
5.6 SEQUENCE NUMBER.................................................42
6. SECURITY CONSIDERATIONS............................................42
Dawson/Hopson/Mansour/Silverberg 3 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
7. ACKNOWLEDGMENTS....................................................42
8. BIBLIOGRAPHY.......................................................42
9. AUTHORS ADDRESSES..................................................43
Dawson/Hopson/Mansour/Silverberg 4 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
1. Introduction
The purpose of this document set is to define the format of iCalendar
objects and how the iCalendar objects are conveyed between Calendar
User Agents (CUA) and Calendar Services (CS). This involves the
definition of a protocol that uses the iCalendar Object as the basis
for a collection of messages that are transmitted from one
calendaring system to another. The protocol is transport independent
but can be bound to either a real-time transport or a store-and-
forward transport such as e-mail.
This set of documents is based on the calendaring and scheduling
model specified in [ICSM].
The first document in the set specifies the messages for allowing
searching for free or busy time information and for scheduling
events. The second document, defines the messages for scheduling
journal entries. This, the third document defines the messages for
scheduling journal entries. Implemented as a whole, this document set
will allow different calendaring and scheduling domains to
interoperate; allowing for the seach for available free or busy time
information and scheduling events, journal entries, or daily journal
entries.
1.1 iTIP Scheduling Transactions
The profiles described in section 3 (Application Protocol Elements)
may be considered usage profiles of the [ICAL] and is designed
specifically for the exchange of calendaring information between
scheduling applications.
Journal Publication
Publish a journal entry;
Change a published journal entry;
Cancel a published journal entry.
Group Journal Entries
Request that a journal entry be assigned to one or more
recipients;
Reply to an existing journal request to accept, decline;
Allow the organizer of a journal entry to cancel the entry;
Allow the organizer of a journal entry to replace the
original journal definition, as when a journal description
is clarified or the attendee assignment information is
updated;
Allow an attendee to request a resend of the current
description for an existing request.
Recurring Journal Entries and Timezones
Dawson/Hopson/Mansour/Silverberg 5 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
Support scheduling a journal entry between individuals in
different time zones;
Support for time zones;
Support for DST rules;
Create a recurring journal request with exception dates.
2. Protocol Models
The protocol model for this part of iTIP is intended to be the same
as that described in iTIP Part 1. It is repeated here for clarity
when reading this document alone.
There are two distinct protocols that comprise iTIP: an Application
Protocol and a Transport Protocol. The Application Protocol defines
the content of the iCalendar objects sent between a sender and a
receiver in order to accomplish the various iTIP scheduling
transactions (section 1.1). The Transport protocol defines how the
iCalendar objects are sent between the sender and receiver. This
document focuses on the Application Protocol. Some considerations for
Transport Protocol documents are listed in Appendix A of [ITIP-1].
+----------+ +----------+
| | iTIP | |
| Sender |<-------------------->| Receiver |
| | | |
+----------+ +----------+
There are several variations of this diagram in which the Sender and
Receiver take on various roles of CUA or CS. These variants are
detailed in the Model document [ICMS]
The architecture of iTIP is depicted in the diagram below. An
application written to this specification may utilize either the
binding for the store-and-forward transport, the real time transport,
or both. The iTIP could also be bound to other transports. If a
capability is not available on a particular transport binding, iTIP
provides a mechanism for indicating so.
+------------------------------------------+
| iCalendar |
+------------------------------------------+
| iTIP |
+------------------------------------------+
|Real-time | Store and Fwd | Other |
|Transport | Transport | Transports... |
+------------------------------------------+
2.1 Application Protocol
The model for the application protocol is originator-based (organizer
or owner roles for a request). That is, the originator of a request
Dawson/Hopson/Mansour/Silverberg 6 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
sends it out to one or more invitees. The invitees reply back to the
originator. The originator maintains the status of the event. Only
the originator can modify or cancel the request.
The data sources for the protocol are the Calendar Users as defined
in [ICMS]. Examples of these users are the originator (i.e.,
organizer or owner) and attendees of an iCalendar journal entry. The
data objects are the iCalendar objects that are exchanged between
Calendar Users.
2.1.1 Scheduling Transaction State
The state of the journal scheduling transaction is described by the
STATUS and ATTENDEE properties in the journal calendar component.
If there are no attendees in the calendar component, then this
implies the publish - state STATUS.
The state of a journal request changes from the time it is initially
assigned, to when the attendees reply to the request, to when each of
the attendees complete the journal. When an originator sends out the
journal request, it's state with respect to the attendees is NEEDS
ACTION. If the attendee accepts the assignment, then the status is
changed to ACCEPTED. If the attendee rejects the assignment, then the
status is changed to DECLINED. These changes in the attendee status
for the journal entry are effected by the attendee sending the
originator a JOURNAL-REPLY message with their updated status.
The general status of the journal entry is reflected by the STATUS
property. The journal STATUS property is controlled by the
originator. There is no default status. Initially, the originator
should either set the status to TENTATIVE or CONFIRMED. The
originator can also set the status to CANCELLED by sending a JOURNAL-
CANCEL message to the attendees.
The states of the protocol are contained in the iCalendar object. Due
to the individual nature of a scheduling transaction, the state may
be different for each Calendar User. The diagram below describes the
various state changes.
Dawson/Hopson/Mansour/Silverberg 7 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
+===========================+==========================
| Owner / Originator | Attendee / Recipient |
+===========================+=========================+
| JOURNAL-PUBLISH --------------------------------> |
| State=CONFIRMED |
+=====================================================+
| JOURNAL-REQUEST --------------------------------> |
| State=CONFIRMED | TENTATIVE |
| Attendee Status=NEEDS ACTION |
| |
| <---------------------------------- JOURNAL-REPLY |
| State=As specified in the JOURNAL-REQUEST message |
| Attendee Status=ACCEPTED | DECLINED | COMPLETED |
+=====================================================+
| JOUNRAL-CANCEL --------------------------------> |
| State=CANCELLED |
| Attendee Status=As specified in the JOURNAL-REPLY |
+=====================================================+
| JOURNAL-REQUEST --------------------------------> |
| (A rescheduled or redefined journal request) |
| State=CONFIRMED | TENTATIVE |
| Attendee Status=As defined in previous JOURNA- |
| REPLY message for this journal |
+=====================================================+
| <----------------------------------JOURNAL-RESEND |
| State=As specified in the JOURNAL-REQUEST message |
| Attendee Status=As specified in the JOURNAL-REPLY |
+=====================================================+
2.2 Advanced Calendaring Concepts
The calendaring and scheduling capability defined by this document is
based on the exchange of messages between the organizer of a journal
entry and one or more Calendar User Agents (CUA). The message
protocol emulates a "request" and "reply" form of communications.
However, there is a class of actions that are non-interactive and are
more consistent with publishing. These include the publishing of
static journal entries.
The message format is designed to be used with either a MIME
electronic messaging transport, real time protocols, and other
Internet and non-Internet transports..
This message-based protocol is based on "request" messages sent from
an originator and conveyed to one or more recipients. A recipient of
a "request" message may "reply" to the request, in order to update
their status and may also return transaction/request status
information. The protocol also supports the ability for the
originator of a journal entry to change or cancel the original
Dawson/Hopson/Mansour/Silverberg 8 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
request. The elements of the protocol also include the notion of user
roles.
2.3 Calendar Roles
Roles are a behavior or set of activities performed by particular
groups of users or agents at a particular time given the state of the
application. This specification describes 3 roles that determine a
range of actions and responsibilities specific to each role. When
scheduling a journal entry with one or more individuals, there are 3
roles: OWNER, ORGANIZER and ATTENDEE. The OWNER is generally the
originator of the journal request. The OWNER sends the journal
request and receives responses from the ATTENDEES. The OWNER is the
effective owner of the journal entry. There are scenarios where the
OWNER has an agent or associate who acts on the OWNER's behalf, as is
the case when your an assistant makes assignments for you. In this
scenario the ORGANIZER and the OWNER are different individuals yet
the ORGANIZER is still responsible for sending and receiving the
requests and managing the calendar entities for this journal entry.
Role Description
Organi The organizer is the calendar user that sends
zer and manages the journal entry --- meaning
responses are directed at the organizer. In
most cases the organizer is also the owner,
but in cases where the owner has the
organizer act on it's behalf, the organizer
becomes a proxy for the owner. The organizer
in this case would place the journal entry on
the calendar of the owner.
Owner The owner generally controls direct
manipulation of the journal entry. The owner
can make unilateral changes to the journal
entry while the attendees can reply back to
the owner. The owner is usually the
organizer, but in some cases an agent or
associate will act on behalf of the owner and
organize the journal entry.
Attend Attendees are those recipients who are
ees assigned the group journal entry. When an
attendee responds to the request, the
attendee's status property is set to either
accept, decline, tentative, or completed
Dawson/Hopson/Mansour/Silverberg 9 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
3. Application Protocol Elements
Messages are the on-the-wire MIME entities that contain calendaring
information. The particular type of [ICAL] message is referred to as
the profile type. Each profile type is identified by a profile
property specified as part of the Text/Calendar content type. The
following describes the various [ICAL] profile types supported in
this specification.
Profile Type Description
JOURNAL- Post notification of a journal entry.
PUBLISH Used primarily as a method of advertising
the existence of a journal entry. The
ATTENDEES property is not generally
included and no interaction is expected.
JOURNAL- Make a journal entry request. This is an
REQUEST explicit send of a journal entry to one
or more attendees. Journal requests are
also used to update or change an existing
journal entry description. Clients that
cannot handle JOURNAL-REQUEST messages
can degrade the journal entry to view it
as a JOURNAL-PUBLISH.
JOURNAL-REPLY Reply to a journal request. This includes
"ACCEPT", "TENTATIVE", "DECLINE" and
"COMPLETED".
JOURNAL- Cancel an existing journal request. Uses
CANCEL the UID to identify the journal to be
canceled.
JOURNAL- Resend an existing journal request. Uses
RESEND the UID to identify the journal to be
resend.
Each profile type has an associated collection of properties and
methods. Some properties are required and others are optional. This
specification is also designed with the notion that some calendaring
clients will be capable of reading and posting journal entries (where
posting means to local calendar). Therefore, profiles such as
JOURNAL-REQUEST will contain an exact superset of the JOURNAL-PUBLISH
property set such that a client that supported JOURNAL-PUBLISH could
still read a JOURNAL-REQUEST.
Dawson/Hopson/Mansour/Silverberg 10 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
3.1 ITIP Message Conformance
An implementation conforming to iTIP must enforce the conventions
described in the sections below. These conventions have been made to
improve interoperability. As a side benefit, they tend to simplify
implementation.
3.1.1 Restrictions on DTSTART
The DTSTART property must always be specified. This specifies the
date/time that the journal entry is to first be displayed. The DTEND,
DUE and DURATION properties cannot be specified in conjunction with
DTSTART.
3.2 Summary of Application Protocol Elements
This section outlines the complete property set for each profile
type, indicating the required (designated by the word REQUIRED),
optional (designed by the words NOT REQUIRED) and excluded
(designated by the word EXCLUDED) properties.
3.2.1 JOURNAL-PUBLISH
The JOURNAL-PUBLISH is somewhat unique in this document in that it
has no response scheduling message associated with it. Instead, it is
simply a journal entry that can be added by a calendar user agent to
a calendar as a static journal entry. There is no defined response to
the originator of a JOURNAL-PUBLISH message. It's expected usage is
for publication of journal entries such as those that might be
published on a website or Internet calendar. The JOURNAL-PUBLISH is
simply a MIME encapsulated file that can be referenced and opened by
the appropriate handler for a TEXT/CALENDAR MIME content type and
JOURNAL-PUBLISH profile type.
JOURNAL-PUBLISH
Calendar Properties
COMMENT
Not Required
GEO
Not Required
PRODID
Required
VERSION
Required, Value must be "2.0".
PROFILE
Required,"JOURNAL-PUBLISH"
PROFILE-VERSION
Required, Value must be "1.0".
Timezone Component Properties
COMMENT
Not Required
Dawson/Hopson/Mansour/Silverberg 11 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
CREATED
Not Required
DAYLIGHT
Not Required
DTSTART
Required
DTSTART
Not Required
RDATE
Not Required, Either RDATE or
RRULE may be specified, but not
both.
RRULE
Not Required, Either RDATE or
RRULE may be specified, but not
both.
TZNAME
Not Required
TZOFFSET
Required
TZTRANS
Not Required
UID
Required
Event Component Properties
Event component is excluded from
this message type.
To-do Component Properties
To-do component is excluded from
this message type.
Journal Component Properties
ATTACH
Not Required
ATTENDEE
Excluded
CATEGORIES
Not Required
CLASS
Not Required
COMMENT
Not Required
CREATED
Not Required
COMPLETED
Excluded
DESCRIPTION
Required, Value may be NULL
text.
DUE
Excluded
Dawson/Hopson/Mansour/Silverberg 12 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
DURATION
Excluded
DTEND
Excluded
DTSTAMP
Required
DTSTART
Required
EXDATE
Not Required
EXRULE
Not Required
LAST-MODIFIED
Not Required
LOCATION
Excluded
PRIORITY
Excluded
RELATED-TO
Not Required
REQUEST-STATUS
Excluded
RDATE
Not Required.
RRULE
Not Required.
RESOURCES
Excluded
RESPONSE-SEQUENCE
Excluded
SEQUENCE
Required, if not zero.
STATUS
Not Required.
SUMMARY
Excluded
TRANSP
Excluded
URL
Not Required
UID
Required
Alarm Component Properties
Alarm component is excluded from
this message type.
Freebusy Properties
Freebusy component is excluded
from this message type.
Non-standard Properties
Dawson/Hopson/Mansour/Silverberg 13 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
X-token
Not Required, but recipient may
choose to ignore those non-
standard properties, specified
as Not Required.
3.2.2 JOURNAL-REQUEST
The JOURNAL-REQUEST is used to both describe a journal entry and send
the journal entry to one or more attendees. When a JOURNAL-REQUEST is
received by a user it should be responded to with a JOURNAL-REPLY.
JOURNAL-REQUEST
Calendar Properties
COMMENT
Not Required
GEO
Not Required
PRODID
Required
VERSION
Required, Value must be "2.0".
PROFILE
Required,"JOURNAL-REQUEST"
PROFILE-VERSION
Required, Value must be "1.0".
Timezone Component Properties
COMMENT
Not Required
CREATED
Not Required
DAYLIGHT
Not Required
DTSTART
Required
DTEND
Not Required
RDATE
Not Required, Either RDATE or
RRULE may be specified, but
not both.
RRULE
Not Required, Either RDATE or
RRULE may be specified, but
not both.
TZNAME
Not Required
TZOFFSET
Required
Dawson/Hopson/Mansour/Silverberg 14 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
TZTRANS
Not Required
Event Component Properties
Event component is excluded
from this message type.
To-do Component Properties
To-do component is excluded
from this message type.
Journal Component Properties
ATTACH
Not Required
ATTENDEE
Required
CATEGORIES
Not Required
CLASS
Not Required
COMMENT
Not Required
CREATED
Not Required
COMPLETED
Excluded
DESCRIPTION
Required, Value may be NULL
text.
DUE
Excluded
DURATION
Excluded
DTEND
Excluded
DTSTAMP
Required
DTSTART
Required
EXDATE
Not Required
EXRULE
Not Required
LAST-MODIFIED
Not Required
LOCATION
Excluded
PRIORITY
Excluded
RELATED-TO
Not Required
REQUEST-STATUS
Excluded
Dawson/Hopson/Mansour/Silverberg 15 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
RDATE
Not Required.
RRULE
Not Required.
RESOURCES
Excluded
RESPONSE-SEQUENCE
Excluded
SEQUENCE
Required, if not zero.
STATUS
Not Required
SUMMARY
Excluded
TRANSP
Excluded
URL
Not Required
UID
Required
Alarm Component Properties
Alarm component is excluded
from this message type.
Freebusy Properties
Freebusy component is excluded
from this message type.
Non-standard Properties
X-token
Not Required, but recipient
may choose to ignore those
non-standard properties,
specified as Not Required.
3.2.3 JOURNAL-REPLY
The JOURNAL-REPLY is used to by the attendees to reply to the
originator of the journal request with their status. The attendees
can indicate their status is a TENTATIVE acceptance, that they have
ACCEPTED the assignment, that they DECLINED the assignment or that
they have COMPLETED the assignment. Once an attendee has replied to
the request, they can subsequently reply with a different value.
JOURNAL-REPLY
Calendar Properties
COMMENT
Not Required
Dawson/Hopson/Mansour/Silverberg 16 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
GEO
Not Required
PRODID
Required
VERSION
Required, Value must be "2.0".
PROFILE
Required,"JOURNAL-REPLY"
PROFILE-VERSION
Required, Value must be "1.0".
Timezone Component Properties
Timezone component is excluded
from this message type.
Event Component Properties
Event component is excluded
from this message type.
To-do Component Properties
To-do component is excluded
from this message type.
Journal Component Properties
ATTACH
Excluded
ATTENDEE
Required
CATEGORIES
Excluded
CLASS
Excluded
COMMENT
Not Required
CREATED
Excluded
COMPLETED
Excluded
DESCRIPTION
Excluded
DUE
Excluded
DURATION
Excluded
DTEND
Excluded
DTSTAMP
Required
DTSTART
Excluded
EXDATE
Not Required
Dawson/Hopson/Mansour/Silverberg 17 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
EXRULE
Not Required
LAST-MODIFIED
Excluded
LOCATION
Excluded
PRIORITY
Excluded
RELATED-TO
Excluded
REQUEST-STATUS
Not Required
RDATE
Not Required.
RRULE
Not Required.
RESOURCES
Excluded
RESPONSE-SEQUENCE
Required, if not zero.
SEQUENCE
Required, if not zero.
STATUS
Excluded
SUMMARY
Excluded
TRANSP
Excluded
URL
Excluded
UID
Required
Alarm Component Properties
Alarm component is excluded
from this message type.
Freebusy Properties
Freebusy component is excluded
from this message type.
Non-Standard Properties
X-token
Not Required, but recipient
may choose to ignore those
non-standard properties,
specified as Not Required.
3.2.4 JOURNAL-CANCEL
The JOURNAL-CANCEL is used to by the originator of the journal
request to convey a cancellation notice of the journal entry to the
Dawson/Hopson/Mansour/Silverberg 18 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
attendees. The message is only sent by the journal entry OWNER or
ORGANIZER to the recipients of the original journal entry request.
JOURNAL-CANCEL
Calendar Properties
COMMENT
Not Required
GEO
Not Required
PRODID
Required
VERSION
Required, Value must be "2.0".
PROFILE
Required,"JOURNAL-CANCEL"
PROFILE-VERSION
Required, Value must be "1.0".
Timezone Component Properties
Timezone component is excluded
from this message type.
Event Component Properties
Event component is excluded
from this message type.
To-do Component Properties
To-do component is excluded
from this message type.
Journal Component Properties
ATTACH
Excluded
ATTENDEE
Required
CATEGORIES
Excluded
CLASS
Excluded
COMMENT
Not Required
CREATED
Excluded
COMPLETED
Excluded
DESCRIPTION
Excluded
DUE
Excluded
DURATION
Excluded
Dawson/Hopson/Mansour/Silverberg 19 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
DTEND
Excluded
DTSTAMP
Required
DTSTART
Excluded
EXDATE
Not Required
EXRULE
Not Required
LAST-MODIFIED
Excluded
LOCATION
Excluded
PRIORITY
Excluded
RELATED-TO
Not Required
REQUEST-STATUS
Excluded
RDATE
Not Required.
RRULE
Not Required.
RESOURCES
Excluded
RESPONSE-SEQUENCE
Excluded
SEQUENCE
Excluded
STATUS
Not Required, if present must
be "CANCELLED".
SUMMARY
Excluded
TRANSP
Excluded
URL
Excluded
UID
Required
Alarm Properties
Alarm component is excluded
from this message type.
Freebusy Protperties
Freebusy component is excluded
from this message type.
Non-standard Properties
X-token
Not Required, But recipient
Dawson/Hopson/Mansour/Silverberg 20 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
may choose to ignore those
non-standard properties,
specified as optional.
3.2.5 Rescheduling or Changing a Journal Entry
When an owner/organizer desires to reschedule or change some detail
of one of their existing journal requests, they effect this change by
conveying a new journal request with the same UID and an incremented
sequence number. The receiving client must correlate the request to
their existing journal entries and check the sequence number in order
to realize that the request is actually a replacement for the
existing journal entry. Individual "A" sends a journal request to "B"
and "C". "B" accepts the journal entry and "C" declines and includes
text in the comments property proposing a more appropriate due date.
"A" sends "B" and "C" another journal request using the same UID and
a sequence number one greater than the original request. "B" should
infer that the journal request message is actually a replacement for
the existing journal entry.
Replacing a journal request is predicated on using the same UID,
incrementing the sequence number and replacing the changed calendar
properties.
JOURNAL-REQUEST (replacing an existing journal description)
Calendar Properties
COMMENT
Not Required
GEO
Not Required
PRODID
Required
VERSION
Required, Value must be "2.0".
PROFILE
Required,"JOURNAL-REQUEST"
PROFILE-VERSION
Required, Value must be "1.0".
Timezone Component Properties
COMMENT
Not Required
CREATED
Not Required
DAYLIGHT
Not Required
DTSTART
Required
DTEND
Not Required
Dawson/Hopson/Mansour/Silverberg 21 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
RDATE
Not Required, Either RDATE or
RRULE may be specified, but
not both.
RRULE
Not Required, Either RDATE or
RRULE may be specified, but
not both.
TZNAME
Not Required
TZOFFSET
Required
TZTRANS
Not Required
Event Component Properties
Event component is excluded
from this message type.
To-do Component Properties
To-do component is excluded
from this message type.
Journal Component Properties
ATTACH
Not Required
ATTENDEE
Required
CATEGORIES
Not Required
CLASS
Not Required
COMMENT
Not Required
CREATED
Not Required
COMPLETED
Excluded
DESCRIPTION
Required, Value may be NULL
text.
DUE
Excluded
DURATION
Excluded
DTEND
Excluded
DTSTAMP
Required
DTSTART
Required
EXDATE
Not Required
Dawson/Hopson/Mansour/Silverberg 22 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
EXRULE
Not Required
LAST-MODIFIED
Not Required
LOCATION
Excluded
PRIORITY
Excluded
RELATED-TO
Not Required
REQUEST-STATUS
Excluded
RDATE
Not Required.
RRULE
Not Required.
RESOURCES
Excluded
RESPONSE-SEQUENCE
Excluded
SEQUENCE
Required, if not zero.
STATUS
Not Required.
SUMMARY
Excluded
TRANSP
Excluded
URL
Not Required
UID
Required
Alarm Component Properties
Alarm component is excluded
from this message type.
Freebusy Component Properties
Freebusy component is excluded
from this message type.
Non-standard Properties
X-token
Not Required, but recipient
may choose to ignore those
non-standard properties,
specified as Not Required.
Dawson/Hopson/Mansour/Silverberg 23 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
3.2.6 JOURNAL-RESEND
The JOURNAL-RESEND is used by attendees to request the latest version
of a JOURNAL-REQUEST. By issuing an JOURNAL-RESEND, with the
appropriate UID and optionally a RECURRENCE-ID, the organizer's CUA
should respond with the latest version of the to-do. This message
type is intended to be machine processed.
JOURNAL-RESEND
Calendar Properties
COMMENT
Not Required
GEO
Not Required
PRODID
Required
VERSION
Required, Value must be "2.0".
PROFILE
Required,"JOURNAL-RESEND"
PROFILE-VERSION
Required, Value must be "1.0".
Timezone Component Properties
Timezone component is excluded
from this message type.
Event Component Properties
Event component is excluded
from this message type.
To-do Component Properties
To-do component is excluded
from this message type.
Journal Component Properties
ATTACH
Excluded
ATTENDEE
Required
CATEGORIES
Excluded
CLASS
Excluded
COMMENT
Not Required, Text value.
Provides a comment from the
attendee to the organizer
concerning the resend request.
CREATED
Excluded
Dawson/Hopson/Mansour/Silverberg 24 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
COMPLETED
Excluded
DESCRIPTION
Excluded
DUE
Excluded
DURATION
Excluded
DTEND
Excluded
DTSTAMP
Required
DTSTART
Excluded
EXDATE
Excluded
EXRULE
Excluded
LAST-MODIFIED
Excluded
LOCATION
Excluded
PRIORITY
Excluded
RECURRENCE-ID
Not Required. If the attendee
wishes to receive an updated
instance of a recurring to-do,
then the RECURRENCE-ID can be
included and only the specific
instance will be returned.
RELATED-TO
Excluded
REQUEST-STATUS
Excluded
RDATE
Excluded
RRULE
Excluded
RESOURCES
Excluded
RESPONSE-SEQUENCE
Excluded
SEQUENCE
Required, if not zero. Is not
incremented by this action.
STATUS
Excluded
SUMMARY
Excluded
TRANSP
Excluded
Dawson/Hopson/Mansour/Silverberg 25 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
URL
Excluded
UID
Required
Alarm Properties
Alarm component is excluded
from this message type.
Freebusy Protperties
Freebusy component is excluded
from this message type.
Non-standard Properties
X-token
Not Required, But recipient
may choose to ignore those
non-standard properties,
specified as optional.
3.3 Request Status Codes
The following is a list of possible return status codes values:
Short Longer Return Status Offending Data
Return Description
Status
Code
200
Success. None.
201
Success, but fallback Property name and
taken on one or more value may be
property values. specified.
202
Success, invalid Property name may be
property ignored. specified.
203
Success, invalid Property parameter
property parameter name and value may be
ignored. specified.
204
Success, unknown non- Non-standard property
standard property name may be
ignored. specified.
205
Success, unknown non- Property and non-
standard property value standard value may be
ignored. specified.
206
Success, invalid Calendar component
Dawson/Hopson/Mansour/Silverberg 26 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
calendar component sentinel (e.g.,
ignored. "BEGIN:ALARM") may be
specified.
207
Success, request Original and
forwarded to calendar forwarded RFC822
user. addresses may be
specified.
208
Success, repeating event RRULE or RDATE
ignored. Scheduled as a property name and
single event. value may be
specified.
209
Success, truncated end DTEND property value
date/time to date may be specified.
boundary.
210
Success, repeating to-do RRULE or RDATE
ignored. Scheduled as a property name and
single to-do. value may be
specified.
300
Invalid property name. Property name may be
specified.
301
Invalid property value. Property name and
value may be
specified.
302
Invalid property Property parameter
parameter. name and value may be
specified.
303
Invalid property Property parameter
parameter value. name and value may be
specified.
304
Invalid calendar Calendar component
component sequence. sentinel may be
specified (e.g.,
BEGIN:TIMEZONE).
305
Invalid date or time. Date/time value(s)
may be specified.
306
Invalid rule. Rule value may be
specified.
307
Invalid calendar user. Attendee property
value may be
specified.
Dawson/Hopson/Mansour/Silverberg 27 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
308
No authority. PROFILE and ATTENDEE
property values may
be specified.
309
Unsupported version. VERSION property name
and value may be
specified.
310
Request entity too None.
large.
400
Event conflict. DTSTART and DTEND
Date/time is busy. property name and
values may be
specified.
500
Request not supported. Profile property
value may be
specified.
501
Service unavailable. ATTENDEE property
value may be
specified.
502
Invalid calendar ATTENDEE property
service. value may be
specified.
503
No scheduling support ATTENDEE property
for user. value may be
specified.
4. Examples
4.1 Published Journals
In the calendaring and scheduling context, publication refers to the
one way transfer of journal information. Consumers of published
journals simply incorporate the journal into a calendar. No reply is
expected. Individual "A" publishes a journal. Individual "B" reads
the journal and incorporates it into their calendar. Journals can be
published in several ways including: embedding the journal as an
object in a web page, e-mailing the journal to a distribution list,
and posting the journal to a newsgroup.
The table below illustrates the sequence of journals between the
publisher and the consumers of a published journal.
Dawson/Hopson/Mansour/Silverberg 28 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
Action Organizer Attendee
Publish a journal "A" sends or posts a
JOURNAL-PUBLISH
message
"B" reads the
journal
publication
Publish an updated "A" sends or posts a
journal JOURNAL-PUBLISH
message
"B" reads the
updated journal
publication
Cancel a published "A" sends or posts an
journal JOURNAL-CANCEL
message
"B" reads the
canceled journal
publication
4.1.1 A Minimal Published Journal
The iCalendar Object below describes a single journal entry for
October 1, 1997. This journal contains the minimum set of properties
for an iTIP journal component.
BEGIN:VCALENDAR
PROFILE:JOURNAL-PUBLISH
PROFILE-VERSION:1.0
PRODID:-//ACME/DesktopCalendar//EN
VERSION:2.0
BEGIN:VJOURNAL
DTSTART:19971001T200000Z
SUMMARY:Distrust & caution are the parents of security
UID:0981234-1234234-2410
END:VJOURNAL
END:VCALENDAR
4.1.2 Changing A Published Journal
The iCalendar Object below describes an update to the journal
described in 4.1.1. The summary has changed and the sequence number
has been adjusted.
BEGIN:VCALENDAR
Dawson/Hopson/Mansour/Silverberg 29 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
PROFILE:JOURNAL-PUBLISH
PROFILE-VERSION:1.0
VERSION:2.0
PRODID:-//ACME/DesktopCalendar//EN
BEGIN:VJOURNAL
DTSTART:19970901T210000Z
SEQUENCE:2
UID:0981234-1234234-2410
SUMMARY:Distrust is a parent of security
END:VJOURNAL
END:VCALENDAR
To identify the journal the client uses the UID. The SEQUENCE
property indicates that this is the second change to the journal.
Journals with sequence numbers 0 and 1 are superseded by this
journal.
The SEQUENCE property provides a reliable way to distinguish
different versions of the same journal. Each time a journal is
published, its sequence number is incremented. If a client receives
an journal with a sequence number 5 and finds it has the same journal
with sequence number 2, the journal should be updated. However, if
the client received an journal with sequence number 2 and finds it
already has sequence number 5 of the same journal, the journal should
not be updated.
4.1.3 Canceling A Published Journal
The iCalendar Object below cancels the journal described in 4.1.1.
This cancels the journal with SEQUENCE numbers 0, 1, and 2.
BEGIN:VCALENDAR
PROFILE:JOURNAL-CANCEL
PROFILE-VERSION:1.0
VERSION:2.0
PRODID:-//ACME/DesktopCalendar//EN
BEGIN:VJOURNAL
COMMENT:We'll save this one for next week.
SEQUENCE:2
UID:0981234-1234234-2410
STATUS:CANCELLED
END:VJOURNAL
END:VCALENDAR
4.1.4 A Rich Published Journal
This example describes the same journal as in 4.1.1, but in much
greater detail.
BEGIN:VCALENDAR
BEGIN:VTIMEZONE
Dawson/Hopson/Mansour/Silverberg 30 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
DAYLIGHT:TRUE
DTSTART:19970406T000000
RRULE:BYDAY=1SU;BYMONTH=4;FREQ=YEARLY
TZNAME:CDT
TZOFFSET:-0500
TTRANS:020000
END:VTIMEZONE
BEGIN:VTIMEZONE
DAYLIGHT:FALSE
DTSTART:19970101T000000
RRULE:BYDAY=-1SU;BYMONTH=10;FREQ=YEARLY
TZNAME:CST
TZOFFSET:-0600
TTRANS:020000
END:VTIMEZONE
PRODID:-//ACME/DesktopCalendar//EN
PROFILE:JOURNAL-PUBLISH
PROFILE-VERSION:1.0
CALSCALE:GREGORIAN
SOURCE:http://www.acmeu.edu/1997/almanac.html
NAME:Poor Richards Almanac
VERSION:2.0
BEGIN:VJOURNAL
ATTACH:http://kuhttp.ukans.edu/carrie/stacks/authors.franklin.html
CATEGORIES:ALMANAC
CLASS:PRIVATE
CREATED:19970415T194319Z
DESCRIPTION;CHARSET=US-ASCII;ENCODING=QUOTED-PRINTABLE:The=
heart of a fool is in his mouth, but the mouth of a wise=
man is in his heart.
DTSTART:19970901T210000Z
SEQUENCE:2
UID:0981234-1234234-2410
LAST-MODIFIED:19970901T132421Z
RESOURCES:COMPUTER,PRINTER
LOCATION;VALUE=URL:http://www.acmeu.com/campusmaps/haaghall.html
PRIORITY:2
SEQUENCE:3
SUMMARY:Distrust & caution are the parents of security
UID:0981234-1234234-2410
RELATED-TO:0981234-1234234-1400-02
END:VJOURNAL
END:VCALENDAR
The CLASS property is specified, though it is not really needed here.
Since this is a published journal, a program that displays it need
not apply any content filtering based on the CLASS attribute. If this
journal is copied into a users calendar, the CLASS would be included
Dawson/Hopson/Mansour/Silverberg 31 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
as part of the copy. The handling of the CLASS tag at that point is
implementation specific.
The RELATED-TO field contains the UID of a related calendar journal
or event. The handling of this property is application dependent.
VTIMEZONE components are discussed in detail in iTIP Part 1.
The sequence number 3 indicates that this journal supersedes versions
0, 1, and 2.
4.2 Group Journal Examples
Group journals are distinguished from published journals in that
there is interaction between the attendees with respect to the
journal. Individual "A" creates a group task in which individuals
"A", "B", "C" and "D" will participate. Individual "B" confirms
acceptance of the task. Individual "C" declines the task. Individual
"D" tentatively accepts the task. The following table illustrates the
sequence of messages that would be exchanged between these
individuals. The table below illustrates the message flow.
Action Organizer Attendee
Initiate a "A" sends
journal JOURNAL-REQUEST
request message to "B",
"C", and "D"
Accept the "B" sends JOURNAL-
journal REPLY message to
request "A" with its
ATTENDEE/STATUS
property parameter
set to "ACCEPTED"
Decline the "C" sends JOURNAL-
journal REPLY message to
request "A" with its
ATTENDEE/STATUS
property parameter
set to "DECLINED"
Tentatively "D" sends JOURNAL-
accept the REPLY message to
journal "A" with its
request ATTENEE/STATUS
property parameter
set to "TENTATIVE"
Confirm "A" sends
journal JOURNAL-REQUEST
Dawson/Hopson/Mansour/Silverberg 32 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
status with message to "B"
attendees and "C" with
current
information for
journal.
SEQUENCE
property is "1".
4.2.1 JOURNAL-REQUEST
A sample journal request that "A" sends to "B", "C", and "D".
BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN
PROFILE:JOURNAL-REQUEST
PROFILE-VERSION:1.0
VERSION:2.0
BEGIN:VJOURNAL
ATTENDEE;ROLE=OWNER;STATUS=ACCEPTED:A@acme.com
ATTENDEE;RSVP=YES;TYPE=INDIVIDUAL:B@acme.com
ATTENDEE;RSVP=YES;TYPE=INDIVIDUAL:C@acme.com
ATTENDEE;RSVP=YES;TYPE=INDIVIDUAL:D@acme.com
DTSTART:19970701T100000-0700
DTDUE:19970722T100000-0700
SUMMARY:Focus group studies in progress
UID:www.acme.com-873970198738777-00
SEQUENCE:0
END:VJOURNAL
END:VCALENDAR
Note that the conference room does not have a valid e-mail address.
4.2.2 JOURNAL-REPLY
Attendee "B" accepts the meeting.
BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN
PROFILE:JOURNAL-REPLY
PROFILE-VERSION:1.0
VERSION:2.0
BEGIN:VJOURNAL
ATTENDEE;STATUS=ACCEPTED:B@acme.com
UID:www.acme.com-873970198738777-00
COMMENT:I'll look in on the focus groups at some point
SEQUENCE:0
RESPONSE-SEQUENCE:0
REQUEST-STATUS:0;Success
END:VJOURNAL
END:VCALENDAR
Dawson/Hopson/Mansour/Silverberg 33 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
"B" could have declined the meeting or indicated tentative acceptance
by setting the ATTENDEE;STATUS parameter to DECLINED or TENTATIVE,
respectively.
4.2.3 Update A Journal Entry
The journal is moved to a different time. The combination of the UID
(which remains the same) and the SEQUENCE (bumped to 1) properties
indicate the update.
BEGIN:VCALENDAR
PRODID:-//ACME/DesktopCalendar//EN
PROFILE:JOURNAL-REQUEST
PROFILE-VERSION:1.0
VERSION:2.0
BEGIN:VJOURNAL
ATTENDEE;ROLE=OWNER;STATUS=ACCEPTED:A@acme.com
ATTENDEE;RSVP=YES;TYPE=INDIVIDUAL:B@acme.com
ATTENDEE;RSVP=YES;TYPE=INDIVIDUAL:C@acme.com
ATTENDEE;RSVP=YES;TYPE=INDIVIDUAL:D@acme.com
DTSTART:19970701T110000-0700
SUMMARY:User interface focus group studies in progress
UID:www.acme.com-873970198738777-00
SEQUENCE:1
END:VJOURNAL
END:VCALENDAR
4.3 Recurring Journal and Time Zone Examples
4.3.1 A Recurring Journal That Spans Timezones
This journal describes a weekly status report. The attendees are each
in a different timezone.
BEGIN:VCALENDAR
BEGIN:VTIMEZONE
DAYLIGHT:TRUE
DTSTART:19970406T000000
RRULE:BYDAY=1SU;BYMONTH=4;FREQ=YEARLY
TZNAME:PDT
TZOFFSET:-0700
TTRANS:020000
END:VTIMEZONE
BEGIN:VTIMEZONE
DAYLIGHT:FALSE
DTSTART:19970126T000000
RRULE:BYDAY=-1SU;BYMONTH=10;FREQ=YEARLY
TZNAME:PST
TZOFFSET:-0800
TTRANS:020000
Dawson/Hopson/Mansour/Silverberg 34 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
END:VTIMEZONE
PRODID:-//ACME/DesktopCalendar//EN
PROFILE:JOURNAL-REQUEST
VERSION:2.0
BEGIN:VJOURNAL
ATTENDEE;ROLE=OWNER;STATUS=ACCEPTED:sman@mcom.com
ATTENDEE;RSVP=YES;EXPECT=REQUEST;TYPE=INDIVIDUAL:gb@mcom.fr
ATTENDEE;RSVP=YES;EXPECT=REQUEST;TYPE=INDIVIDUAL:kimiko@mcom.jp
DTSTART:19970701T140000
RRULE:INTERVAL=20;WKST=SU;BYDAY=TU;FREQ=WEEKLY
RDATE:19970910T140000
EXDATE:19970909T140000
EXDATE:19971028T150000
SUMMARY:Status Reports from group arrive today
UID:www.acme.com-873970198738777
SEQUENCE:0
END:VJOURNAL
END:VCALENDAR
Timezone components should appear in an iCalendar Object containing
recurring journal entries. This is especially important if a
recurring journal entry has attendees in different timezones. There
can be multiple VTIMEZONE components in an iCalendar Object. However,
they must be used to define the same timezone. That is, there cannot
be VTIMEZONE components describing both PST/PDT and EST/EDT at the
component level in the same iCalendar Object.
The first two components of this iCalendar Object are the timezone
components. The DTStart date coincides with the first instance of the
RRULE property.
The recurring journal is defined in a particular timezone, presumably
that of the creator. The client for each attendee has the
responsibility of determining the recurrence time in the attendee's
timezone.
The first instance of the journal starts on Tuesday, July 1, 1997 at
2:00pm. Since no timezone is specified in the DTSTART property, the
timezone component of PDT applies to the start and end times.
Attendee gb@mcom.fr is in France where the local time on this date is
7 hours later than PDT or 21:00. Attendee kimiko@mcom.jp is in Japan
where local time is 9 hours ahead of than UTC or Wednesday, July 2 at
07:00. The journal repeats weekly on Tuesdays (in PST/PDT). The RRULE
results in 20 instances. The last instance falls on Tuesday, November
11, 1997 2:00pm PST. The RDATE adds another instance: WED, 10-SEP-
1997 21:00 GMT.
There are two exceptions to this recurring appointment. The first one
is:
Dawson/Hopson/Mansour/Silverberg 35 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
TUE, 09-SEP-1997 21:00 GMT
TUE, 09-SEP-1997 14:00 PDT
WED, 10-SEP-1997 07:00 JDT
and the second is:
TUE, 28-OCT-1997 22:00 GMT
TUE, 28-OCT-1997 14:00 PST
WED, 29-OCT-1997 07:00 JST
an Exception to a Recurring Journal
The following example illustrates a scenario where a journal
organizer changes an instance of an existing recurring journal. In
this case the organizer is changing the start and end time.
Original Request:
BEGIN:VCALENDAR
PROFILE:JOURNAL-REQUEST
PRODID:-//RDU Software//NONSGML HandCal//EN
VERSION:2.0
BEGIN:VJOURNAL
CREATED:19970526T083000
UID:guid-1.host1.com-001
SEQUENCE:0
RRULE:BYMONTHDAY=1;FREQ=MONTHLY
ATTENDEE;ROLE=ORGANIZER;STATUS=ACCEPTED:Sman@netscape.com
ATTENDEE;RSVP=YES:fdawson@earthlink.net
ATTENDEE;RSVP=YES:Deriks@Microsoft.com
ATTENDEE;RSVP=YES:Alecd@Microsoft.com
DESCRIPTION:IETF-C&S Conference Call
CLASS:PUBLIC
SUMMARY:Merge document updates
DTSTART:19970601T210000Z
LOCATION:Conference Call
END:VJOURNAL
END:VCALENDAR
Journal Request to change a time and create an exception:
BEGIN:VCALENDAR
PROFILE:JOURNAL-REQUEST
PRODID:-//RDU Software//NONSGML HandCal//EN
VERSION:2.0
BEGIN:VJOURNAL
UID:guid-1.host1.com-001
SEQUENCE:1
RECURRENCE-ID:19970701T210000Z
DTSTART:19970703T210000Z
END:VJOURNAL
END:VCALENDAR
Dawson/Hopson/Mansour/Silverberg 36 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
4.3.3 Modify Exception
In this example the organizer has already created an exception and
now wishes to make additional property modification. The organizer
must use both the RECURRENCE-ID and UID to reference the exception.
BEGIN:VCALENDAR
PROFILE:JOURNAL-REQUEST
PRODID:-//RDU Software//NONSGML HandCal//EN
VERSION:2.0
BEGIN:VJOURNAL
UID:guid-1.host1.com-001
SEQUENCE:2
RECURRENCE-ID:19970701T210000Z
ATTENDEE;ROLE=ORGANIZER;STATUS=ACCEPTED:Sman@netscape.com
ATTENDEE;EXPECT=REQUEST:fdawson@earthlink.net
ATTENDEE;EXPECT=REQUEST:Deriks@Microsoft.com
ATTENDEE;EXPECT=REQUEST:Alecd@Microsoft.com
ATTENDEE;EXPECT=REQUEST:RHopson@dev.davinci.com
CLASS:Private
END:VJOURNAL
END:VCALENDAR
This example changes the specific instance properties without changing
the recurring meeting parent.
4.3.4 Cancel an Exception
In the following example, the organizer has created an exception as
in 4.3.2 and now wishes to cancel it. In this case an JOURNAL-CANCEL
is sent with the specific RECURRENCE-ID and UID of the exception.
BEGIN:VCALENDAR
PROFILE:JOURNAL-CANCEL
PRODID:-//RDU Software//NONSGML HandCal//EN
VERSION:2.0
BEGIN:VJOURNAL
UID:guid-1.host1.com-001
RECURRENCE-ID:19970701T210000Z
SEQUENCE:2
STATUS:CANCELLED
END:VJOURNAL
END:VCALENDAR
4.3.5 Cancel Recurring Journal
In this example the organizer wishes to cancel the entire recurring
journal and any child exceptions.
BEGIN:VCALENDAR
PROFILE:JOURNAL-CANCEL
PRODID:-//RDU Software//NONSGML HandCal//EN
Dawson/Hopson/Mansour/Silverberg 37 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
VERSION:2.0
BEGIN:VJOURNAL
UID:guid-1.host1.com-001
SEQUENCE:2
STATUS:CANCELLED
END:VJOURNAL
END:VCALENDAR
4.3.6 Decline A Previously Accepted Exception
In this example a recipient has accepted a JOURNAL-REQUEST which is
actually an exception. The recipient now wishes to decline after
previously accepting
Recipient initially accepts journal request:
BEGIN:VCALENDAR
PROFILE:JOURNAL-REPLY
VERSION:2.0
PRODID:-//ABC Corporation//NONSGML My Product//EN
BEGIN:VJOURNAL
SEQUENCE:1
RESPONSE-SEQUENCE:0
DTSTAMP:19970601T230000Z
UID:guid-1.host1.com-001
RECURRENCE-ID:19970701T210000Z
ATTENDEE;STATUS=CONFIRMED:Deriks@Microsoft.com
REQUEST-STATUS:0;Success
END:VJOURNAL
END:VCALENDAR
Recipient later wishes to decline the request to a recurring
exception:
BEGIN:VCALENDAR
PROFILE:JOURNAL-REPLY
VERSION:2.0
PRODID:-//ABC Corporation//NONSGML My Product//EN
BEGIN:VJOURNAL
SEQUENCE:0
RESPONSE-SEQUENCE:0
REQUEST-STATUS:0;Success
UID:guid-1.host1.com
RECURRENCE-ID:19970701T210000Z
ATTENDEE;STATUS=Declined:Deriks@Microsoft.com
END:VJOURNAL
END:VCALENDAR
Dawson/Hopson/Mansour/Silverberg 38 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
5. Application Protocol Fallbacks
Applications that support iTIP are not required to support the entire
protocol. The following describes how profiles and properties should
"fallback" in applications that do not support the complete protocol.
If a profile or property is not addressed in this section, it may be
safely ignored.
5.1 ICalendar Profile Types
Profile Fallback
JOURNAL- Implementations may ignore the profile
PUBLISH type. The REQUEST-STATUS "302;Request not
supported" must be returned.
JOURNAL- Implementations may ignore the profile
CANCEL type. The REQUEST-STATUS "302;Request not
supported" must be returned.
JOURNAL- JOURNAL-PUBLISH or it's fallback.
REQUEST
JOURNAL-REPLY Implementations may ignore the profile
type. The REQUEST-STATUS "302;Request not
supported" must be returned.
5.2 Calendar Components
Component Fallback
VTIMEZONE Required if RRULE or RDATE is
implemented; otherwise ignore and use
local time.
5.3 Calendar Properties
Property Fallback
CALSCALE Ignore; assume GREGORIAN.
Dawson/Hopson/Mansour/Silverberg 39 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
GEO Ignore.
PRODID Ignore.
PROFILE Required as described in the Profiles
section above.
PROFILE- Assume "1.0".
VERSION
SOURCE Ignore
NAME Ignore.
VERSION Assume "2.0".
5.4 Component Properties
Property Fallback
ATTACH Ignore.
ATTENDEE Required if JOURNAL-REQUEST is
implemented; otherwise ignore.
CATEGORIES Ignore.
CLASS Ignore.
COMMENT Ignore.
CREATED Ignore.
DAYLIGHT Required if VTIMEZONE is implemented;
otherwise Ignore.
DESCRIPTION Required.
DTSTART Required.
DTEND Required.
EXDATE Ignore.
EXRULE Ignore.
LAST- Ignore.
Dawson/Hopson/Mansour/Silverberg 40 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
MODIFIED
RELATED-TO Ignore.
RDATE Ignore. If implemented, VTIMEZONE must
also be implemented.
RRULE Ignore. The first instance occurs on
the DTStart property.
RESPONSE- Required on JOURNAL-REPLY, otherwise
SEQUENCE ignore.
SEQUENCE Required.
STATUS Ignore.
TRANSP Required if FREEBUSY is implemented;
otherwise ignore.
TZNAME Required if VTIMEZONE is implemented;
otherwise ignore.
TZOFFSET Required if VTIMEZONE is implemented;
otherwise ignore.
TZTRANS Required if VTIMEZONE is implemented;
otherwise ignore.
URL Ignore.
UID Required.
X- Ignore.
5.5 Latency Issues
With a store-and-forward transport, it is possible for requests to
arrive out of sequence. That is, an implementation may receive a
JOURNAL-CANCEL notification prior to receiving the original journal
request. This section discusses a few of these scenarios.
5.5.1 Cancelation of an Unknown Journal Entry.
When a JOURNAL-CANCEL request is received before the original
JOURNAL-REQUEST the calendar will be unable to correlate the UID of
the cancellation with an existing journal entry. It is suggested that
messages that cannot be correlated that also contain non-zero
sequence numbers be held and not discarded. Implementations can age
Dawson/Hopson/Mansour/Silverberg 41 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
them out if no other messages arrive with the same UID and a lower
sequence number.
5.6 Sequence Number
Under some conditions, a CUA may receive requests and replies with
the same SEQUENCE number. DTSTAMP is added to act as a tiebreaker
when two items with the same SEQUENCE number are evaluated.
Furthermore, the SEQUENCE number is only incremented when one or more
of the following properties changes:
DTSTART
DTEND (for Events)
LOCATION
DUE (for To-dos)
6. Security Considerations
ITIP outlines an abstract transport protocol which will be bound to a
real-time transport, a store-and-forward transport, and perhaps other
transports. The transport protocol provides facilities for simple
authentication using a clear text password, as well as any SASL
mechanism [SASL]. SASL allows for integrity and privacy services to
be negotiated.
Use of clear text password is strongly discouraged where the
underlying transport service cannot guarantee confidentiality and may
result in disclosure of the password to unauthorized parties.
7. Acknowledgments
A hearty thanks to the following individuals who have participated in
the drafting, review and discussion of this memo:
Anik Ganguly, Bruce Kahn, Don Lavange, Leo Parker, John Rose, Vinod
Seraphin, Richard Shusterman, Derik Stenerson, Kevin Tsurutome.
8. Bibliography
[ID-DT] "Date and Time on the Internet", Internet-Draft, December
1996, http://www.imc.org/draft-newman-datetime.
[ICAL] "Internet Calendaring and Scheduling Core Object Specification
- iCalendar", Internet-Draft, July 1997, ftp://ftp.ietf.org/internet-
drafts/draft-ietf-calsch-ical-02.txt.
[ICMS] "Internet Calendaring Model Specification", Internet-Draft,
July 1997, ftp://ftp.ietf.org/internet-drafts/draft-ietf-calsch-mod-
00.txt.
Dawson/Hopson/Mansour/Silverberg 42 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
[ITIP-1] "iCalendar Transport-Independent Interoperability Protocol
(iTIP) - Part 1: Scheduling Events and Busytime", Internet-Draft,
July 1997, http://www.imc.org/draft-ietf-calsch-itip-part1-00.txt.
[ITIP-2] "iCalendar Transport-Independent Interoperability Protocol
(iTIP) - Part 2: Scheduling To-dos", Internet-Draft, July 1997,
http://www.imc.org/draft-ietf-calsch-itip-part2-00.txt
[ID-UTF8] "UTF-8, a transformation format of Unicode and ISO 10646",
Internet-Draft, July,1996, ftp://ftp.ietf.org/internet-drafts/draft-
yergeau-utf8-01.txt.
[ISO8601] "Data elements and interchange formats - information
interchange - Representation of dates and times", ISO 8601, 1996-06-
15, +1 (212) 642-4900 for ANSI Sales.
[RFC2045] N. Freed and N. Borenstein, "Multipurpose Internet Mail
Extensions - Part One - Format of Internet Message Bodies", RFC 2045,
Innosoft, First Virtual, November 1996,
http://www.imc.org/rfc2045.txt.
[RFC2046] N. Freed and N. Borenstein, "Multipurpose Internet Mail
Extensions - Part Two - Media Types", RFC 2046, Innosoft, First
Virtual, November 1996, http://www.imc.org/rfc2046.txt.
[UNICODE] The Unicode Consortium, "The Unicode Standard -Version
2.0", Addison-Wesley Developers Press, July 1996. UTF-8 is described
in section A-2.
[US-ASCII] Coded Character Set--7-bit American Standard Code for
Information Interchange, ANSI X3.4-1986.
9. Authors Addresses
The following address information is provided in a MIME-VCARD,
Electronic Business Card, format.
The authors of this draft are:
BEGIN:VCARD
FN:Frank Dawson
ORG:Lotus Development Corporation
ADR;WORK;POSTAL;PARCEL:;;6544 Battleford Drive;Raleigh;NC;27613-
3502;USA
TEL;WORK;MSG:+1-919-676-9515
TEL;WORK;FAX:+1-919-676-9564
EMAIL;INTERNET:fdawson@earthlink.net
URL:http://home.earthlink.net/~fdawson
END:VCARD
BEGIN:VCARD
FN:Ross Hopson
ORG:On Technology, Inc.
Dawson/Hopson/Mansour/Silverberg 43 Expires January 1998
Internet Draft iTIP-Part Three-Scheduling Journal Entries July 18, 1997
ADR;WORK;POSTAL;PARCEL:Suite 1600;;434 Fayetteville St.
Mall, Two Hannover Square;Raleigh;NC;27601
TEL;WORK;MSG:+1-919-890-4036
TEL;WORK;FAX:+1-919-890-4100
EMAIL;INTERNET:rhopson@on.com
END:VCARD
BEGIN:VCARD
FN:Steve Mansour
ORG:Netscape Communications Corporation
ADR;WORK;POSTAL;PARCEL:;;501 East Middlefield Road;Mountain
View;CA;94043;USA
TEL;WORK;MSG:+1-415-937-2378
TEL;WORK;FAX:+1-415-428-4059
EMAIL;INTERNET:sman@netscape.com
END:VCARD
BEGIN:VCARD
FN:Steve Silverberg
ORG:Microsoft Corporation
ADR;WORK;POSTAL;PARCEL:;;One Microsoft Way;
Redmond;WA;98052-6399;USA
TEL;WORK;MSG:+1-206-936-9277
TEL;WORK;FAX:+1-206-936-8019
EMAIL;INTERNET:stevesil@Exchange.Microsoft.com
END:VCARD
The iCalendar Object is a result of the work of the Internet
Engineering Task Force Calendaring and scheduling Working Group. The
chairman of that working group is:
BEGIN:VCARD
FN:Anik Ganguly
ORG:OnTime, Inc.
ADR;WORK;POSTAL;PARCEL:10 Floor;;21700 Northwestern
Highway;Southfield;MI;48075;USA
TEL;WORK;MSG:+1-810-559-5955
TEL;WORK;FAX:+1-810-559-5034
EMAIL;INTERNET:anik@ontime.com
END:VCARD
Dawson/Hopson/Mansour/Silverberg 44 Expires January 1998