Network Working Group Tony Small, Microsoft Corporation INTERNET-DRAFT Denis Hennessy, ISOCOR Calendaring and Scheduling Working Group Frank Dawson, Lotus Expires six months after April 1, 1999 Calendar attributes for vCard and LDAP draft-ietf-calsch-locating-04.txt Status of this Memo This memo is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. 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 and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet- Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Distribution of this document is unlimited. Copyright (C) The Internet Society 1999. All Rights Reserved. Abstract When scheduling a calendar entity, such as an event, it is a prerequisite that an organizer has the calendar address of each attendee that will be invited to the event. Additionally, access to an attendee's current "busy time" provides an a priori indication of whether the attendee will be free to participate in the event. In order to meet these challenges, a calendar user agent (CUA) needs a mechanism to locate (URI) individual user's calendar and free/busy time. This memo defines three mechanisms for obtaining a URI to a user's calendar and free/busy time. These include: Small, Hennessy, Dawson -- Page 1 -- Expires October 1999 INTERNET-DRAFT Locating A Calendar User April 1, 1999 - Manual transfer of the information; - Personal data exchange using the vCard format; and - Directory lookup using the LDAP protocol. Small, Hennessy, Dawson -- Page 2 -- Expires October 1999 INTERNET-DRAFT Locating A Calendar User April 1, 1999 Table of Contents 1 CALENDARING AND SCHEDULING URIS......................................5 1.1 FREE/BUSY URI (FBURL) ............................................5 1.2 CALENDAR ADDRESS URI (CALADRURI) .................................6 1.3 CALENDAR ACCESS URI (CAPURI) .....................................6 1.4 CALENDAR URI (CALURI) ............................................6 1.5 DEFAULT URIS .....................................................7 2 DISTRIBUTION.........................................................7 2.1 MANUAL TRANSFER ..................................................7 2.2 PERSONAL DATA EXCHANGE USING A VCARD .............................7 2.3 VCARD SCHEMA EXTENSIONS ..........................................8 2.3.1 FBURL Property IANA Registration ..............................8 2.3.2 CALADRURI Property IANA Registration ..........................9 2.3.3 CAPURI Property IANA Registration ............................10 2.3.4 CALURI Property IANA Registration ............................10 2.4 DIRECTORY LOOKUP USING THE LDAP V3 PROTOCOL .....................11 2.4.1 LDAP Schema Extensions .......................................11 2.4.2 Notation .....................................................12 2.4.3 Object Definitions ...........................................12 2.4.3.1 calEntry .................................................12 2.4.4 Attribute Definitions ........................................12 2.4.4.1 calCalURI ................................................12 2.4.4.2 calFBURL .................................................13 2.4.4.3 calCAPURI ................................................13 2.4.4.4 calCalAdrURI .............................................13 2.4.4.5 calOtherCalURIs ..........................................13 2.4.4.6 calOtherFBURLs ...........................................14 2.4.4.7 calOtherCAPURIs ..........................................14 2.4.4.8 calOtherCalAdrURIs .......................................14 3 IANA CONSIDERATIONS.................................................14 4 SECURITY CONSIDERATIONS.............................................15 5 ACKNOWLEDGMENTS.....................................................15 Small, Hennessy, Dawson -- Page 3 -- Expires October 1999 INTERNET-DRAFT Locating A Calendar User April 1, 1999 6 AUTHORS'S ADDRESSES.................................................15 7 BIBLIOGRAPHY........................................................17 8 FULL COPYRIGHT STATEMENTS...........................................17 Small, Hennessy, Dawson -- Page 4 -- Expires October 1999 INTERNET-DRAFT Locating A Calendar User April 1, 1999 1 Calendaring and Scheduling URIs This memo defines four classes of URIs. URIs are more useful if it is understood what the URIs point to. Here is a brief description: 1.1 Free/Busy URI (FBURL) The free/busy URI is defined to be a transport independent location where a client can obtain information about when a user is busy. At the present time, this URI only points to busy time data. Future revisions of this specification may provide for the extended capability of publishing free time data. If a calendaring and scheduling client (i.e., CUA) were to retrieve data from this location using FTP or HTTP, it would get back an iCalendar object [4] containing one or more "VFREEBUSY" calendar components. If a MIME transport is being used, the response will be contained within a "text/calendar" MIME body part as specified in the iCalendar specification [4]. For example: BEGIN:VCALENDAR VERSION:2.0 PRODID:-//hacksw/handcal//NONSGML v1.0//EN METHOD:PUBLISH BEGIN:VFREEBUSY ATTENDEE:MAILTO:jane_doe@host1.com DTSTART:19971013T050000Z DTEND:19971124T050000Z DTSTAMP:19970901T083000Z FREEBUSY:19971015T133000Z/19971015T180000Z FREEBUSY:19971015T190000Z/19971015T220000Z FBURL:http://www.host.com/calendar/busy/jdoe.ifb END:VFREEBUSY END:VCALENDAR The amount of busy time data pointed to by the FBURL will generally be pre-determined; for example one month of busy time data. As a guideline, it is recommended that the previous six weeks of busy time data be published at the location associated with the FBURL. If this URI points to a file resource, it is recommended that the file extension be "ifb" to distinguish it from an arbitrary iCalendar object (e.g., with the "ics" file extension). Small, Hennessy, Dawson -- Page 5 -- Expires October 1999 INTERNET-DRAFT Locating A Calendar User April 1, 1999 1.2 Calendar Address URI (CALADRURI) The calendar address URI is defined to be a transport independent communication end-point for a user. The organizer's calendaring and scheduling client (ie. CUA) would use this URI to determine where to send an event request when organizing a meeting with a particular attendee. If the user prefers to receive event requests via iMIP, then the user would provide a "mailto" URI containing the user's e-mail address. [5] For example: mailto:user@host1.com The URI for an iRIP user is yet to be defined, but that is another possible URI value in this property. 1.3 Calendar Access URI (CAPURI) The Calendar Access URI is defined to be a protocol independent location from which a calendaring and scheduling client (i.e., CUA) can communicate with a user's entire calendar. The semantics for using this URI as an access protocol locator are yet to be defined by the IETF CALSCH Working Group. This will be addressed in the "Calendar Access Protocol" specification. 1.4 Calendar URI (CALURI) The Calendar URI is defined to be a protocol independent location from which a calendaring and scheduling client (i.e. CUA) can retrieve an entire copy of a user's calendar. Retrieving data from this URI obtains a published "snapshot" of the user's calendar. HTTP URI -- If the URI is an HTTP URI, then the content returned with a GET should be a "text/calendar" MIME body part containing one or more iCalendar object. FTP URI -- If the URI is an FTP URI, then the resource pointed to should be a file with an "ics" file extension containing one or more iCalendar objects. Small, Hennessy, Dawson -- Page 6 -- Expires October 1999 INTERNET-DRAFT Locating A Calendar User April 1, 1999 1.5 Default URIs There are many cases where a user may have more than one calendar. In these cases, a user may have multiple URIs, each URI pointing to a calendar or free/busy data. To make the case of multiple calendars simpler for clients, the concept of the "default" calendar is introduced. A "default" calendar is one that the user has designated as the calendar that other users should look at when accessing the user's calendar, or retrieving the user's free/busy time. The default calendar may, in fact, include rolled-up information from all the user's other calendars. The other calendars may only exist for organizational purposes. 2 Distribution These four URIs provide valuable pointers to calendaring and scheduling data that other users need in order to know when to schedule meetings, etc. There are several possibilities on how users can communicate these URIs to other users. The following section outlines how these URIs can be distributed to other users. 2.1 Manual Transfer The simplest way to obtain these URIs is for a user to communicate the URIs using some out-of-band mechanism such as verbally, or in an e-mail message, or by printing these URIs on a paper business card. When using this mechanism, the user obtains these URIs using an out-of- band mechanism and then enters these URIs into their calendaring software manually. 2.2 Personal Data Exchange Using A vCard A more sophisticated way to obtain these URIs is for users to publish vCards containing these URIs. The vCard object can be transferred between one another. Since many e-mail clients allow a user to automatically include a vCard with every message that the user sends, this provides a simple, transparent way for a user to distribute their calendaring and scheduling URIs. On the receiving end, an e-mail client that provides an integrated vCard database can provide a way to lookup calendaring URIs for users whose vCards are stored locally. Small, Hennessy, Dawson -- Page 7 -- Expires October 1999 INTERNET-DRAFT Locating A Calendar User April 1, 1999 2.3 vCard Schema Extensions Since the vCard [3] specification doesn't specify how to encode calendaring URIs in a vCard, this section is provided as an extension to vCard which specifies how to encode calendaring URIs within a vCard. Inside a vCard object, four new properties are defined: "CALURI", "CAPURI", "CALADRURI", and "FBURL", as defined above. Any vCard can have one or more of these properties, each representing a calendar or free/busy time that is associated with the user. One of these properties can be designated as the "default" by adding the "PREF" parameter. Here is a simple example of a vCard containing a "FBURL" and a "CALURI". BEGIN:VCARD VERSION:3.0 N:Dun;Alec FN:Alec Dun ORG:Microsoft Corporation ADR;WORK;POSTAL;PARCEL:;;One Microsoft Way; Redmond;WA;98052-6399;USA TEL;WORK;MSG:+1-206-936-4544 TEL;WORK;FAX:+1-206-936-7329 EMAIL;INTERNET:user@host1.com CALADRURI;PREF:mailto:user@host1.com CALURI;PREF:http://cal.host1.com/user/cal.ics FBURL;PREF:http://cal.host1.com/user/fb.ifb CALURI:http://cal.company.com/projectA/pjtA.ics FBURL:http://cal.company.com/projectA/pjtAfb.ifb END:VCARD 2.3.1 FBURL Property IANA Registration To: ietf-mime-directory@imc.org Subject: Registration of FBURL type for text/directory MIME type vCard profile. Type name: FBURL Type purpose: To specify the URI for a user's busy time in a vCard object. Small, Hennessy, Dawson -- Page 8 -- Expires October 1999 INTERNET-DRAFT Locating A Calendar User April 1, 1999 Type encoding: 8bit Type value: A single URI value. Type special notes: Where multiple FBURL properties are specified, the default FBURL property is indicated with the PREF parameter. The FTP or HTTP type of URI points to an iCalendar object associated with a snapshot of the last six weeks of the user's busy time data. If the iCalendar object is represented as a file or document, it's file type should be "ifb". Intended usage: Refer to section 1.1. Type examples: FBURL;PREF:http://www.host1.com/busy/janedoe FBURL:FTP://ftp.host.com/busy/project-a.ifb 2.3.2 CALADRURI Property IANA Registration To: ietf-mime-directory@imc.org Subject: Registration of CALADRURI type for application/directory MIME type vCard profile. Type name: CALADRURI Type purpose: To specify the location to which an event request should be sent for the user. Type encoding: 8bit Type value: A single URI value. Type special notes: Where multiple CALADRURI properties are specified, the default CALADRURI property is indicated with the PREF parameter. Intended usage: Refer to section 1.2. Type examples: CALADRURI;PREF:mailto:janedoe@host.com Small, Hennessy, Dawson -- Page 9 -- Expires October 1999 INTERNET-DRAFT Locating A Calendar User April 1, 1999 2.3.3 CAPURI Property IANA Registration To: ietf-mime-directory@imc.org Subject: Registration of CAPURI type for application/directory MIME type vCard profile. Type name: CAPURI Type purpose: To specify a protocol independent location from which a calendaring and scheduling client (i.e., CUA) can communicate with a user's entire calendar. Type encoding: 8bit Type value: A single URI value. Type special notes: Where multiple CAPURI properties are specified, the default CAPURI property is indicated with the PREF parameter. Intended usage: Refer to section 1.3. 2.3.4 CALURI Property IANA Registration To: ietf-mime-directory@imc.org Subject: Registration of CALURI type for text/directory MIME type vCard profile. Type name: CALURI Type purpose: To specify the URI for a user's calendar in a vCard object. Type encoding: 8bit Type value type: A single URI value. Type special notes: Where multiple CALURI properties are specified, the default CALURI property is indicated with the PREF parameter. The property should contain a URI pointing to an iCalendar object associated with a snapshot of the user's calendar store. If the iCalendar object is represented as a file or document, it's file type should be "ics". Intended usage: Refer to section 1.4. Small, Hennessy, Dawson -- Page 10 -- Expires October 1999 INTERNET-DRAFT Locating A Calendar User April 1, 1999 Type examples: CALURI;PREF:http://cal.host1.com/calA CALURI:ftp://ftp.host1.com/calA.ics 2.4 Directory Lookup Using The LDAP v3 Protocol Another way to obtain these URIs is to look them up in a directory using the LDAP protocol [1]. If a user's URIs can be found using directory lookup (i.e., searching for one of the LDAP schema extensions defined below), they should, in general, be considered "more up-to-date" than URIs in any vCards that are stored locally. 2.4.1 LDAP Schema Extensions In order to encode the calendaring URIs in the directory, the following are defined: - One object class: - calEntry - Eight attributes: - calCalURI - calFBURL - calCAPURI - calCalAdrURI - calOtherCalURIs - calOtherFBURLs - calOtherCAPURIs - calOtherCalAdrURIs The calCalURI contains the URI to a snapshot of the user's entire default calendar. The calFBURL contains the URI to the user's default busy time data. The calCAPURI represents contains a URI that can be used Small, Hennessy, Dawson -- Page 11 -- Expires October 1999 INTERNET-DRAFT Locating A Calendar User April 1, 1999 to communicate with the user's calendar. The calCalAdrURI contains a URI that points to the location to which event requests should be sent for that user. The calOtherCalURIs is a multi-valued property containing URIs to snapshots of other calendars that the user may have. The calOtherFBURLs is a multi-valued property containing URIs to other free/busy data that the user may have. The calOtherCAPURIs attribute is a multi-valued property containing URIs to other calendars that the user may have. The calOtherCalAdrURIs attribute is a multi-valued property containing URIs to other locations that a user may want event requests sent to. There is no predetermined order to the values in either multi-valued property. 2.4.2 Notation The notation used in this memo is the same as that used in [2]. 2.4.3 Object Definitions 2.4.3.1 calEntry The Calendar Entry is a class derived from "TOP" [2], which contains the four calendaring attributes. (1.2.840.113556.1.5.87 NAME 'calEntry' TOP AUXILIARY MAY (calCalURI calFBURL calOtherCalURIs calOtherFBURLs calCAPURI calOtherCAPURLs) ) 2.4.4 Attribute Definitions 2.4.4.1 calCalURI (1.2.840.113556.1.4.478 NAME 'calCalURI' EQUALITY caseIgnoreMatch SUBSTRING caseIgnoreMatch SYNTAX 'IA5String' USAGE userApplications Small, Hennessy, Dawson -- Page 12 -- Expires October 1999 INTERNET-DRAFT Locating A Calendar User April 1, 1999 ) 2.4.4.2 calFBURL (1.2.840.113556.1.4.479 NAME 'calFBURL' EQUALITY caseIgnoreMatch SUBSTRING caseIgnoreMatch SYNTAX 'IA5String' USAGE userApplications ) 2.4.4.3 calCAPURI (1.2.840.113556.1.4.480 NAME 'calCAPURI' EQUALITY caseIgnoreMatch SUBSTRING caseIgnoreMatch SYNTAX 'IA5String' USAGE userApplications ) 2.4.4.4 calCalAdrURI (1.2.840.113556.1.4.481 NAME 'calCalAdrURI' EQUALITY caseIgnoreMatch SUBSTRING caseIgnoreMatch SYNTAX 'IA5String' USAGE userApplications ) 2.4.4.5 calOtherCalURIs (1.2.840.113556.1.4.482 NAME 'calOtherCalURIs' EQUALITY caseIgnoreMatch SUBSTRING caseIgnoreMatch SYNTAX 'IA5String' MULTI-VALUE USAGE userApplications ) Small, Hennessy, Dawson -- Page 13 -- Expires October 1999 INTERNET-DRAFT Locating A Calendar User April 1, 1999 2.4.4.6 calOtherFBURLs (1.2.840.113556.1.4.483 NAME 'calOtherFBURLs' EQUALITY caseIgnoreMatch SUBSTRING caseIgnoreMatch SYNTAX 'IA5String' MULTI-VALUE USAGE userApplications ) 2.4.4.7 calOtherCAPURIs (1.2.840.113556.1.4.484 NAME 'calOtherCAPURIs' EQUALITY caseIgnoreMatch SUBSTRING caseIgnoreMatch SYNTAX 'IA5String' MULTI-VALUE USAGE userApplications ) 2.4.4.8 calOtherCalAdrURIs (1.2.840.113556.1.4.485 NAME 'calOtherCalAdrURIs' EQUALITY caseIgnoreMatch SUBSTRING caseIgnoreMatch SYNTAX 'IA5String' MULTI-VALUE USAGE userApplications ) 3 IANA Considerations This memo defines IANA registered extensions to the attributes defined by LDAP [1] and vCard [3]. IANA registration proposals for vCard are to be emailed to the registration agent for the "text/directory" MIME content-type, using the format defined in [3]. Small, Hennessy, Dawson -- Page 14 -- Expires October 1999 INTERNET-DRAFT Locating A Calendar User April 1, 1999 4 Security Considerations Standard vCard and LDAP security rules and support apply for the extensions described in this document, and there are no special security issues for these extensions. Please note, though, that LDAP servers may permit anonymous clients to refresh entries which they did not create. Servers are also permitted to control a refresh access to an entry by requiring clients to bind before issuing a RefreshRequest. This will have implications on the server performance and scalability. Please also note, though, that vCard objects may have been created by an entity other than that represented by the vCard. Recipients should be certain of the source that generated the vCard. Also, care should be taken in making use of information obtained from directory servers that has been supplied by client, as it may now be out of date. In many networks, for example, IP addresses are automatically assigned when a host connects to the network, and may be reassigned if that host later disconnects. An IP address obtained from the directory may no longer be assigned to the host that placed the address in the directory. This issue is not specific to LDAP or dynamic directories. 5 Acknowledgments The authors wish to acknowledge the work of Alec Dun, who acted as an author for the early drafts of this memo. In addition, this document received input from the various participants in the IETF CALSCH Working Group discussions. 6 Authors's Addresses The following address information is provided in a vCard v3.0 [3], Electronic Business Card, format. BEGIN:VCARD VERSION:3.0 N:Small;Tony FN:Tony Small ORG:Microsoft Corporation ADR;TYPE=WORK,POSTAL,PARCEL:;;One Microsoft Way; Redmond;WA;98052-6399;USA TEL;TYPE=WORK,MSG:+1-425-703-2190 TEL;TYPE=WORK,FAX:+1-206-936-7329 Small, Hennessy, Dawson -- Page 15 -- Expires October 1999 INTERNET-DRAFT Locating A Calendar User April 1, 1999 EMAIL;TYPE=INTERNET:tonysm@Microsoft.com CALADRURI:MAILTO:tonysm@Microsoft.com END:VCARD BEGIN:VCARD VERSION:3.0 N:Hennessy;Denis FN:Denis Hennessy ORG:ISOCOR ADR;TYPE=WORK,POSTAL,PARCEL:;;42-47 Lower Mount St; Dublin 2;Ireland TEL;TYPE=WORK,MSG:+353-1-676-0366 TEL;TYPE=WORK,FAX:+353-1-676-0856 EMAIL;TYPE=INTERNET:denis.hennessy@isocor.com CALADRURI:MAILTO:denis.hennessy@isocor.com END:VCARD BEGIN:VCARD VERSION:3.0 N:Dawson;Frank FN:Frank Dawson ORG:Lotus Development Corporation ADR;TYPE=WORK,POSTAL,PARCEL:;;6544 Battleford Drive; Raleigh;NC;27613-3502;USA TEL;TYPE=WORK,PREF:+1-617-693-8728 TEL;TYPE=WORK,MSG:+1-919-676-9515 TEL;TYPE=FAX:+1-617-693-8728 EMAIL;TYPE=INTERNET,PREF:Frank_Dawson@Lotus.com EMAIL;TYPE=INTERNET:fdawson@earthlink.net CALADRURI;TYPE=PREF:MAILTO:Frank_Dawson@Lotus.com CALADRURI:MAILTO:fdawson@earthlink.net URI:http://home.earthlink.net/~fdawson END:VCARD This memo is a result of the work of the Internet Engineering Task Force Calendaring and scheduling Working Group. The chairmen of that working group are: BEGIN:VCARD VERSION:3.0 N:Moskowitz;Robert FN:Robert Moskowitz EMAIL;TYPE=INTERNET:rgm-ietf@htt-consult.com END:VCARD Small, Hennessy, Dawson -- Page 16 -- Expires October 1999 INTERNET-DRAFT Locating A Calendar User April 1, 1999 BEGIN:VCARD VERSION:3.0 N:Egen;Pat FN:Pat Egen ORG:Egen Consulting, Inc.. ADR;TYPE=WORK,POSTAL,PARCEL:;;803 Creek Overlook; Chattanooga;TN;37415 TEL;TYPE=WORK,MSG:+1-423-875-2652 TEL;TYPE=WORK,FAX:+1-423-875-2017 EMAIL;TYPE=INTERNET:pregen@egenconsulting.com CALADRURI:MAILTO:pregen@egenconsulting.com END:VCARD 7 Bibliography [1] M. Wahl, T. Howes, S. Kille, 'Lightweight Directory Access Protocol (v3)', RFC 2251, December 1997, [2] M. Wahl, A. Coulbeck, T. Howes, S. Kille, 'Lightweight Directory Access Protocol (v3): Attribute Syntax Definitions', RFC 2252, December 1997, [3] F. Dawson, T. Howes, 'vCard MIME Directory Profile', RFC 2426, September 1998, [4] F. Dawson, D. Stenerson 'Internet Calendaring and Scheduling Core Object Specification (iCalendar)', RFC 2445, November 1997, [5] F. Dawson, S. Mansour `iCalendar Message-Based Interopability Protocal (iMIP)', November 1997, 8 Full Copyright Statements Copyright (C) The Internet Society (1999). All Rights Reserved. This memo and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this memo itself may Small, Hennessy, Dawson -- Page 17 -- Expires October 1999 INTERNET-DRAFT Locating A Calendar User April 1, 1999 not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This memo and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Small, Hennessy, Dawson -- Page 18 -- Expires October 1999