INTERNET-DRAFT Alec Dun, Microsoft Corporation Denis Hennessy, ISOCOR Frank Dawson, Lotus Expires six months from March 13, 1998 Calendar attributes for vCard and LDAP draft-dun-calsch-locate-02.txt 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 and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." To view the entire list of current Internet-Drafts, please check the "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow Directories on ftp.is.co.za (Africa), ftp.nordu.net (Europe), munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or ftp.isi.edu (US West Coast). Abstract When scheduling 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 (URL) individual user's calendar and free/busy time. This draft defines three mechanisms for obtaining a URL to a user's calendar and free/busy time. These include: - Manual transfer of the information; - Personal data exchange using the vCard format; and - Directory lookup using the LDAP protocol. 1. URLs This draft defines four classes of URLs. URLs are more useful if it is understood what the URLs point to. Here is a brief description: Dun, Hennessy, Dawson [Page 1] INTERNET-DRAFT Calendar attributes for vCard/LDAP February 1998 1.1. Free/Busy URL (FBURL) The free/busy URL 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 URL 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 [9] 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 [9]. For example: BEGIN:VCALENDAR VERSION:2.0 PRODID:-//hacksw/handcal//NONSGML v1.0//EN METHOD:PUBLISH BEGIN:VFREEBUSY ATTENDEEMAILTO:jane_doe@host1.com DTSTART:19971013T050000Z DTEND:19971124T050000Z DTSTAMP:19970901T083000Z FREEBUSY:19971015T133000Z/19971015T180000Z FREEBUSY:19971015T190000Z/19971015T220000Z END:VFREEBUSY END:VCALENDAR The amount of busy time data associated pointed to by the FBURL will generally be pre-determined; for example one monthof free/busy inforation. 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 URL points to a file resource, it is recommended that the file extension be "ifb" to distinguish it from an arbitrary iCalendar object. 1.2 Calendar Address URL (CALADRURL) The calendar address URL 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 URL 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" URL containing the user's e-mail address. For example: "mailto:user@host1.com" Dun, Hennessy, Dawson [Page 2] INTERNET-DRAFT Calendar attributes for vCard/LDAP February 1998 The URL for an iRIP user is yet to be defined, but that is another possible URL value in this property. 1.3. Calendar Access URL (CAPURL) The Calendar Access URL 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 URL 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 URL (CALURL)h The Calendar URL is defined to be a protocol independent location from which a calendaring and scheduling client (ie. CUA) can retrieve an entire copy of a user's calendar. Retrieving data from this URL obtains a published "snapshot" of the user's calendar. HTTP URL. If the URL is an HTTP URL, then the content returned with a GET should be a "text/calendar" MIME body part containing one or more iCalendar object. FTP URL. If the URL is an FTP URL, then the resource pointed to should be a file with an "ics" file extension containing one or more iCalendar objects. 1.5. Default URLs There are many cases where a user may have more than one calendar. In these cases, a user may have multiple URLs, each URL 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 URLs provide valuable pointers to calendaring and scheduling data that other users need in order to know when to Dun, Hennessy, Dawson [Page 3] INTERNET-DRAFT Calendar attributes for vCard/LDAP February 1998 schedule meetings, etc. There are several possibilities on how users can communicate these URLs to other users. The following section outlines how these URLs can be distributed to other users. 2.1. Manual Transfer The simplest way to obtain these URLs is for a user to communicate the URLs using some out-of-band mechanism such as verbally, in an e- mail message, or by printing these URLs on a paper business card. When using this mechanism, the user obtains these URLs using an out- of-band mechanism and then enters these URLs into their calendaring software manually. 2.2. Personal Data Exchange Using A vCard A more sophisticated way to obtain these URLs is for users to publish vCards containing these URLs. 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 URLs. On the receiving end, an e-mail client that provides an integrated vCard database can provide a way to lookup calendaring URLs for users whose vCards are stored locally. 2.2.1. vCard Schema Extensions Since the vCard [8] specification doesn't specify how to encode calendaring URLs in a vCard, this section is provided as an extension to vCard which specifies how to encode calendaring URLs within a vCard. Inside a vCard object, four new properties are defined: "CALURL", 'CAPURL', 'CALADRURL', 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 "CALURL". BEGIN:VCARD VERSION:3.0 Dun, Hennessy, Dawson [Page 4] INTERNET-DRAFT Calendar attributes for vCard/LDAP February 1998 FN:Alec Dun N:Dun;Alec 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 CALADRURL;PREF:mailto:user@host1.com CALURL;PREF:http://cal.host1.com/user/cal.ics FBURL;PREF:http://cal.host1.com/user/fb.ifb CALURL:http://cal.company.com/projectA/pjtA.ics FBURL:http://cal.company.com/projectA/pjtAfb.ifb END:VCARD 2.2.1.1 CALURL Property IANA Registration To: ietf-mime-directory@imc.org Subject: Registration of CALURL type for application/directory MIME type vCard profile. Type name: CALURL Type purpose: To specify the URL for a user's calendar in a vCard object. Type encoding: 8bit Type value: A single url value. Type special notes: Where multiple CALURL properties are specified, the default CALURL property is indicated with the PREF parameter. The property should contain a URL 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". Type examples: CALURL;PREF:http://cal.host1.com/calA CALURL:ftp://ftp.host1.com/calA.ics 2.2.1.2 FBURL Property IANA Registration To: ietf-mime-directory@imc.org Subject: Registration of FBURL type for application/directory MIME type vCard profile. Type name: FBURL Type purpose: To specify the URL for a user's busy time in a vCard object. Type encoding: 8bit Type value: A single url 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 URL points to an iCalendar object associated with a snapshot of the last six weeks of the Dun, Hennessy, Dawson [Page 5] INTERNET-DRAFT Calendar attributes for vCard/LDAP February 1998 user's busy time data. If the iCalendar object is represented as a file or document, it's file type should be "ifb". Type examples: FBURL;PREF:http://www.host1.com/busy/janedoe FBURL:FTP://ftp.host.com/busy/project-a.ifb 2.2.1.3 CALADRURL Property IANA Registration To: ietf-mime-directory@imc.org Subject: Registration of CALADRURL type for application/directory MIME type vCard profile. Type name: CALADRURL Type purpose: To specify the location to which an event request should be sent for the user. Type encoding: 8bit Type value: A single url value. Type special notes: Where multiple CALADRURL properties are specified, the default CALADRURL property is indicated with the PREF parameter. Type examples: CALADRURL;PREF:mailto:janedoe@host.com 2.2.1.4 CAPURL Property IANA Registration To: ietf-mime-directory@imc.org Subject: Registration of CAPURL type for application/directory MIME type vCard profile. Type name: CAPURL 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 url value. Type special notes: Where multiple CAPURL properties are specified, the default CAPURL property is indicated with the PREF parameter. 2.3. Directory Lookup Using The LDAP v3 Protocol Another way to obtain these URLs is to look them up in a directory using the LDAP protocol. If an organizer knows an attendee's e-mail address, then using DNS, the attendee's directory server can be found. The mechanism for this is described in detail in [7]. From the directory server, the Dun, Hennessy, Dawson [Page 6] INTERNET-DRAFT Calendar attributes for vCard/LDAP February 1998 client can look up the URLs for a user's calendar. Here's a summar how it works, for more detail, please see the draft [7]. The client first parses the domain name out from the rfc822 mailbox name. For the fictitious mailbox "janedoe@host1.com", the domain name would be "host1.com". Given the domain name, the client prepends "ldap.tcp" to the domain name and formulating a host. Next the client retrieves the queries the DNS server for the SRV record for "ldap.tcp.host1.com". The mechanism for adding "ldap.tcp" onto the original domain name is described in detail in [5]. The DNS server returns the IP address for the associated server for 'ldap.tcp.host1.com'. Once the IP address for the LDAP server has been obtained, the client constructs a DN from which to search using the DNS name. In this case, it would be "DC=host1,DC=COM". The mechanism to construct the DN is described in detail in [6]. With the IP address and the DN, the client issues a search request to the server where the attribute named "mail" [4] "equalityMatch"es the user's email address. From the first matching entry, client obtains the calendaring and scheduling URLs. If a user's URLs can be found using directory lookup, they should, in general, be considered "more up-to-date" than URLs in any vCards that are stored locally. 2.3.1. LDAP Schema Extensions In order to encode the calendaring URLs in the directory, the following are defined: one object class: @ calEntry and eight attributes: @ calCalURL @ calFBURL @ calCAPURL @ calCalAdrURL @ calOtherCalURLs @ calOtherFBURLs @ calOtherCAPURLs @ calOtherCalAdrURLs The calCalURL contains the URL to a snapshot of the user's entire default calendar. The calFBURL contains the URL to the user's default busy time data. The calCAPURL contains a URL that can be Dun, Hennessy, Dawson [Page 7] INTERNET-DRAFT Calendar attributes for vCard/LDAP February 1998 used to communicate with the user's calendar. The calCalAdrURL contains a URL that points to the location to which event requests should be sent for that user. The calOtherCalURLs is a multi-valued property containing URLs to snapshots of other calendars that the user may have. The calOtherFBURLs is a multi-valued property containing URLs to other free/busy data that the user may have. The calOtherCAPURLs attribute is a multi-valued property containing URLs to other calendars that the user may have. The calOtherCalAdrURLs attribute is a multi-valued property containing URLs 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.3.2. Notation The notation used in this document is the same as that used in [2]. 2.3.3. Object Definitions 2.3.3.1. calEntry The Calendar Entry is an class derived from top [2], which contains the eight calendaring attributes. ( 1.2.840.113556.1.5.87 NAME 'calEntry' TOP AUXILIARY MAY (calCalendarInfo) ) 2.3.4. Attribute Definitions 2.3.4.1. calCalURL ( 1.2.840.113556.1.4.478 NAME 'calCalURL' EQUALITY caseIgnoreMatch SUBSTRING caseIgnoreMatch SYNTAX 'Directory String' USAGE userApplications ) 2.3.4.2. calFBURL Dun, Hennessy, Dawson [Page 8] INTERNET-DRAFT Calendar attributes for vCard/LDAP February 1998 ( 1.2.840.113556.1.4.479 NAME 'calFBURL' EQUALITY caseIgnoreMatch SUBSTRING caseIgnoreMatch SYNTAX 'Directory String' USAGE userApplications ) 2.3.4.3. calCAPURL ( 1.2.840.113556.1.4.480 NAME 'calCAPURL' EQUALITY caseIgnoreMatch SUBSTRING caseIgnoreMatch SYNTAX 'Directory String' USAGE userApplications ) 2.3.4.4. calCalAdrURL ( 1.2.840.113556.1.4.481 NAME 'calCalAdrURL' EQUALITY caseIgnoreMatch SUBSTRING caseIgnoreMatch SYNTAX 'Directory String' USAGE userApplications ) 2.3.4.5. calOtherCalURLs ( 1.2.840.113556.1.4.482 NAME 'calOtherCalURLs' EQUALITY caseIgnoreMatch SUBSTRING caseIgnoreMatch SYNTAX 'Directory String' MULTI-VALUE USAGE userApplications ) 2.3.4.6. calOtherFBURLs ( 1.2.840.113556.1.4.483 NAME 'calOtherFBURLs' EQUALITY caseIgnoreMatch Dun, Hennessy, Dawson [Page 9] INTERNET-DRAFT Calendar attributes for vCard/LDAP February 1998 SUBSTRING caseIgnoreMatch SYNTAX 'Directory String' MULTI-VALUE USAGE userApplications ) 2.3.4.7. calOtherCAPURLs ( 1.2.840.113556.1.4.484 NAME 'calOtherCAPURLs' EQUALITY caseIgnoreMatch SUBSTRING caseIgnoreMatch SYNTAX 'Directory String' MULTI-VALUE USAGE userApplications ) 2.3.4.8. calOtherCalAdrURLs ( 1.2.840.113556.1.4.485 NAME 'calOtherCalAdrURLs' EQUALITY caseIgnoreMatch SUBSTRING caseIgnoreMatch SYNTAX 'Directory String' MULTI-VALUE USAGE userApplications ) Authors' Addresses BEGIN:VCARD VERSION:2.1 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:alecdu@Microsoft.com CALADRURL:MAIL-TO:alecdu@Microsoft.com END:VCARD BEGIN:VCARD VERSION:2.1 N:Hennessy;Denis FN:Denis Hennessy Dun, Hennessy, Dawson [Page 10] INTERNET-DRAFT Calendar attributes for vCard/LDAP February 1998 ORG:ISOCOR ADR;WORK;POSTAL;PARCEL:;;42-47 Lower Mount St; Dublin 2;Ireland TEL;WORK;MSG:+353-1-676-0366 TEL;WORK;FAX:+353-1-676-0856 EMAIL;INTERNET:denis.hennessy@isocor.com CALADRURL:MAIL-TO:denis.hennessy@isocor.com END:VCARD 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;PREF:Frank_Dawson@Lotus.com EMAIL;INTERNET:fdawson@earthlink.net CALADRURL;PREF:MAIL-TO:Frank_Dawson@Lotus.com CALADRURL:MAIL-TO:fdawson@earthlink.net URL:http://home.earthlink.net/~fdawson END:VCARD 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] M. Wahl, A Summary of the X.500(96) User Schema for use with LDAPv3', RFC 2256, , December 1997 [4] Network Applications Consortium 'Lightweight Internet Person Schema', April 1997, [5] A. Gulbrandsen, P. Vixie, "A DNS RR for specifying the location of services (DNS SRV)", RFC 2052, , October 1996. [6] S. Kille, M. Wahl, A. Grimstad, R.Huber, S.Sataluri, " Using Domains in LDAP/X.500 Distinguished Names", INTERNET-DRAFT , September 1997. [7] P. Leach 'Locating Native Internet LDAP Servers', Dun, Hennessy, Dawson [Page 11] INTERNET-DRAFT Calendar attributes for vCard/LDAP February 1998 INTERNET DRAFT , March 1997 [8] F. Dawson, T. Howes, 'vCard MIME Directory Profile', INTERNET-DRAFT , July 1997 [9] F. Dawson, D. Stenerson 'Internet Calendaring and Scheduling Core Ojbect Specification (iCalendar)', INTERNET DRAFT , November 1997. Dun, Hennessy, Dawson [Page 12]