Network Working Group C. Joy Internet-Draft Oracle Intended status: Standards Track C. Daboo Expires: March 25, 2011 Apple Inc. M. Douglass RPI September 21, 2010 Schema for representing resources for calendaring and scheduling services draft-cal-resource-schema-02 Abstract This specification describes a schema for representing resources for calendaring and scheduling. A resource in the scheduling context is any shared entity that can be scheduled by a calendar user, but does not control its own attendance status. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. 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." This Internet-Draft will expire on March 25, 2011. Copyright Notice Copyright (c) 2010 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must Joy, et al. Expires March 25, 2011 [Page 1] Internet-Draft Schema for Resources September 2010 include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5 2. Conventions Used in This Document . . . . . . . . . . . . . . 5 3. General Considerations . . . . . . . . . . . . . . . . . . . . 5 4. Resource Object . . . . . . . . . . . . . . . . . . . . . . . 5 4.1. LDAP Resource ObjectClass Definition . . . . . . . . . . . 5 5. Resource Attributes . . . . . . . . . . . . . . . . . . . . . 6 5.1. Common Name . . . . . . . . . . . . . . . . . . . . . . . 6 5.1.1. LDAP Attribute Definition . . . . . . . . . . . . . . 6 5.1.2. VCard Property Definition . . . . . . . . . . . . . . 6 5.2. Kind . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 5.2.1. LDAP Attribute Definition . . . . . . . . . . . . . . 7 5.2.2. VCard Property Definition . . . . . . . . . . . . . . 7 5.3. Unique ID . . . . . . . . . . . . . . . . . . . . . . . . 7 5.3.1. LDAP Attribute Definition . . . . . . . . . . . . . . 7 5.3.2. VCard Property Definition . . . . . . . . . . . . . . 8 5.4. Nick Name . . . . . . . . . . . . . . . . . . . . . . . . 8 5.4.1. LDAP Attribute Definition . . . . . . . . . . . . . . 8 5.4.2. VCard Property Definition . . . . . . . . . . . . . . 8 5.5. Description . . . . . . . . . . . . . . . . . . . . . . . 8 5.5.1. LDAP Attribute Definition . . . . . . . . . . . . . . 8 5.5.2. VCard Property Definition . . . . . . . . . . . . . . 9 5.6. Organizational Unit . . . . . . . . . . . . . . . . . . . 9 5.6.1. LDAP Attribute Definition . . . . . . . . . . . . . . 9 5.6.2. VCard Property Definition . . . . . . . . . . . . . . 9 5.7. Categories . . . . . . . . . . . . . . . . . . . . . . . . 9 5.7.1. LDAP Attribute Definition . . . . . . . . . . . . . . 9 5.7.2. VCard Property Definition . . . . . . . . . . . . . . 10 5.8. Group Member . . . . . . . . . . . . . . . . . . . . . . . 10 5.8.1. LDAP Attribute Definition . . . . . . . . . . . . . . 10 5.8.2. VCard Property Definition . . . . . . . . . . . . . . 10 5.9. Admittance Info . . . . . . . . . . . . . . . . . . . . . 10 5.9.1. LDAP ObjectClass Definition . . . . . . . . . . . . . 10 5.9.2. Restricted Access . . . . . . . . . . . . . . . . . . 11 5.9.2.1. LDAP Attribute Definition . . . . . . . . . . . . 11 5.9.2.2. VCard Property Definition . . . . . . . . . . . . 11 5.9.3. Admittance Info URL . . . . . . . . . . . . . . . . . 11 5.9.3.1. LDAP Attribute Definition . . . . . . . . . . . . 12 5.9.3.2. VCard Property Definition . . . . . . . . . . . . 12 5.10. Accessibility . . . . . . . . . . . . . . . . . . . . . . 12 5.10.1. LDAP Attribute Definition . . . . . . . . . . . . . . 12 5.10.2. VCard Property Definition . . . . . . . . . . . . . . 13 5.11. Capacity . . . . . . . . . . . . . . . . . . . . . . . . . 13 Joy, et al. Expires March 25, 2011 [Page 2] Internet-Draft Schema for Resources September 2010 5.11.1. LDAP Attribute Definition . . . . . . . . . . . . . . 13 5.11.2. VCard Property Definition . . . . . . . . . . . . . . 13 5.12. Inventory Info . . . . . . . . . . . . . . . . . . . . . . 14 5.12.1. LDAP ObjectClass Definition . . . . . . . . . . . . . 14 5.12.2. Inventory List . . . . . . . . . . . . . . . . . . . . 14 5.12.2.1. LDAP Attribute Definition . . . . . . . . . . . . 14 5.12.2.2. VCard Property Definition . . . . . . . . . . . . 15 5.12.3. Inventory URL . . . . . . . . . . . . . . . . . . . . 15 5.12.3.1. LDAP Attribute Definition . . . . . . . . . . . . 15 5.12.3.2. VCard Property Definition . . . . . . . . . . . . 15 5.13. Owner Info . . . . . . . . . . . . . . . . . . . . . . . . 16 5.13.1. LDAP Attribute Definition . . . . . . . . . . . . . . 16 5.13.2. VCard Property Definition . . . . . . . . . . . . . . 16 5.14. Resource Manager Info . . . . . . . . . . . . . . . . . . 16 5.14.1. LDAP Attribute Definition . . . . . . . . . . . . . . 17 5.14.2. VCard Property Definition . . . . . . . . . . . . . . 17 5.15. Calendar URL . . . . . . . . . . . . . . . . . . . . . . . 17 5.15.1. LDAP Attribute Definition . . . . . . . . . . . . . . 17 5.15.2. VCard Property Definition . . . . . . . . . . . . . . 18 5.16. FreeBusy URL . . . . . . . . . . . . . . . . . . . . . . . 18 5.16.1. LDAP Attribute Definition . . . . . . . . . . . . . . 18 5.16.2. VCard Property Definition . . . . . . . . . . . . . . 18 5.17. Scheduling Address . . . . . . . . . . . . . . . . . . . . 18 5.17.1. LDAP Attribute Definition . . . . . . . . . . . . . . 18 5.17.2. VCard Property Definition . . . . . . . . . . . . . . 19 5.18. Time Zone . . . . . . . . . . . . . . . . . . . . . . . . 19 5.18.1. LDAP Attribute Definition . . . . . . . . . . . . . . 19 5.18.2. VCard Property Definition . . . . . . . . . . . . . . 19 5.19. Multiple Bookings . . . . . . . . . . . . . . . . . . . . 19 5.19.1. LDAP Attribute Definition . . . . . . . . . . . . . . 20 5.19.2. VCard Property Definition . . . . . . . . . . . . . . 20 5.20. Maximum Instances . . . . . . . . . . . . . . . . . . . . 20 5.20.1. LDAP Attribute Definition . . . . . . . . . . . . . . 20 5.20.2. VCard Property Definition . . . . . . . . . . . . . . 21 5.21. BookingWindow Start . . . . . . . . . . . . . . . . . . . 21 5.21.1. LDAP Attribute Definition . . . . . . . . . . . . . . 21 5.21.2. VCard Property Definition . . . . . . . . . . . . . . 22 5.22. BookingWindow End . . . . . . . . . . . . . . . . . . . . 22 5.22.1. LDAP Attribute Definition . . . . . . . . . . . . . . 23 5.22.2. VCard Property Definition . . . . . . . . . . . . . . 23 5.23. Scheduling Approval Info . . . . . . . . . . . . . . . . . 23 5.23.1. LDAP ObjectClass Definition . . . . . . . . . . . . . 23 5.23.2. Auto schedule . . . . . . . . . . . . . . . . . . . . 24 5.23.2.1. LDAP Attribute Definition . . . . . . . . . . . . 24 5.23.2.2. VCard Property Definition . . . . . . . . . . . . 24 5.23.3. Approval Info URL . . . . . . . . . . . . . . . . . . 24 5.23.3.1. LDAP Attribute Definition . . . . . . . . . . . . 25 5.23.3.2. VCard Property Definition . . . . . . . . . . . . 25 Joy, et al. Expires March 25, 2011 [Page 3] Internet-Draft Schema for Resources September 2010 5.23.4. Scheduling Admin Contact . . . . . . . . . . . . . . . 25 5.23.4.1. LDAP Attribute Definition . . . . . . . . . . . . 25 5.23.4.2. VCard Property Definition . . . . . . . . . . . . 26 5.24. Cost . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 5.24.1. LDAP ObjectClass Definition . . . . . . . . . . . . . 26 5.24.2. Nocost . . . . . . . . . . . . . . . . . . . . . . . . 26 5.24.2.1. LDAP Attribute Definition . . . . . . . . . . . . 27 5.24.2.2. VCard Property Definition . . . . . . . . . . . . 27 5.24.3. Cost URL . . . . . . . . . . . . . . . . . . . . . . . 27 5.24.3.1. LDAP Attribute Definition . . . . . . . . . . . . 27 5.24.3.2. VCard Property Definition . . . . . . . . . . . . 28 5.25. Related . . . . . . . . . . . . . . . . . . . . . . . . . 28 5.25.1. LDAP Attribute Definition . . . . . . . . . . . . . . 28 5.25.2. VCard Property Definition . . . . . . . . . . . . . . 28 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 6.1. LDAP Examples . . . . . . . . . . . . . . . . . . . . . . 29 6.1.1. Location Resource . . . . . . . . . . . . . . . . . . 29 6.1.2. Role Resources Group . . . . . . . . . . . . . . . . . 30 6.2. VCard Examples . . . . . . . . . . . . . . . . . . . . . . 30 6.2.1. Location Resource . . . . . . . . . . . . . . . . . . 30 6.2.2. Role Resources Group . . . . . . . . . . . . . . . . . 31 7. Security Considerations . . . . . . . . . . . . . . . . . . . 32 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 32 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 33 10. Normative References . . . . . . . . . . . . . . . . . . . . . 33 Joy, et al. Expires March 25, 2011 [Page 4] Internet-Draft Schema for Resources September 2010 1. Introduction This specification defines a schema for representing resources to ease the discovery and scheduling of resources between any calendar client and server. LDAP and vCard mappings of the schema are described in this document. The Object model chosen is the lowest common denominator to adapt for LDAP. 2. Conventions Used in This Document The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. 3. General Considerations Data values must have valid representation for the chosen format with respect to escape characters, line folding, and so on. 4. Resource Object A resource object definition should contain all information required to find and schedule the right resource. For this, it should contain all, or a set of the attributes described in Section 5. The cn attribute, described in Section 5.1 MUST be present in any resource object. Additional proprietary attributes may be defined as well, but must begin with "X-". Clients encountering attributes they don't know about must ignore them. Attributes or Properties required to contact the resource are not included in this specification. LDAP attributes defined in [RFC4519] and VCARD properties defined in vCard Format Specification [I-D.ietf-vcarddav-vcardrev] can be used to include contact information for the resource. 4.1. LDAP Resource ObjectClass Definition In LDAP, a resource object SHOULD be defined as an objectclass with attributes as defined in Section 5. This objectClass MUST be an auxiliary class. Its Superior class is the calEntry objectClass as defined in Section 2.4.3.1 of [RFC2739]. Definition of the CalendarResource ObjectClass: Joy, et al. Expires March 25, 2011 [Page 5] Internet-Draft Schema for Resources September 2010 ( 1.3.6.1.1.x.1.1 NAME 'CalendarResource' DESC 'Calendar Resource Object Class' SUP calEntry AUXILIARY MUST (cn) MAY (kind $ nickname $ description $ ou $ categories $ member $ uniquemember $ accessibilityurl $ capacity $ owner $ resourcemanager $ timezoneid $ multiplebookings $ maxinstances $ bookingwindowstart $ bookingwindowend $ vcarduid $ related) ) 5. Resource Attributes 5.1. Common Name Description: Full name of the resource. This attribute MUST be defined for a resource object. ValueType: String value. Example value: Room One 5.1.1. LDAP Attribute Definition cn attribute as defined in Section 2.3 of [RFC4519]. This attribute MUST be present in a CalendarResource object. 5.1.2. VCard Property Definition FN property as defined in Section 7.2.1 of [I-D.ietf-vcarddav-vcardrev]. 5.2. Kind Description: The kind of object represented. ValueType: Some of the possible values are "Location", "Thing", or "Group". Location is used for any physical location resource such as room, building, etc. Thing is used for any physical object that can scheduled like projector, printer, etc. Joy, et al. Expires March 25, 2011 [Page 6] Internet-Draft Schema for Resources September 2010 Group is used to specify a group of resources with a specific skill set. For example: drivers, electricians, etc. Example value: Location 5.2.1. LDAP Attribute Definition Definition of the kind LDAP attribute: ( 1.3.6.1.1.x.0.1 NAME 'Kind' DESC 'Kind of Object' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) 5.2.2. VCard Property Definition Property KIND that specifies the kind of object represented, as defined in Section 6.1.5 of [I-D.ietf-vcarddav-vcardrev]. 5.3. Unique ID Description: A Unique Identifier. ValueType: Single string value. Example value: room1-id1 5.3.1. LDAP Attribute Definition Definition of the vcarduid LDAP attribute: ( 1.3.6.1.1.x.0.1 NAME 'VcardUid' DESC 'VCard UniqueID' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) Joy, et al. Expires March 25, 2011 [Page 7] Internet-Draft Schema for Resources September 2010 5.3.2. VCard Property Definition UID property as defined in Section 6.7.7 of [I-D.ietf-vcarddav-vcardrev]. 5.4. Nick Name Description: A short or popular name for the resource. ValueType: String value. Example value: TheOne 5.4.1. LDAP Attribute Definition Definition of the nickname LDAP attribute: ( 1.3.6.1.1.x.0.2 NAME 'NickName' DESC 'Nick Name' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) 5.4.2. VCard Property Definition NICKNAME property as defined in Section 7.2.3 of [I-D.ietf-vcarddav-vcardrev]. 5.5. Description Description: Description of the resource. ValueType: String value. Example value: Room 1 in Building X 5.5.1. LDAP Attribute Definition description attribute as defined in Section 2.5 of [RFC4519]. Joy, et al. Expires March 25, 2011 [Page 8] Internet-Draft Schema for Resources September 2010 5.5.2. VCard Property Definition NOTE property as defined in Section 7.7.2 of [I-D.ietf-vcarddav-vcardrev]. 5.6. Organizational Unit Description: Organizations the resource belongs to. ValueType: String value. Example value: EngineeringDepartment 5.6.1. LDAP Attribute Definition ou attribute as defined in Section 2.20 of [RFC4519]. 5.6.2. VCard Property Definition ORG property as defined in Section 7.6.4 of [I-D.ietf-vcarddav-vcardrev]. 5.7. Categories Description: Categories the resource falls under or tags for easy discovery of the resource. ValueType: String value. Example value: Rooms, EngineeringResources 5.7.1. LDAP Attribute Definition Definition of the categories LDAP attribute: ( 1.3.6.1.1.x.0.3 NAME 'Categories' DESC 'Categories' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) Joy, et al. Expires March 25, 2011 [Page 9] Internet-Draft Schema for Resources September 2010 5.7.2. VCard Property Definition CATEGORIES property as defined in Section 7.7.1 of [I-D.ietf-vcarddav-vcardrev]. 5.8. Group Member Description: List of unique resources in a group of resources object. ValueType: URL value. Example value: http://www.example.com/printer1.html http://www.example.com/printer2.html 5.8.1. LDAP Attribute Definition member attribute as defined in Section 2.17 or uniquemember attribute as defined in Section 2.40 of [RFC4519]. 5.8.2. VCard Property Definition MEMBER property as defined in Section 7.6.5 of [I-D.ietf-vcarddav-vcardrev]. 5.9. Admittance Info Description: Information required to gain access to the resource. ValueType: Object value. 5.9.1. LDAP ObjectClass Definition Definition of the admittanceinfo LDAP objectclass: ( 1.3.6.1.1.x.1.2 NAME 'AdmittanceInfo' DESC 'Calendar Resource Admittance Info Class' SUP CalendarResource AUXILIARY MAY (admittanceurl $ restricted) ) Joy, et al. Expires March 25, 2011 [Page 10] Internet-Draft Schema for Resources September 2010 5.9.2. Restricted Access Description: Is access to the resource restricted? ValueType: Boolean value. Example value: TRUE 5.9.2.1. LDAP Attribute Definition Definition of the restricted LDAP attribute: ( 1.3.6.1.1.x.0.4 NAME 'Restricted' DESC 'Access Restricted' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 ) 5.9.2.2. VCard Property Definition Purpose: To specify if access is restricted or not. Type value: A single boolean value. Cardinality: (0,1) ABNF: RESTRICTEDACCESS-param = ; no parameter allowed RESTRICTEDACCESS-value = boolean Example: RESTRICTEDACCESSS:TRUE 5.9.3. Admittance Info URL Description: URL pointing to complete information for accessing the resource including getting accessibility rights, special entrances, and so on. ValueType: URL value. Joy, et al. Expires March 25, 2011 [Page 11] Internet-Draft Schema for Resources September 2010 Example value: http://www.example.com/room1_admittance.html 5.9.3.1. LDAP Attribute Definition Definition of the admittanceurl LDAP attribute: ( 1.3.6.1.1.x.0.5 NAME 'AdmittanceURL' DESC 'Cal Resource Admittance Info URL' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) 5.9.3.2. VCard Property Definition Purpose: To specify URL pointing to Admission Information. Type value: URI. Cardinality: (0,n) ABNF: ADMISSIONINFO-param = "VALUE=uri" / any-param ADMISSIONINFO-value = uri Example: ADMISSIONINFO:http://www.example.com/room1_admittance.html 5.10. Accessibility Description: Special resource accessibility info for the physically disabled. ValueType: URL value. Example value: http://www.example.com/room1_specialaccess.html 5.10.1. LDAP Attribute Definition Definition of the accessibilityurl LDAP attribute: ( 1.3.6.1.1.x.0.6 NAME 'accessibilityURL' DESC 'Cal Resource accessibility Info URL' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) Joy, et al. Expires March 25, 2011 [Page 12] Internet-Draft Schema for Resources September 2010 5.10.2. VCard Property Definition Purpose: To specify URL pointing to Disabled Access Information. Type value: URI. Cardinality: (0,n) ABNF: ACCESSIBILITYINFO-param = "VALUE=uri" / any-param ACCESSIBILITYINFO-value = uri Example: ACCESSIBILITYINFO:http://www.example.com/room1_specialaccess.html 5.11. Capacity Description: Capacity of the resource. ValueType: Integer. Example value: 10 5.11.1. LDAP Attribute Definition Definition of the capacity LDAP attribute: ( 1.3.6.1.1.x.0.7 NAME 'Capacity' DESC 'Cal Resource Capacity' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) 5.11.2. VCard Property Definition Purpose: To specify Capacity Information. Type value: integer. Cardinality: (0,n) ABNF: CAPACITY-param = "VALUE=integer" / any-param CAPACITY-value = integer Joy, et al. Expires March 25, 2011 [Page 13] Internet-Draft Schema for Resources September 2010 Example: CAPACITY:10 5.12. Inventory Info Description: Information on resources available as part of this resource. ValueType: Object value. 5.12.1. LDAP ObjectClass Definition Definition of the inventoryinfo LDAP attribute: ( 1.3.6.1.1.x.1.3 NAME 'InventoryInfo' DESC 'Calendar Resource Inventory Info Class' SUP CalendarResource AUXILIARY MAY (inventorylist $ inventoryurl) ) 5.12.2. Inventory List Description: List of resources available as part of this resource. ValueType: String value. One or more text values separated by a COMMA character. Example value: Printer, Projector 5.12.2.1. LDAP Attribute Definition Definition of the inventorylist LDAP attribute: ( 1.3.6.1.1.x.0.8 NAME 'InventoryList' DESC 'Inventory List' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) Joy, et al. Expires March 25, 2011 [Page 14] Internet-Draft Schema for Resources September 2010 5.12.2.2. VCard Property Definition Purpose: List the resources available as part of this resource. Type value: One or more text values separated by a COMMA character (ASCII decimal 44). Cardinality: (0,n) ABNF: INVENTORYLIST-param = "VALUE=text" / any-param INVENTORYLIST-value = text Example: INVENTORYLIST:projector, phone 5.12.3. Inventory URL Description: A URL pointing to other resource URLs part of this resource. ValueType: URL value. Example value: http://www.example.com/room1_inventory.html 5.12.3.1. LDAP Attribute Definition Definition of the inventoryurl LDAP attribute: ( 1.3.6.1.1.x.0.9 NAME 'InventoryURL' DESC 'Cal Resource Inventory Info URL' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) 5.12.3.2. VCard Property Definition Purpose: To specify URL pointing to Inventory Information. Type value: URI. Cardinality: (0,n) Joy, et al. Expires March 25, 2011 [Page 15] Internet-Draft Schema for Resources September 2010 ABNF: INVENTORYURL-param = "VALUE=uri" / any-param INVENTORYURL-value = uri Example: INVENTORYURL:http://www.example.com/room1_inventory.html 5.13. Owner Info Description: Complete information on the owners of the resource. An owner is anyone who has complete authority over the resource, from naming to overall availability. ValueType: URL value. Example value: http://www.example.com/room1_ownerinfo.html 5.13.1. LDAP Attribute Definition owner attribute as defined in Section 2.21 of [RFC4519]. 5.13.2. VCard Property Definition Purpose: To specify URL pointing to Resource Owner Information. Type value: URI. Cardinality: (0,n) ABNF: RESOURCEOWNERINFO-param = "VALUE=uri" / any-param RESOURCEOWNERINFO-value = uri Example: RESOURCEOWNERINFO:http://www.example.com/room1_owner.vcf 5.14. Resource Manager Info Description: Information on the managers of the resource. A manager is someone responsible for the day-to-day up keep of the resource. Joy, et al. Expires March 25, 2011 [Page 16] Internet-Draft Schema for Resources September 2010 ValueType: URL value. Example value: http://www.example.com/room1_managerinfo.html 5.14.1. LDAP Attribute Definition Definition of the resourcemanager LDAP attribute: ( 1.3.6.1.1.x.0.10 NAME 'ResourceManager' DESC 'Cal Resource Manager Info' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) 5.14.2. VCard Property Definition Purpose: To specify URL pointing to Resource Manager Information. Type value: URI. Cardinality: (0,n) ABNF: RESOURCEMANAGERINFO-param = "VALUE=uri" / any-param RESOURCEMANAGERINFO-value = uri Example: RESOURCEMANAGERINFO:http://www.example.com/room1_manager.vcf 5.15. Calendar URL Description: URL to access calendar data of the resource. ValueType: URL value. Example value: http://www.example.com/calendar/home/Room1/calendar/ 5.15.1. LDAP Attribute Definition Calendar access attribute calCAPURI as defined in Section 2.4.4.3 and calOtherCAPURIs as defined in Section 2.4.4.7 of [RFC2739] respectively. Joy, et al. Expires March 25, 2011 [Page 17] Internet-Draft Schema for Resources September 2010 5.15.2. VCard Property Definition Calendar access property CAPURI as defined in Section 2.3.3 of [RFC2739]. 5.16. FreeBusy URL Description: URL to read freebusy information of the resource's calendar. ValueType: URL value. Example value: http://www.example.com/freebusy/home/Room1/ 5.16.1. LDAP Attribute Definition Calendar access attribute calFBURL as defined in Section 2.4.4.2 and calOtherFBURLs as defined in Section 2.4.4.6 of [RFC2739] respectively. 5.16.2. VCard Property Definition FBURL attribute as defined in Section 2.3.1 of [RFC2739] and further explained in Section 7.9.1 of [I-D.ietf-vcarddav-vcardrev]. 5.17. Scheduling Address Description: Address used for scheduling the resource by a Calendaring and Scheduling service. ValueType: String value. Example value: mailto:room1@example.com 5.17.1. LDAP Attribute Definition Scheduling Address attribute calCalAdrURI as defined in Section 2.4.4.4 and calOtherCalAdrURIs as defined in Section 2.4.4.8 of [RFC2739] respectively. This is the address that would be used by a Scheduling and Calendaring application to schedule the resource. Its value must be a uri string, in most cases a mailto: uri. The mail attribute value of the resource should be used for scheduling, in the absence of this attribute. Joy, et al. Expires March 25, 2011 [Page 18] Internet-Draft Schema for Resources September 2010 5.17.2. VCard Property Definition Scheduling Address property CALADRURI as defined in Section 2.3.2 [RFC2739] and further explained in Section 7.9.2 of [I-D.ietf-vcarddav-vcardrev]. This is the address that would be used by a Scheduling and Calendaring application to schedule the resource. Its value must be a uri string, in most cases a mailto: uri. The EMAIL property value of the resource should be used for scheduling, in the absence of this attribute. 5.18. Time Zone Description: TimeZone Identifier for the timezone the resource is in. ValueType: String value. Example value: America/New_York 5.18.1. LDAP Attribute Definition Definition of the timezoneid LDAP attribute: ( 1.3.6.1.1.x.0.11 NAME 'TimeZoneID' DESC 'Cal Time Zone ID' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) 5.18.2. VCard Property Definition TimeZone property TZ as defined in Section 7.5.1 of [I-D.ietf-vcarddav-vcardrev]. 5.19. Multiple Bookings Description: Number of simultaneous bookings allowed. ValueType: Integer value. Value of 0 indicates no limits. Joy, et al. Expires March 25, 2011 [Page 19] Internet-Draft Schema for Resources September 2010 Example value: 1 5.19.1. LDAP Attribute Definition Definition of the multiplebookings LDAP attribute: ( 1.3.6.1.1.x.0.12 NAME 'Multiplebookings' DESC 'Cal Num Bookings Allowed' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) 5.19.2. VCard Property Definition Purpose: To specify number of simultaneous bookings allowed. Type value: integer. Cardinality: (0,1) ABNF: MULTIBOOK-param = "VALUE=integer" / any-param MULTIBOOK-value = integer Example: MULTIBOOK:10 5.20. Maximum Instances Description: Maximum number of instances of an event, the resource can be scheduled for from NOW. ValueType: Integer value. Value of 0 indicates no limits. Example value: 60 5.20.1. LDAP Attribute Definition Definition of the maxinstances LDAP attribute: Joy, et al. Expires March 25, 2011 [Page 20] Internet-Draft Schema for Resources September 2010 ( 1.3.6.1.1.x.0.13 NAME 'MaxInstances' DESC 'Cal Maximum Instances allowed' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) 5.20.2. VCard Property Definition Purpose: To specify maximum number of instances of an event, the resource can be scheduled for from NOW. Type value: integer. Cardinality: (0,1) ABNF: MAXINSTANCES-param = "VALUE=integer" / any-param MAXINSTANCES-value = integer Example: MAXINSTANCES:10 5.21. BookingWindow Start Description: Defines how much time in advance the resource can be booked. That is, what is the earliest opportunity for booking a resource for a given date and time. The value is added to the current time to determine the start of the booking window. The resource may be booked only for any time after the start of the booking window. If this property is absent the resource may be booked at any time before the booking window end. ValueType: Duration value. The format is based on the [ISO.8601.2004] duration representation basic format with designators for the duration of time. The format can represent nominal durations (weeks and days) and accurate durations (hours, minutes, and seconds). Example value: P3M 5.21.1. LDAP Attribute Definition Definition of the bookingwindowstart LDAP attribute: Joy, et al. Expires March 25, 2011 [Page 21] Internet-Draft Schema for Resources September 2010 ( 1.3.6.1.1.x.0.14 NAME 'BookingWindowStart' DESC 'Cal Booking Window Start' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) 5.21.2. VCard Property Definition Purpose: To specify how much time in advance the resource can be booked. Type value: duration. The format is based on the [ISO.8601.2004] duration representation basic format with designators for the duration of time. The format can represent nominal durations (weeks and days) and accurate durations (hours, minutes, and seconds). Cardinality: (0,1) ABNF: BOOKINGSTART-param = "VALUE=text" / any-param BOOKINGSTART-value = text Example: BOOKINGSTART:P3M 5.22. BookingWindow End Description: Defines how much time in advance the resource booking is closed. That is, what is the latest opportunity for booking a resource for a given date or time. BookingWindow Start and End together provide the window of time a resource can be booked relative to the current time. ValueType: Duration value. The format is based on the [ISO.8601.2004] duration representation basic format with designators for the duration of time. The format can represent nominal durations (weeks and days) and accurate durations (hours, minutes, and seconds). Example value: P5D Joy, et al. Expires March 25, 2011 [Page 22] Internet-Draft Schema for Resources September 2010 5.22.1. LDAP Attribute Definition Definition of the bookingwindowend LDAP attribute: ( 1.3.6.1.1.x.0.15 NAME 'BookingWindowEnd' DESC 'Cal Booking Window End' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) 5.22.2. VCard Property Definition Purpose: To specify how much time in advance the resource booking is closed. Type value: duration. The format is based on the [ISO.8601.2004] duration representation basic format with designators for the duration of time. The format can represent nominal durations (weeks and days) and accurate durations (hours, minutes, and seconds). Cardinality: (0,1) ABNF: BOOKINGEND-param = "VALUE=text" / any-param BOOKINGEND-value = text Example: BOOKINGEND:P5D 5.23. Scheduling Approval Info Description: Information regarding approval of a scheduling request to the resource. ValueType: Object value. 5.23.1. LDAP ObjectClass Definition Definition of the schedapprovalinfo LDAP objectclass: ( 1.3.6.1.1.x.1.4 NAME 'SchedApprovalInfo' DESC 'Calendar Sched Approval Class' SUP CalendarResource AUXILIARY Joy, et al. Expires March 25, 2011 [Page 23] Internet-Draft Schema for Resources September 2010 MAY (autoschedule $ approvalinfourl $ schedadmin) ) 5.23.2. Auto schedule Description: No approval required. Automatically scheduled. ValueType: Boolean value. Example value: TRUE 5.23.2.1. LDAP Attribute Definition Definition of the autoschedule LDAP attribute: ( 1.3.6.1.1.x.0.16 NAME 'Autoschedule' DESC 'Cal Scheduling no approval required' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 ) 5.23.2.2. VCard Property Definition Purpose: To specify if invitations should be automatically scheduled. Type value: Boolean. Cardinality: (0,1) ABNF: AUTOSCHEDULE-param = "VALUE=boolean" / any-param AUTOSCHEDULE-value = "TRUE" / "FALSE" Example: AUTOSCHEDULE:TRUE 5.23.3. Approval Info URL Description: URL pointing to complete information on scheduling request approval process for the resource. Joy, et al. Expires March 25, 2011 [Page 24] Internet-Draft Schema for Resources September 2010 ValueType: URL value. Example value: http://www.example.com/room1_approval.html 5.23.3.1. LDAP Attribute Definition Definition of the approvalinfourl LDAP attribute: ( 1.3.6.1.1.x.0.17 NAME 'ApprovalInfoURL' DESC 'Cal Sched Approval Info' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) 5.23.3.2. VCard Property Definition Purpose: To specify URL pointing to Scheduling Approval Information. Type value: URI. Cardinality: (0,n) ABNF: APPROVALINFO-param = "VALUE=uri" / any-param APPROVALINFO-value = uri Example: APPROVALINFO:http://www.example.com/room1_approval.html 5.23.4. Scheduling Admin Contact Description: Contact information for the scheduling approvers, if approval required. ValueType: URL value. Example value: http://www.example.com/SchedAdmin1.vcf 5.23.4.1. LDAP Attribute Definition Definition of the schedadmin LDAP attribute: Joy, et al. Expires March 25, 2011 [Page 25] Internet-Draft Schema for Resources September 2010 ( 1.3.6.1.1.x.0.18 NAME 'SchedAdmin' DESC 'Cal Sched Admin Info' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) 5.23.4.2. VCard Property Definition Purpose: To specify URL pointing to Scheduling Manager Information. Type value: URI. Cardinality: (0,n) ABNF: SCHEDADMININFO-param = "VALUE=uri" / any-param SCHEDADMININFO-value = uri Example: SCHEDADMININFO:http://www.example.com/SchedAdmin1.vcf 5.24. Cost Description: Scheduling costs for this resource. ValueType: Object value. 5.24.1. LDAP ObjectClass Definition Definition of the cost LDAP objectclass: ( 1.3.6.1.1.x.1.5 NAME 'CalendarResourceCost' DESC 'Calendar Resource Cost Object Class' SUP CalendarResource AUXILIARY MAY (nocost $ costurl) 5.24.2. Nocost Description: No cost for using the resource. Can be used for a resource scheduling query. Joy, et al. Expires March 25, 2011 [Page 26] Internet-Draft Schema for Resources September 2010 ValueType: Boolean value. Example value: TRUE 5.24.2.1. LDAP Attribute Definition Definition of the nocost LDAP attribute: ( 1.3.6.1.1.x.0.19 NAME 'Nocost' DESC 'Free or Priced resource' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 ) 5.24.2.2. VCard Property Definition Purpose: To specify if resource usage is free. Type value: A single boolean value. Cardinality: (0,1) ABNF: NOCOST-param = ; no parameter allowed NOCOST-value = boolean Example: NOCOST:TRUE 5.24.3. Cost URL Description: URL pointing to complete pricing information for usage of the resource. ValueType: URL value. Example value: http://www.example.com/cost.html 5.24.3.1. LDAP Attribute Definition Definition of the costurl LDAP attribute: Joy, et al. Expires March 25, 2011 [Page 27] Internet-Draft Schema for Resources September 2010 ( 1.3.6.1.1.x.0.20 NAME 'CostURL' DESC 'Cal Resource Cost Info' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) 5.24.3.2. VCard Property Definition Purpose: To specify URL pointing Resource Scheduling Cost Information. Type value: URI. Cardinality: (0,n) ABNF: COSTINFO-param = "VALUE=uri" / any-param COSTINFO-value = uri Example: COSTINFO:http://www.example.com/cost.html 5.25. Related Description: Specify a relationship with another resource. ValueType: URL value. Example value: http://www.example.com/printer1.html 5.25.1. LDAP Attribute Definition Definition of the related LDAP attribute: ( 1.3.6.1.1.x.0.21 NAME 'Related' DESC 'Related URL' EQUALITY uniqueMemberMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.34 ) 5.25.2. VCard Property Definition The property RELATED as defined in Section 6.6.6 of [I-D.ietf-vcarddav-vcardrev]. Joy, et al. Expires March 25, 2011 [Page 28] Internet-Draft Schema for Resources September 2010 6. Examples 6.1. LDAP Examples 6.1.1. Location Resource dn: cn=Room One,ou=Engineering,dc=example,dc=com objectclass: top objectclass: calendarresource objectclass: admittanceinfo objectclass: inventoryinfo objectclass: schedapprovalinfo objectclass: calendarresourcecost kind: location vcarduid: room1-id cn: Room One ou: Engineering nickname: The One description: Room 1 in Engineering Building X categories: rooms categories: engineering_resources restricted: TRUE admittanceurl: http://www.example.com/room1_admittance.html accessibilityurl: http://www.example.com/room1_specialaccess.html capacity: 100 inventorylist:phone, projector inventoryurl: http://www.example.com/room1_inventory.html owner: cn=RoomOwner,ou=Engineering,dc=example,dc=com resourcemanager: cn=RoomOwner,ou=Engineering,dc=example,dc=com calcapuri: http://www.example.com/calendar/home/Room1/calendar/ calfburl: http://www.example.com/freebusy/home/Room1/ calcaladruri: mailto:room1@example.com timezoneid: America/Los_Angeles multiplebookings: 1 maxinstances: 10 bookingwindowstart:P3M bookingwindowend: P3D autoschedule: FALSE approvalinfourl: http://www.example.com/room1_approval.html schedadmin: cn=RoomOwner,ou=Engineering,dc=example,dc=com nocost: FALSE costurl: http://www.example.com/cost.html Joy, et al. Expires March 25, 2011 [Page 29] Internet-Draft Schema for Resources September 2010 6.1.2. Role Resources Group dn: cn=Drivers X,ou=Transportation,dc=example,dc=com objectclass: top objectclass: groupOfuniqueNames objectclass: calendarresource objectclass: schedapprovalinfo objectclass: calendarresourcecost kind: group vcarduid: driversX-id cn: Driver One ou: Transportation nickname: The X description: Drivers in the Transportation department driver pool X categories: drivers uniquemember: cn=Driver1,ou=Transportation,dc=example,dc=com uniquemember: cn=Driver2,ou=Transportation,dc=example,dc=com uniquemember: cn=Driver3,ou=Transportation,dc=example,dc=com owner: cn=Transportation_Manager,ou=Transportation,dc=example,dc=com calfburl: http://www.example.com/freebusy/home/DriversX/ calcaladruri: mailto:driversX@example.com timezoneid: America/Los_Angeles multiplebookings: 3 maxinstances: 10 bookingwindowstart:P3M bookingwindowend: P3D autoschedule: FALSE approvalinfourl: http://www.example.com/driversX_approval.html schedadmin: cn=TransportationManager,ou=Transportation,dc=example,dc=com nocost: FALSE costurl: http://www.example.com/driversXcost.html 6.2. VCard Examples 6.2.1. Location Resource Joy, et al. Expires March 25, 2011 [Page 30] Internet-Draft Schema for Resources September 2010 BEGIN:VCARD VERSION:4.0 UID:urn:uuid:room1-id KIND: location FN: Room One ORG: Engineering NICKNAME: The One NOTE: Room 1 in Engineering Building X CATEGORIES: rooms CATEGORIES: engineering_resources RESTRICTEDACCESS: TRUE ADMISSIONINFO: http://www.example.com/room1_admittance.html ACCESSIBILITYINFO: http://www.example.com/room1_specialaccess.html CAPACITY: 100 INVENTORYLIST: phone, projector INVENTORYURL: http://www.example.com/room1_inventory.html RESOURCEOWNERINFO: http://www.example.com/ResOwner1.vcf RESOURCEMANAGERINFO: http://www.example.com/ResManager1.vcf CAPURI: http://www.example.com/calendar/home/Room1/calendar/ FBURL: http://www.example.com/freebusy/home/Room1/ CALADRURI: mailto:room1@example.com TZ: America/Los_Angeles MULTIBOOK: 1 MAXINSTANCES: 10 BOOKINGSTART:P3M BOOKINGEND: P3D AUTOSCHEDULE: FALSE APPROVALINFO: http://www.example.com/room1_approval.html SCHEDADMININFO: http://www.example.com/SchedAdmin1.vcf NOCOST: FALSE COSTINFO: http://www.example.com/cost.html END:VCARD 6.2.2. Role Resources Group Joy, et al. Expires March 25, 2011 [Page 31] Internet-Draft Schema for Resources September 2010 BEGIN:VCARD VERSION:4.0 UID:urn:uuid:driverXPool-id KIND: group FN: Driver X Pool ORG: Transportation NICKNAME: The X Group NOTE: Drivers in the Transportation department driver pool X CATEGORIES: drivers MEMBER:urn:uuid:driver1-id MEMBER:urn:uuid:driver2-id MEMBER:urn:uuid:driver3-id RESOURCEOWNERINFO: http://www.example.com/DriversManager.vcf FBURL: http://www.example.com/freebusy/home/DriversX/ CALADRURI: mailto:driversX@example.com TZ: America/Los_Angeles MULTIBOOK: 3 MAXINSTANCES: 10 BOOKINGSTART:P3M BOOKINGEND: P3D AUTOSCHEDULE: FALSE APPROVALINFO: http://www.example.com/driversX_approval.html SCHEDADMININFO: http://www.example.com/DriversX_SchedAdmin.vcf NOCOST: FALSE COSTINFO: http://www.example.com/driversXcost.html END:VCARD 7. Security Considerations As this document only defines schema for representing resource information for calendaring and scheduling and does not refer to the actual storage mechanism itself, or the calendaring and scheduling protocol, no special security considerations are required as part of this document. 8. IANA Considerations A new IANA token 'resource', that can be used as a value representing a Resource in a VCard, as defined in Section 5.2.2 needs to be registered. In addition, the following new VCard Properties need to be registered by IANA. Joy, et al. Expires March 25, 2011 [Page 32] Internet-Draft Schema for Resources September 2010 New VCard Properties Table: +---------------------+---------------------------+ | VCard Property Name | VCard Property Definition | +---------------------+---------------------------+ | RESTRICTEDACCESS | Section 5.9.2.2 | | ADMISSIONINFO | Section 5.9.3.2 | | ACCESSIBILITYINFO | Section 5.10.2 | | CAPACITY | Section 5.11.2 | | INVENTORYLIST | Section 5.12.2.2 | | INVENTORYURL | Section 5.12.3.2 | | RESOURCEOWNER | Section 5.13.2 | | RESOURCEMANAGER | Section 5.14.2 | | MAXINSTANCE | Section 5.20.2 | | BOOKINGSTART | Section 5.21.2 | | BOOKINGEND | Section 5.22.2 | | AUTOSCHEDULE | Section 5.23.2.2 | | APPROVALINFO | Section 5.23.3.2 | | APPROVERINFO | Section 5.23.4.2 | | NOCOST | Section 5.24.2.2 | | COSTINFO | Section 5.24.3.2 | +---------------------+---------------------------+ 9. Acknowledgments This specification is a result of discussions that took place within the Calendaring and Scheduling Consortium's Resource Technical Committee. The authors thank the participants of that group, and specifically the following individuals for contributing their ideas and support: Arnaud Quillaud, Adam Lewenberg, Andrew Laurence, Guy Stalnaker, Mimi Mugler, Dave Thewlis, Bernard Desruisseaux, Alain Petit, and Jason Miller. 10. Normative References [I-D.ietf-vcarddav-vcardrev] Perreault, S. and P. Resnick, "vCard Format Specification", draft-ietf-vcarddav-vcardrev-13 (work in progress), August 2010. [ISO.8601.2004] International Organization for Standardization, "Data elements and interchange formats -- Information interchange -- Representation of dates and times", 2004. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", Joy, et al. Expires March 25, 2011 [Page 33] Internet-Draft Schema for Resources September 2010 BCP 14, RFC 2119, March 1997. [RFC2739] Small, T., Hennessy, D., and F. Dawson, "Calendar Attributes for vCard and LDAP", RFC 2739, January 2000. [RFC4519] Sciberras, A., "Lightweight Directory Access Protocol (LDAP): Schema for User Applications", RFC 4519, June 2006. Authors' Addresses Ciny Joy Oracle Corporation 4150 Network Circle Santa Clara, CA 95054 USA EMail: ciny.joy@oracle.com URI: http://www.oracle.com/ Cyrus Daboo Apple Inc. 1 Infinite Loop Cupertino, CA 95014 USA EMail: cyrus@daboo.name URI: http://www.apple.com/ Michael Douglass Rensselaer Polytechnic Institute 110 8th Street Troy, NY 12180 USA EMail: douglm@rpi.edu URI: http://www.rpi.edu/ Joy, et al. Expires March 25, 2011 [Page 34]