home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_a_c / draft-ietf-calsch-mod-01.txt < prev    next >
Text File  |  1997-08-01  |  37KB  |  1,664 lines

  1.  
  2.  
  3.  
  4. Network Working Group                                 J.  Noerenberg
  5.  
  6. ietf-draft-calsch-mod-01.txt                           Qualcomm, Inc
  7.  
  8. Category: INTERNET DRAFT                            Expires: Jan 1998
  9.  
  10.  
  11.  
  12.  
  13.              Internet Calendar Model Specification
  14.  
  15.  
  16. Status of this Memo
  17.  
  18.  
  19. This document is an Internet-Draft. Internet-Drafts are working
  20.  
  21. documents of the Internet Engineering Task Force (IETF), its areas,
  22.  
  23. and its working groups. Note that other groups may also distribute
  24.  
  25. working documents as Internet-Drafts.
  26.  
  27.  
  28. Internet-Drafts are draft documents valid for a maximum of six months.
  29.  
  30. Internet-Drafts may be updated, replaced, or made obsolete by other
  31.  
  32. documents at any time. It is not appropriate to use Internet-Drafts as
  33.  
  34. reference material or to cite them other than as a "working draft" or
  35.  
  36. "work in progress".
  37.  
  38.  
  39. To learn the current status of any Internet-Draft, please check the
  40.  
  41. 1id-abstracts.txt listing contained in the Internet-Drafts Shadow
  42.  
  43. Directories on ds.internic.net (US East Coast), nic.nordu.net
  44.  
  45. (Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific Rim).
  46.  
  47.  
  48. Distribution of this document is unlimited.
  49.  
  50.  
  51.  
  52. Abstract
  53.  
  54.  
  55. Internet Calendaring and Scheduling protocols require the definition
  56.  
  57. of objects to encapsulate an event to be scheduled, a calendar on
  58.  
  59. which the event will be stored, and means for exchanging these objects
  60.  
  61. across the Internet between calendars on behalf of people for whom the
  62.  
  63. calendars are meaningful. This document gives an abstract model of the
  64.  
  65. objects and the protocols necessary to accomplish this kind of
  66.  
  67. information exchange.  It will establish the context in which other
  68.  
  69. Calendaring and Scheduling RFCs can be interpreted.  Included are
  70.  
  71. brief introductions to the other components of Internet calendar
  72.  
  73. protocols and definitions of nomenclature common to all documents
  74.  
  75. defining these protocols. Reading this document will enable
  76.  
  77. implementors and users of Internet Calendaring and Scheduling
  78.  
  79. protocols to understand the goals and constraints chosen for related
  80.  
  81. protocols.
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93. Noerenberg                   Expires Jan 1998                 [Page 1]
  94.  
  95.  
  96.  
  97. ietf-draft-calsch-mod-01.txt   Internet Calendar Model   J. Noerenberg
  98.  
  99.  
  100. Table of Contents
  101.  
  102.  
  103. 1. Document framework                                        3
  104.  
  105. 1.1 Model Specification                                      3
  106.  
  107. 1.2 iCalendar: Core Object Specification                     3
  108.  
  109. 1.3 iTIP: Transport Independent Interoperability Protocol    3
  110.  
  111. 1.4 CAP: Calendar Access Protocol Specification              4
  112.  
  113. 2. Abstract Model                                            5
  114.  
  115. 3. Principal Model Components                                6
  116.  
  117. 3.1 Calendar User                                            6
  118.  
  119. 3.2 Calendar                                                 7
  120.  
  121. 3.3 Calendar User Agent (CUA)                                8
  122.  
  123. 3.4 Calendar Service                                         8
  124.  
  125. 3.5 Calendar Domain                                          9
  126.  
  127. 3.6 Calendar Access Protocol (CAP)                           9
  128.  
  129. 3.7 Transport Independent Interoperability Protocol (iTIP)     9
  130.  
  131. 4. Calendar Object Transport                                10
  132.  
  133. 4.1 Direct Access                                           11
  134.  
  135. 4.2 Calendar Service Mediation                              11
  136.  
  137. 4.3 Interdomain Exchange                                    12
  138.  
  139. 5. Security considerations                                  12
  140.  
  141. 6. References                                               13
  142.  
  143. 7. Acknowledgments                                          14
  144.  
  145. 8. Author's address                                         14
  146.  
  147. 9. Appendix -- Calendar protocol nomenclature               15
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177. Noerenberg                   Expires Jan 1998                 [Page 2]
  178.  
  179.  
  180.  
  181. ietf-draft-calsch-mod-01.txt   Internet Calendar Model   J. Noerenberg
  182.  
  183.  
  184.  
  185. Introduction
  186.  
  187.  
  188. The Internet Calendar Model specification provides a framework for the
  189.  
  190. set of protocols that define Calendaring and scheduling for the
  191.  
  192. Internet.  The protocols specify the contents of calendars, and how
  193.  
  194. the objects stored on calendars are represented during transmission
  195.  
  196. across the Internet.  These protocols also define the interaction
  197.  
  198. between a calendar user agent and a calendar store, as well as the
  199.  
  200. actions performed by calendar transfer agents that facilitate
  201.  
  202. communication between calendar stores.  These terms will be defined
  203.  
  204. more precisely in the section on nomenclature below.  The protocols
  205.  
  206. are the:
  207.  
  208.  
  209. "Core Object Specification" [iCalendar]
  210.  
  211. "iCalendar Interoperability Protocol" [iTIP]
  212.  
  213. "Calendar Access Protocol" [CAP]
  214.  
  215.  
  216.  
  217. 1. Document framework Calendar and Scheduling Protocols are contained
  218.  
  219. in a series of related documents. This section describes the
  220.  
  221. relationship between the documents.  Section 2 presents the abstract
  222.  
  223. model for Internet Calendaring and Scheduling.
  224.  
  225.  
  226. Following sections amplify the principal concepts defined in the
  227.  
  228. abstract model, provide a schematic representation of information flow
  229.  
  230. in Internet Calendaring and Scheduling, and supply other, useful
  231.  
  232. background information.
  233.  
  234.  
  235. 1.1 Model Specification This document - see abstract and introduction
  236.  
  237. above.
  238.  
  239.  
  240. 1.2 iCalendar: Core Object Specification The Core Object Specification
  241.  
  242. is the authoritative definition of all properties that may be used in
  243.  
  244. the Internet Calendar and Scheduling Protocols as well as the rules
  245.  
  246. for encoding and representing the objects that are constructed from
  247.  
  248. those properties. iCalendar also specifies the method to be used to
  249.  
  250. define new attributes.
  251.  
  252.  
  253. 1.3 iTIP: Transport Independent Interoperability Protocol This
  254.  
  255. document specifies how calendaring systems use iCalendar objects to
  256.  
  257. interoperate with other calendar systems.  It does so in a general way
  258.  
  259. so as to allow multiple methods of communication between systems.
  260.  
  261.  
  262. Binding of iTIP to a real-time protocol This document specifies a
  263.  
  264. session-layer iTIP protocol.  Multiple bindings are possible. This WG
  265.  
  266. will specify and foster implementation of at least one binding.
  267.  
  268.  
  269. Binding of iTIP to E-mail This document specifies an iTIP protocol
  270.  
  271. over Internet e-mail using MIME. Internet e-mail protocols are given
  272.  
  273. by RFCs 821, 822, 2045-2049 [RFC-821] [RFC-822] [RFC- 2045] [RFC-2046]
  274.  
  275. [RFC-2047]. [RFC-2048] [RFC-2049].  See the references for details for
  276.  
  277. constructing Internet e-mail messages.
  278.  
  279.  
  280. Noerenberg                   Expires Jan 1998                 [Page 3]
  281.  
  282.  
  283.  
  284. ietf-draft-calsch-mod-01.txt   Internet Calendar Model   J. Noerenberg
  285.  
  286.  
  287.  
  288. 1.4 CAP: Calendar Access Protocol Specification This document
  289.  
  290. specifies how a Calendar User Agent (CUA) will interact with a
  291.  
  292. Calendar Service using iCalendar objects.
  293.  
  294.  
  295. A graphical representation of the relationship between the documents
  296.  
  297. is shown below:
  298.  
  299.  
  300.  
  301.                         ------------------ 
  302.  
  303.                        | Model Document   |
  304.  
  305.                         ------------------ 
  306.  
  307.                                 |
  308.  
  309.                                 |
  310.  
  311.                                 |
  312.  
  313.                         ------------------ 
  314.  
  315.                        |    iCalendar     |
  316.  
  317.                         ------------------ 
  318.  
  319.                                 |
  320.  
  321.                                 |
  322.  
  323.                                 |
  324.  
  325.                ----------------------------------- 
  326.  
  327.               |                                   |
  328.  
  329.       ------------------                 ------------------ 
  330.  
  331.      |      iTIP        |               |        CAP       |
  332.  
  333.       ------------------                 ------------------ 
  334.  
  335.               |
  336.  
  337.       -----------------
  338.  
  339.       |               |
  340.  
  341.  ----------      -----------
  342.  
  343. | session  |    |   email   |
  344.  
  345. |   iTIP   |    |    iTIP   |
  346.  
  347.  ----------      -----------
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370. Noerenberg                   Expires Jan 1998                 [Page 4]
  371.  
  372.  
  373.  
  374. ietf-draft-calsch-mod-01.txt   Internet Calendar Model   J. Noerenberg
  375.  
  376.  
  377.  
  378. 2. Abstract Model
  379.  
  380.  
  381. A CALENDAR is a collection of logically related OBJECTs.
  382.  
  383.  
  384. OBJECTs include EVENTs, TODOs, JOURNALs, ALARMs, TIMEZONEs and
  385.  
  386. FREEBUSYs.
  387.  
  388.  
  389. Each OBJECT is described using a set of OBJECT ATTRIBUTES such as
  390.  
  391. date&time, attendees, resources and statuses.
  392.  
  393.  
  394. The complete set of OBJECT ATTRIBUTES and their representation is
  395.  
  396. defined in [iCalendar].
  397.  
  398.  
  399. A specific CALENDAR has a unique CALENDAR IDENTIFIER (CI).
  400.  
  401.  
  402. A CALENDAR USER (CU) views and modifies a CALENDAR using a CALENDAR
  403.  
  404. USER AGENT (CUA).  Via a CUA a CU can modify a CALENDAR by adding or
  405.  
  406. modifying OBJECTs stored in the CALENDAR.  A CUA uses the services of
  407.  
  408. a CALENDAR SERVICE (CS) via the CALENDAR ACCESS PROTOCOL (CAP) to
  409.  
  410. publish changes to a CALENDAR.  A CS also delivers messages containing
  411.  
  412. OBJECTs from other CALENDAR USERs via CAP, or via the iCalendar
  413.  
  414. Transport-Independent Interoperability Protocol, iTIP.
  415.  
  416.  
  417. A CS stores a set of CALENDARs which are accessible according to
  418.  
  419. ACCESS RULES maintained by the CS.  CAP enables the CUA and CS to
  420.  
  421. request access to CALENDARs according to the ACCESS RULES.  CAP also
  422.  
  423. enables a CUA and CS to modify the current ACCESS RULES for particular
  424.  
  425. CALENDAR USERs and particular CALENDARs.
  426.  
  427.  
  428. iTIP supports the exchange of OBJECTs without the use of ACCESS RULES.
  429.  
  430. It enables the exchange of objects between CSs, as well as between
  431.  
  432. CUAs and CSs.  A set of CSs may cooperate in a CALENDAR DOMAIN.  A
  433.  
  434. CALENDAR DOMAIN appears to be a single CS through iTIP, from the point
  435.  
  436. of view of another CS.
  437.  
  438.  
  439. A minimal INTERNET CALENDAR SYSTEM comprises a CUA, a CS and the
  440.  
  441. services of CAP and iTIP, all of which which may, or may not, be
  442.  
  443. integrated together in a given implementation.
  444.  
  445.  
  446. NOTE: It is not required that interacting CUA, CS, CAP and iTIP
  447.  
  448. entities be matched implementations, though it is required that all
  449.  
  450. implementations must comply with the specified CAP and iTIP.
  451.  
  452.  
  453. A CS is responsible for locating the appropriate CALENDAR DOMAIN for
  454.  
  455. CIs specified in OBJECTs to be transmitted between CALENDAR DOMAINS. A
  456.  
  457. CUA is also required to locate the appropriate CALENDAR DOMAIN in
  458.  
  459. order to use iTIP.  When OBJECTs are transmitted, they are
  460.  
  461. encapsulated in a CALENDAR PROTOCOL DATA UNIT (CPDU).
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468. Noerenberg                   Expires Jan 1998                 [Page 5]
  469.  
  470.  
  471.  
  472. ietf-draft-calsch-mod-01.txt   Internet Calendar Model   J. Noerenberg
  473.  
  474.  
  475.  
  476. CPDUs are MIME encoded objects that specify a requested action and/or
  477.  
  478. response and carry associated data.  Thus, the format of all
  479.  
  480. information exchanged among CALENDAR SYSTEM ENTITIES is defined in
  481.  
  482. terms of MIME CONTENT-TYPES with associated PARAMETER VALUES and MIME
  483.  
  484. BODY PART CONTENT.  CONTENT is defined in terms of iCalendar.
  485.  
  486.  
  487. The complete set of CPDUs and the corresponding finite state machine
  488.  
  489. for unauthenticated exchange make up iTIP.  iTIP is defined in
  490.  
  491. [iTIP1], [iTIP2], and [iTIP3].  iTIP is capable of using a variety of
  492.  
  493. transport mechanisms including INTERNET MAIL ([RFC821], [RFC822]),
  494.  
  495. HTTP, [RFC2091], as well as session-layer protocols derived directly
  496.  
  497. from iTIP.
  498.  
  499.  
  500. ACCESS RULES and the cooresponding finite state machine for
  501.  
  502. authenticated exchange make up CAP.  CAP is defined in [CAP].
  503.  
  504.  
  505.  
  506. 3. Principal Model Components
  507.  
  508. There are several principal components in a Calendaring and Scheduling
  509.  
  510. system. Their relationship can be seen in Figure 2 below.  This
  511.  
  512. section identifies some of the salient features of the components. The
  513.  
  514. syntax and semantics for creating and transmitting these objects are
  515.  
  516. completely specified in [iCalendar], [CAP], and [iTIP].
  517.  
  518.  
  519. 3.1 Calendar User
  520.  
  521. A calendar user interprets objects on a calendar, creates them, and
  522.  
  523. exchanges them with other calendar users.  A calendar user may be a
  524.  
  525. person (Ken Caminiti), a group of people (the the San Diego Padres
  526.  
  527. baseball club), or a resource (Qualcomm Stadium). From the point of
  528.  
  529. view of other calendar users, groups and resources appear as a single
  530.  
  531. Calendar user, regardless of their composition in the physical world.
  532.  
  533. Calendar users that are resources generally contain properties that
  534.  
  535. identify them as inanimate objects -- anything from a fruit bowl to
  536.  
  537. rubber bats to settle disputes during a meeting.
  538.  
  539.  
  540. A calendar user owns his own calendar, and can manipulate objects
  541.  
  542. stored there via a CUA.  Access control attributes condition access to
  543.  
  544. calendars and their components and properties.
  545.  
  546.  
  547. A calendar user can also manipulate the contents of other calendar
  548.  
  549. users' calendars by sending messages containing calendar objects to
  550.  
  551. them.  For example, The San Diego Padres sends calendar events for the
  552.  
  553. 1997 season to Ken Caminiti, so he knows when to show up at the
  554.  
  555. ballpark.  The Padres sends calendar events for games to be played at
  556.  
  557. home to the Qualcomm Stadium calendar so the concessionaires can order
  558.  
  559. hot dogs.
  560.  
  561.  
  562. A calendar user can also organize and own events.  When a calendar
  563.  
  564. user creates an event object, that user becomes the organizer and the
  565.  
  566. owner.  The organizer can delegate ownership and the role of organizer
  567.  
  568.  
  569.  
  570.  
  571. Noerenberg                   Expires Jan 1998                 [Page 6]
  572.  
  573.  
  574.  
  575. ietf-draft-calsch-mod-01.txt   Internet Calendar Model   J. Noerenberg
  576.  
  577.  
  578.  
  579. to others.  Only organizers and owners may alter any attribute of an
  580.  
  581. event object.  Calendar users assigned other Attendees roles may not
  582.  
  583. change event attributes.
  584.  
  585.  
  586. 3.2 Calendar
  587.  
  588.  
  589. 3.2.1 Collection of objects
  590.  
  591. Calendar users own calendars.  This is a one to many relationship.  A
  592.  
  593. single calendar user may have multiple calendars.  However, each
  594.  
  595. calendar must have a unique identifier.  A calendar is an information
  596.  
  597. store containing information about events,to-dos, alarms, journals and
  598.  
  599. free time, the objects stored in it.  Also stored in a calendar are
  600.  
  601. properties that are global to all of the objects in the calendar.  An
  602.  
  603. example of a global property is the GEO property that identifies the
  604.  
  605. physical location where the calendar user can be found. Global
  606.  
  607. properties such as this establish the context used to interpret the
  608.  
  609. objects stored in the calendar.  The principal structural features of
  610.  
  611. a calendar are described below in section 3.2.3.  When objects or
  612.  
  613. properties of a calendar are exchanged between actors in a calendaring
  614.  
  615. and scheduling network (Calendar User Agents and Calendar Services),
  616.  
  617. they are expressed in the form defined in [iCalendar].  Figure 1 below
  618.  
  619. is a schematic representation of a calendar.
  620.  
  621.  
  622. 3.2.2 Properties
  623.  
  624. Properties are attributes of an object or a calendar.  They consist of
  625.  
  626. a name and a value.  Properties are strongly typed.  Some properties
  627.  
  628. are multivalued.  A property may have parameters that distinguish
  629.  
  630. between related properties.  Some properties may occur multiple times
  631.  
  632. in the same object instance, and may be gathered into a logical group.
  633.  
  634. Some properties may be unique to a particular calendar or object.
  635.  
  636.  
  637. 3.2.3 Objects
  638.  
  639. Objects are collections of property values.  A particular set of
  640.  
  641. values for the properties of a object define a particular object. 
  642.  
  643. Some objects may contain certain other objects.  The set of objects in
  644.  
  645. a calendar are identified below.
  646.  
  647.  
  648. 3.2.3.1 Events
  649.  
  650. Event objects are defined for specific starting date-time, have a
  651.  
  652. duration on a calendar, and a description.  Other properties of an
  653.  
  654. event may specify a location or other attributes that define the
  655.  
  656. event, such as resources that are part of the event.  Events may also
  657.  
  658. contain an Alarm object.
  659.  
  660.  
  661. 3.2.3.2 To-do
  662.  
  663. While like an event, a To-do doesn't reserve a specific block of time
  664.  
  665. on a calendar.  A To- do component must have a starting date-time that
  666.  
  667. identifies its first appearance on the calendar.  It must also have a
  668.  
  669. date-time that specifies when the To-do expires.  A To-do must have a
  670.  
  671. description.  It may also contain an alarm object.
  672.  
  673.  
  674.  
  675.  
  676. Noerenberg                   Expires Jan 1998                 [Page 7]
  677.  
  678.  
  679.  
  680. ietf-draft-calsch-mod-01.txt   Internet Calendar Model   J. Noerenberg
  681.  
  682.  
  683.  
  684. 3.2.3.3 Alarms
  685.  
  686. An alarm object may occur in an Event or To-do.  It contains a
  687.  
  688. date-time. When present, and the date-time is passed, it will cause a
  689.  
  690. CUA or CS to notify the user the date-time has passed.
  691.  
  692.  
  693. 3.2.3.4 Journal
  694.  
  695. A journal object is a textual item that is associated with a
  696.  
  697. particular date. As its name suggests, its purpose is to record
  698.  
  699. information meaningful about the date, but not necessarily tied to
  700.  
  701. other calendar objects on a calendar.
  702.  
  703.  
  704. 3.2.3.5 Timezone
  705.  
  706. Timezone objects encapsulate rules for calculating local time from
  707.  
  708. UTC. Including this object in an event object enables a receiver to
  709.  
  710. calculate the universal time value for time values expressed in the
  711.  
  712. sender's local time. This object is especially useful for expressing
  713.  
  714. recurring events whose instances span a change in the time reference
  715.  
  716. such as the transition between Standard time and Daylight Savings
  717.  
  718. time.  Time values expressed in local time are always interpreted in
  719.  
  720. the receiver's local time.  The sender must provide another context
  721.  
  722. using UTC values and Timezone objects if this is not the
  723.  
  724. interpretation intended by the sender.
  725.  
  726.  
  727.  
  728.  
  729.                                calendar
  730.  
  731.                                   |
  732.  
  733.    -----------------------------------------------------------
  734.  
  735.   |         |            |           |            |           |
  736.  
  737. to-do     event       journal    freebusy     timezone    property...
  738.  
  739.             |
  740.  
  741.      --------------
  742.  
  743.     |              |
  744.  
  745. property...      alarm
  746.  
  747.                    |
  748.  
  749.                property...
  750.  
  751.  
  752.  
  753. Figure 1: Calendar Object Model
  754.  
  755.  
  756.  
  757.  
  758. 3.3 Calendar User Agent (CUA)
  759.  
  760. A CUA mediates the interactions between a calendar user and his
  761.  
  762. calendar.  It represents the information stored in the calendar to the
  763.  
  764. user, and enables the user to manipulate it. This is a particular
  765.  
  766. instance of the interactive process used by a calendar user.
  767.  
  768.  
  769. 3.4 Calendar Service
  770.  
  771. A Calendar Service (CS) stores a collection of calendars and interacts
  772.  
  773. with the Calendar User Agent (CUA) via the Calendar Access Protocol
  774.  
  775. (CAP).
  776.  
  777.  
  778. Noerenberg                   Expires Jan 1998                 [Page 8]
  779.  
  780.  
  781.  
  782. ietf-draft-calsch-mod-01.txt   Internet Calendar Model   J. Noerenberg
  783.  
  784.  
  785.  
  786. 3.5 Calendar Domain
  787.  
  788. A collection of calendars that can be grouped together constitutes a
  789.  
  790. Calendar Domain. The relation used to bound the group is arbitrary.
  791.  
  792. Frequently membership in an organization will be used to define the
  793.  
  794. domain, but it could be a shared Internet address domain, as well.  A
  795.  
  796. Calendar Domain provides a contiguous address space for all the
  797.  
  798. calendars, CTAs and CUAs contained in the domain.  It must be possible
  799.  
  800. for any Calendar User (via the facilities of a CUA and/or CTA) to
  801.  
  802. determine whether they are members of a particular domain, or if other
  803.  
  804. Calendar Users are members.  CTAs and CUAs can take advantage of
  805.  
  806. domain information when routing event messages.
  807.  
  808.  
  809. 3.6 Calendar Access Protocol (CAP)
  810.  
  811. When calendar users need to manipulate calendars that are not stored
  812.  
  813. on the same computer where the CUA executes, the CUA will use the
  814.  
  815. Calendar Access Protocol to exchange objects with the Calendar Service
  816.  
  817. (CS). CAP specifies the beginning and ending of the session between
  818.  
  819. the CUA and the CS.  Using CAP, the CUA will mediate authentication of
  820.  
  821. the user to the service.  CAP requires calendar objects and calendar
  822.  
  823. properties to be expressed in the on-the-wire data format defined in
  824.  
  825. [CalObjSpec]. A CUA must not be required to maintain a connection to a
  826.  
  827. CS via CAP in order to display a Calendar for a Calendar User or
  828.  
  829. accept commands from a user to change a Calendar's content.  By using
  830.  
  831. CAP a CUA need not have specific information on how a particular CS
  832.  
  833. stores a Calendar and vice versa. This enables specification and
  834.  
  835. exchange of objects and properties independently of Calendar storage
  836.  
  837. models adopted by particular CUAs or CSs.
  838.  
  839.  
  840. 3.7 Transport Independent Interoperability Protocol (iTIP)
  841.  
  842. CSs in a domain or across domains exchange objects and properties
  843.  
  844. using iTIP. Like CAP, iTIP uses iCalendar formats to represent objects
  845.  
  846. and properties. iTIP defines the beginning and ending of the exchange
  847.  
  848. session, as well the users for whom the messages are intended.  iTIP
  849.  
  850. permits unauthenticated delivery of objects and properties to a CS.  A
  851.  
  852. CS may accept or reject delivery without interaction with a user.  But
  853.  
  854. a CS may require further confirmation of receipt of a object or
  855.  
  856. property before it is acted upon by the CS.
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.  
  864.  
  865.  
  866.  
  867.  
  868.  
  869.  
  870.  
  871.  
  872.  
  873.  
  874. Noerenberg                   Expires Jan 1998                 [Page 9]
  875.  
  876.  
  877.  
  878. ietf-draft-calsch-mod-01.txt   Internet Calendar Model   J. Noerenberg
  879.  
  880.  
  881.  
  882. 4. Calendar Object Transport
  883.  
  884. There are several transport modes in this architecture.  The figures
  885.  
  886. below illustrate the different modes that are allowed.  Three modes
  887.  
  888. are required to handled the different kinds of calendar exchanges
  889.  
  890. across the Internet, person to person, group interactions local to a
  891.  
  892. particular network, and exchanges across networks.
  893.  
  894.  
  895.  ------------                  ------------
  896.  
  897. | CUA  | rcvr| -----      ----|rcvr|  CUA  |
  898.  
  899. |       -----|      \   /     |----        |
  900.  
  901. |            |       \ /      |            |
  902.  
  903. |            |        X       |            |
  904.  
  905. |            |       / \      |            |
  906.  
  907. |       -----|      /   \     |----        |
  908.  
  909. |      | sndr| -----      ----|sndr|       |
  910.  
  911.  ------------       \    /     ------------
  912.  
  913.                      iTIP
  914.  
  915.                      
  916.  
  917. Figure 2: Direct Access
  918.  
  919.  
  920.  
  921.  ------------                  ------------
  922.  
  923. | CUA        |                |       CUA  |
  924.  
  925. |            |                |            |
  926.  
  927. |            |                |            |
  928.  
  929.  ------------                  ------------
  930.  
  931.         \                          /                     
  932.  
  933.          \   ------- CAP -------  /
  934.  
  935.           \                      /
  936.  
  937.            \   --------------   /
  938.  
  939.             \ |      CS      | /
  940.  
  941.               |              |
  942.  
  943.               |              |
  944.  
  945.                --------------
  946.  
  947.  
  948. Figure 3: Calendar Service Mediation
  949.  
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960.  
  961.  
  962.  
  963.  
  964.  
  965.  
  966.  
  967. Noerenberg                   Expires Jan 1998                [Page 10]
  968.  
  969.  
  970.  
  971. ietf-draft-calsch-mod-01.txt   Internet Calendar Model   J. Noerenberg
  972.  
  973.  
  974.  
  975.  -----------------                     ------------------
  976.  
  977. |                 |                   |                  |
  978.  
  979. | Calendar Domain |                   | Calendar Domain  |
  980.  
  981. |                 |                   |                  |
  982.  
  983. |                 |                   |                  |
  984.  
  985. |  -------        |                   |                  |
  986.  
  987. | |  CUA  |       |                   |                  |
  988.  
  989. |  -------        |                   |                  |
  990.  
  991. |     |           |                   |                  |
  992.  
  993. |     | -- CAP    |                   |                  |
  994.  
  995. |     |           |                   |                  |
  996.  
  997. |  ------------   |                   |---------         |
  998.  
  999. | | CS   | rcvr|----------     -------|rcvr|    |        |
  1000.  
  1001. | |       -----|  |       \   /       |----     |        |
  1002.  
  1003. | |            |  |        \ /        | Gateway |        |
  1004.  
  1005. | |            |  |         X         |         |        |
  1006.  
  1007. | |            |  |        / \        |         |        |
  1008.  
  1009. | |       -----|  |       /   \       |----     |        |
  1010.  
  1011. | |      | sndr| ---------      ------|sndr|    |        |
  1012.  
  1013. |  ------------   |       \    /      |---------         |
  1014.  
  1015. |                 |        iTIP       |                  |
  1016.  
  1017. |                 |                   |                  |
  1018.  
  1019.  -----------------                     ------------------
  1020.  
  1021.  
  1022.  Figure 4: Interdomain Exchange
  1023.  
  1024.  
  1025.  
  1026.  
  1027. 4.1 Direct Access
  1028.  
  1029. For direct access, two calendar user agents (CUA) exchange calendar
  1030.  
  1031. components by using iTIP.  Each CUA provides an iTIP sender and
  1032.  
  1033. receiver.  As is generally the case, the methods used by the CUA to
  1034.  
  1035. store calendar data locally are not relevant to the transport model.
  1036.  
  1037. For this mode, calendar users must be uniquely identifiable across the
  1038.  
  1039. Internet, and access to CUAs must conform with privacy and security
  1040.  
  1041. considerations.  Because the transport itself is not authenticated, it
  1042.  
  1043. is crucial the objects themselves be capable of carrying
  1044.  
  1045. authentication information.
  1046.  
  1047.  
  1048. 4.2 Calendar Service Mediation
  1049.  
  1050. Using Calendar Service Mediation a CUA interoperates with a Calendar
  1051.  
  1052. Service (CS) using CAP to exchange calendar components.  The CS takes
  1053.  
  1054. responsibility for mediating receipt and delivery of components with
  1055.  
  1056. other collaborating CUAs.  The principal difference between this mode
  1057.  
  1058. and Interdomain Exchange is that CSs do not need to use iTIP to
  1059.  
  1060. facilitate exchange of components.  A consequence of this mode is that
  1061.  
  1062. CUAs and CSs need not use addresses that are unique across the
  1063.  
  1064. Internet.  However, consistency with other modes makes a consistent
  1065.  
  1066. address model an obvious simplification for implementors.  Moreover,
  1067.  
  1068. because CAP access provides authentication, objects exchanged through
  1069.  
  1070. a CAP channel need not carry authenication information.
  1071.  
  1072.  
  1073.  
  1074.  
  1075. Noerenberg                   Expires Jan 1998                [Page 11]
  1076.  
  1077.  
  1078.  
  1079. ietf-draft-calsch-mod-01.txt   Internet Calendar Model   J. Noerenberg
  1080.  
  1081.  
  1082.  
  1083. 4.3 Interdomain Exchange
  1084.  
  1085. With Interdomain Exchange a Calendar Service (CS) supporting a group
  1086.  
  1087. of users in one domain can exchange calendar components with a
  1088.  
  1089. different calendar domain. Domains may or may not be within the same
  1090.  
  1091. Internet network domain.  Like Direct Access, iTIP is the vehicle
  1092.  
  1093. which permits component exchange.  In the figure, one domain is
  1094.  
  1095. illustrated with a Calendar Service providing iTIP service.  The 2nd
  1096.  
  1097. domain in this figure has a distinct iTIP sender and receiver.  In
  1098.  
  1099. order to provide end-to-end privacy components must be wrapped in a
  1100.  
  1101. cryptographically secure wrapper to insure only the intended
  1102.  
  1103. corespondents can interpret the components.  This wrapper is not
  1104.  
  1105. required unless privacy must be assured.  In order to provide backward
  1106.  
  1107. compatibility with existing calendar and scheduling systems, a privacy
  1108.  
  1109. wrapper cannot be a required aspect of the component exchange.
  1110.  
  1111.  
  1112.  
  1113. 5. Security considerations
  1114.  
  1115. The Core Object Specification must provides the means to classify the
  1116.  
  1117. intended sensitivity level of an event, to-do or journal calendar
  1118.  
  1119. component (i.e., PUBLIC, PRIVATE, or CONFIDENTIAL).  It must also
  1120.  
  1121. provide a means to wrap all components in an exchange in a
  1122.  
  1123. cryptographically secure envelope so that only the intended
  1124.  
  1125. correspondents can decode the message.
  1126.  
  1127.  
  1128. The Calendar Access Protocol must provide a description of the
  1129.  
  1130. elements of the calendaring system security model and the protocol
  1131.  
  1132. elements for creating and manipulating the access control to a
  1133.  
  1134. calendar.  This protocol must also describe the authentication
  1135.  
  1136. procedure between a CUA and CS.
  1137.  
  1138.  
  1139. So that iCalendar objects may be securely transmitted across the
  1140.  
  1141. Internet and may be verified by recipients, iCalendar must describe
  1142.  
  1143. how objects will be covered and authenticated.
  1144.  
  1145.  
  1146.  
  1147.  
  1148.  
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165. Noerenberg                   Expires Jan 1998                [Page 12]
  1166.  
  1167.  
  1168.  
  1169. ietf-draft-calsch-mod-01.txt   Internet Calendar Model   J. Noerenberg
  1170.  
  1171.  
  1172.  
  1173. 6. References
  1174.  
  1175. [RFC-821] Postel, J., "Simple Mail Transfer Protocol", STD 10, RFC
  1176.  
  1177. 821, USC/Information Sciences Institute, August 1982.
  1178.  
  1179.  
  1180. [RFC-822] Crocker, D., "Standard for the Format of ARPA Internet Text
  1181.  
  1182. Messages", STD 11, RFC 822, UDEL, August 1982.
  1183.  
  1184.  
  1185. [RFC-2045] Borenstein, N. & Freed, N., "Multipurpose Internet Mail
  1186.  
  1187. Extensions (MIME) Part One: Format of Internet Message Bodies", RFC
  1188.  
  1189. 2045, Nov 1996
  1190.  
  1191.  
  1192. [RFC-2046] Borenstein, N. & Freed, N., "Multipurpose Internet Mail
  1193.  
  1194. Extensions MIME) Part Two: Media Types", RFC 2046, Nov 1996
  1195.  
  1196.  
  1197. [RFC-2047] Borenstein, N. & Freed, N., "MIME (Multipurpose Internet
  1198.  
  1199. Mail Extensions) Part Three: Message Header Extensions for Non-ASCII
  1200.  
  1201. Text", RFC 2047, Nov 1996
  1202.  
  1203.  
  1204. [RFC-2048] Borenstein, N. & Freed, N., "Multipurpose Internet Mail
  1205.  
  1206. Extensions (MIME) Part Four: Registration Procedures", RFC 2048, Nov
  1207.  
  1208. 1996
  1209.  
  1210.  
  1211. [RFC-2049] Borenstein, N. & Freed, N., "Multipurpose Internet Mail
  1212.  
  1213. Extensions (MIME) Part Five: Conformance Criteria and Examples", RFC
  1214.  
  1215. 2049, Nov 1996
  1216.  
  1217.  
  1218. [RFC-2068] Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
  1219.  
  1220. Berners-Lee, T., "Hypertext Transfer Protocol -- HTTP/1.1", RFC 2068,
  1221.  
  1222. Jan 1997
  1223.  
  1224.  
  1225. [iCalendar] Dawson, F. & Stenerson, D., "Internet Calendaring and
  1226.  
  1227. Scheduling Core Object Specification" ietf-calsch-ical-01.txt, March,
  1228.  
  1229. 1997
  1230.  
  1231.  
  1232. [iTIP1] Silverberg, S., Mansour, S., Dawson, F., & Hopson, R.,
  1233.  
  1234. "iCalendar Transport-Independent Interoperability Protocol (iTIP) Part
  1235.  
  1236. One: Scheduling Events and BusyTime",
  1237.  
  1238. draft-ietf-calsch-itip-part1-00.txt, Jul 1997
  1239.  
  1240.  
  1241. [iTIP2] Silverberg, S., Mansour, S., Dawson, F., & Hopson, R.,
  1242.  
  1243. "iCalendar Transport-Independent Interoperability Protocol (iTIP) Part
  1244.  
  1245. Two: Scheduling To-Dos", draft-ietf-calsch-itip-part2-00.txt, Jul 1997
  1246.  
  1247.  
  1248. [iTIP3] Silverberg, S., Mansour, S., Dawson, F., & Hopson, R.,
  1249.  
  1250. "iCalendar Transport-Independent Interoperability Protocol (iTIP) Part
  1251.  
  1252. Three: Scheduling Journal Entries",
  1253.  
  1254. draft-ietf-calsch-itip-part3-00.txt, Jul 1997
  1255.  
  1256.  
  1257.  
  1258. [CAP] "Calendar Access Protocol"
  1259.  
  1260.  
  1261.  
  1262.  
  1263. Noerenberg                   Expires Jan 1998                [Page 13]
  1264.  
  1265.  
  1266.  
  1267. ietf-draft-calsch-mod-01.txt   Internet Calendar Model   J. Noerenberg
  1268.  
  1269.  
  1270.  
  1271. 7. Acknowledgments
  1272.  
  1273. The author is extremely grateful for the assistance, patience and
  1274.  
  1275. tolerance of the members of the CalSch working group.  Their ideas and
  1276.  
  1277. suggestions are crucial to making this a useful document.  In
  1278.  
  1279. particular, the author would like to thank
  1280.  
  1281. Anik Ganguly
  1282.  
  1283. Derik Stenerson
  1284.  
  1285. Frank Dawson
  1286.  
  1287. Gilles Fortin
  1288.  
  1289. Einar Stefferud
  1290.  
  1291. Their comments and ideas were particularly important in the
  1292.  
  1293. formulation of this draft.  I would also like to thank Qualcomm,
  1294.  
  1295. Incorporated for allowing the time necessary to bring this effort to
  1296.  
  1297. fruition.
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303.  
  1304.  
  1305.  
  1306.  
  1307.  
  1308.  
  1309. 8. Author's address
  1310.  
  1311.  
  1312. For more information, please contact the author via Internet Mail.
  1313.  
  1314.  
  1315. John W. Noerenberg, II
  1316.  
  1317. Qualcomm, Incorporated
  1318.  
  1319. 6455 Lusk Blvd
  1320.  
  1321. San Diego, CA 92131
  1322.  
  1323. USA
  1324.  
  1325.  
  1326. email: jwn2@qualcomm.com
  1327.  
  1328. ph: +1 619 658 3510
  1329.  
  1330.  
  1331.  
  1332. The "Internet Calendar Model Specification" is the work of the
  1333. Internet
  1334.  
  1335. Engineering Task Force Working Group on Calendaring and Scheduling.
  1336.  
  1337. The chairman of that group, Anik Ganguly, may be reached at:
  1338.  
  1339.  
  1340. Anik Ganguly
  1341.  
  1342. Campbell Services, Inc.
  1343.  
  1344. 21700 Northwestern Highway
  1345.  
  1346. 10th Floor
  1347.  
  1348. Southfield, MI 48075
  1349.  
  1350. email: anik@ontime.com
  1351.  
  1352.  
  1353.  
  1354.  
  1355.  
  1356.  
  1357. Noerenberg                   Expires Jan 1998                [Page 14]
  1358.  
  1359.  
  1360.  
  1361. ietf-draft-calsch-mod-01.txt   Internet Calendar Model   J. Noerenberg
  1362.  
  1363.  
  1364.  
  1365. 9. Appendix -- Calendar protocol nomenclature
  1366.  
  1367. Calendaring and Scheduling uses a rich lexicon of terms that are
  1368.  
  1369. specific to the problems of scheduling events and reconciling
  1370.  
  1371. conflicting requests for time and resources.  This document will
  1372.  
  1373. identify the major components of these systems, and show component
  1374.  
  1375. relationships.  However, for the sake of completeness and to serve as
  1376.  
  1377. an introduction to the protocols in general, a more extensive list of
  1378.  
  1379. terms, and brief definitions are included here. Essential parts of the
  1380.  
  1381. system model have expanded definitions in this document where the
  1382.  
  1383. components of the model are introduced.
  1384.  
  1385.  
  1386. 9.1 Calendaring lexicon
  1387.  
  1388.  
  1389. Alarm, Reminder
  1390.  
  1391. An asynchronous mechanism providing feedback for a pending or past
  1392.  
  1393. event or to-do.
  1394.  
  1395.  
  1396. Busy Time
  1397.  
  1398. A period of time that is not available for scheduling.
  1399.  
  1400.  
  1401. Calendar
  1402.  
  1403. A particular collection of calendar objects.
  1404.  
  1405.  
  1406. Calendar Object
  1407.  
  1408. The objects that can be found in a calendar.  The objects are
  1409.  
  1410. events, to-dos, journals, free/busies, time zones and alarms. 
  1411.  
  1412. Objects also include properties and may include other objects. 
  1413.  
  1414. A calendar object is identified by unique delimiters.
  1415.  
  1416.  
  1417. Calendar Date
  1418.  
  1419. A day identified by its position within the calendar year.
  1420.  
  1421.  
  1422. Calendar Scale
  1423.  
  1424. A particular type of calendar year, for example, Gregorian, Buddhist
  1425.  
  1426. Era, Japanese Emperor Era, Chinese Lunar, Islamic, and Jewish
  1427.  
  1428. Calendars.
  1429.  
  1430.  
  1431. Calendar Service
  1432.  
  1433. A Calendar Service (CS) stores a collection of calendars and interacts
  1434.  
  1435. with the Calendar User Agent (CUA) via the Calendar Access Protocol
  1436.  
  1437. (CAP).
  1438.  
  1439.  
  1440. Calendar User Agent (CUA)
  1441.  
  1442. A CUA mediates the interactions between a calendar user and his
  1443.  
  1444. calendar.  It represents the information stored in the calendar to the
  1445.  
  1446. user, and enables the user to manipulate it. This is a particular
  1447.  
  1448. instance of the interactive process used by a calendar user.
  1449.  
  1450.  
  1451. Coordinate Universal Time (UTC)
  1452.  
  1453. The time scale maintained by the Bureau International de l'Heure
  1454.  
  1455. (International Time Bureau). UTC is often incorrectly referred to as
  1456.  
  1457. GMT.
  1458.  
  1459.  
  1460. Noerenberg                   Expires Jan 1998                [Page 15]
  1461.  
  1462.  
  1463.  
  1464. ietf-draft-calsch-mod-01.txt   Internet Calendar Model   J. Noerenberg
  1465.  
  1466.  
  1467.  
  1468. Daylight Saving Time (DST)
  1469.  
  1470. An adjustment to local time to accommodate annual changes in the
  1471.  
  1472. number of daylight hours. DST is also known as Advanced Time, Summer
  1473.  
  1474. Time, or Legal Time. Daylight Saving Time adjustments in the Southern
  1475.  
  1476. Hemisphere are opposite to those in the Northern Hemisphere.
  1477.  
  1478.  
  1479. Event
  1480.  
  1481. A calendar object that defines a scheduled activity, minimally
  1482.  
  1483. specified by a start and end calendar date and time of day and a
  1484.  
  1485. description.
  1486.  
  1487.  
  1488. Free Time
  1489.  
  1490. A period of time available for scheduling on a calendar.
  1491.  
  1492.  
  1493. FreeBusy
  1494.  
  1495. FreeBusy objects describe blocks of allocated and unallocated time
  1496.  
  1497. on a calendar. They do not contain a description why the time is
  1498.  
  1499. allocated.
  1500.  
  1501.  
  1502. Gregorian Calendar
  1503.  
  1504. A calendar scale in general use beginning in 1582.  The Gregorian
  1505.  
  1506. Calendar scale is based on a solar calendar consisting of common years
  1507.  
  1508. made up of 365 days and leap years made up of 366 days; both divided
  1509.  
  1510. into 12 sequential months.
  1511.  
  1512.  
  1513. Journal
  1514.  
  1515. A calendar object that defines a collection of information intended
  1516.  
  1517. for human presentation and is minimally specified by a calendar date
  1518.  
  1519. and one or more descriptions.
  1520.  
  1521.  
  1522. Local Time
  1523.  
  1524. The clock time in public use in a locale. Local time is often
  1525.  
  1526. referenced by the customary name for the time zone in which it is
  1527.  
  1528. located. The relationship between local time and UTC is based on the
  1529.  
  1530. offset(s) that are in use for a particular time zone. In general, the
  1531.  
  1532. formula is as follows:
  1533.  
  1534.  
  1535. local time = UTC + (offset)
  1536.  
  1537.  
  1538. Period
  1539.  
  1540. A duration of time, specified as either a defined length of time or by
  1541.  
  1542. its beginning and end points.
  1543.  
  1544.  
  1545. Properties
  1546.  
  1547. Attributes that apply to calendar objects or calendars. A calendar
  1548.  
  1549. object is a named set of properties.  Properties can also be used
  1550.  
  1551. to produce variants to suit a particular purpose.
  1552.  
  1553.  
  1554. Recurrence Rule
  1555.  
  1556. A notation used to represent repeating occurrences, or the exceptions
  1557.  
  1558. to such a repetition of an event or a to-do. The recurrence rule can
  1559.  
  1560. also be used in the specification of a time zone description.
  1561.  
  1562.  
  1563. Noerenberg                   Expires Jan 1998                [Page 16]
  1564.  
  1565.  
  1566.  
  1567. ietf-draft-calsch-mod-01.txt   Internet Calendar Model   J. Noerenberg
  1568.  
  1569.  
  1570.  
  1571. Repeating Event or To-do
  1572.  
  1573. An event or to-do that repeats for one or more additional occurrences.
  1574.  
  1575. The recurrence may be defined with discrete dates and times and/or
  1576.  
  1577. with a recurrence rule.
  1578.  
  1579.  
  1580. Standard Time
  1581.  
  1582. Introduced by Sir Sanford Fleming and others around 1870, standard
  1583.  
  1584. time is a scheme for dividing the world into zones where the same time
  1585.  
  1586. would be kept. The original proposal was to divide the world into 24
  1587.  
  1588. zones, each zone having a width of 15 degrees of longitude. The center
  1589.  
  1590. zone was originally the meridian passing through Greenwich, England,
  1591.  
  1592. called Greenwich Mean Time (GMT). The time in the zones was
  1593.  
  1594. decremented by one hour per zone going westwards and was incremented
  1595.  
  1596. by one hour per zone going eastwards from GMT. Changes have been made
  1597.  
  1598. to the original proposal to accommodate political boundaries. In
  1599.  
  1600. addition, some countries and regions specify 30 or 45 minute offsets,
  1601.  
  1602. rather than the full 60 minute offset. Standard time is also known as
  1603.  
  1604. Winter Time in some regions.
  1605.  
  1606.  
  1607. GMT and UTC are generally equivalent. However, by international
  1608.  
  1609. agreement, the GMT term is discouraged in favor of the term UTC for
  1610.  
  1611. all general time keeping.
  1612.  
  1613.  
  1614. Time Zone
  1615.  
  1616. A geographic region to which a specified offset from UTC applies. 
  1617.  
  1618. While offsets can frequently be calculated by knowing the longitudinal
  1619.  
  1620. distance from Greenwich, England, local conventions frequently alter
  1621.  
  1622. the calculation, complicating the determination of local time.  Local
  1623.  
  1624. convention may also assign a label to identify the time zone.  There
  1625.  
  1626. is no world-wide standard for labels.
  1627.  
  1628.  
  1629. To-do
  1630.  
  1631. A calendar object that defines an action item and is minimally
  1632.  
  1633. specified by an effective calendar date and time of day, a due
  1634.  
  1635. calendar date and time of day, a priority and a description.
  1636.  
  1637.  
  1638.  
  1639.  
  1640.  
  1641.  
  1642.  
  1643.  
  1644.  
  1645.  
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.  
  1655. Noerenberg                   Expires Jan 1998                [Page 17]
  1656.  
  1657.  
  1658. john noerenberg
  1659.  
  1660. jwn2@qualcomm.com
  1661.  
  1662. pager: jwn2@pager.qualcomm.com
  1663.  
  1664.