Network Working Group C. Joy
Internet-Draft Oracle
Intended status: Standards Track C. Daboo
Expires: December 04, 2011 Apple Inc.
M. Douglass
RPI
June 02, 2011

Schema for representing resources for calendaring and scheduling services
draft-cal-resource-schema-04

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 December 04, 2011.

Copyright Notice

Copyright (c) 2011 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 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

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:

5. Resource Attributes

5.1. Common Name

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 6.2.1 of [I-D.ietf-vcarddav-vcardrev].

5.2. Kind

5.2.1. LDAP Definition

In LDAP, this information can be represented by including the right category objectlass.
Possible objectclasses are:
Person objectclass as defined in Section 3.12 of [RFC4519].
groupOfNames objectless as defined in Section 3.5 of [RFC4519].
groupOfUniqueNames objectless as defined in Section 3.6 of [RFC4519].
device objectless as defined in Section 3.4 of [RFC4519].
room objectclass as defined in Section 3.8 of [RFC4524].
In the absence of an objectclass that accurately describes the type of the object, the KIND attribute defined below MUST be used.

5.2.1.1. LDAP Attribute Definition

Definition of the kind LDAP attribute:

5.2.2. VCard Property Definition

Property KIND that specifies the kind of object represented, as defined in Section 6.1.4 of [I-D.ietf-vcarddav-vcardrev]. A new value of "thing" will be used to represent any physical object or device.

5.2.3. Mapping of KIND value between LDAP and VCard representations

KIND Value Mapping Table:

LDAP Objectclass VCard Value
person individual
groupOfNames or groupOfUniqueNames group
device thing
room location

5.3. Unique ID

5.3.1. LDAP Attribute Definition

Definition of the vcarduid LDAP attribute:

5.3.2. VCard Property Definition

UID property as defined in Section 6.7.6 of [I-D.ietf-vcarddav-vcardrev].

5.4. Nick Name

5.4.1. LDAP Attribute Definition

Definition of the nickname LDAP attribute:

5.4.2. VCard Property Definition

NICKNAME property as defined in Section 6.2.3 of [I-D.ietf-vcarddav-vcardrev].

5.5. Description

5.5.1. LDAP Attribute Definition

description attribute as defined in Section 2.5 of [RFC4519].

5.5.2. VCard Property Definition

NOTE property as defined in Section 6.7.2 of [I-D.ietf-vcarddav-vcardrev].

5.6. Organizational Unit

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 6.6.4 of [I-D.ietf-vcarddav-vcardrev].

5.7. Categories

5.7.1. LDAP Attribute Definition

Definition of the categories LDAP attribute:

5.7.2. VCard Property Definition

CATEGORIES property as defined in Section 6.7.1 of [I-D.ietf-vcarddav-vcardrev].

5.8. Group Member

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 6.6.5 of [I-D.ietf-vcarddav-vcardrev].

5.9. Admittance Info

5.9.1. LDAP ObjectClass Definition

Definition of the admittanceinfo LDAP objectclass:

5.9.2. Restricted Access

5.9.2.1. LDAP Attribute Definition

Definition of the restricted LDAP attribute:

5.9.2.2. VCard Property Definition

5.9.3. Admittance Info URL

5.9.3.1. LDAP Attribute Definition

Definition of the admittanceurl LDAP attribute:

5.9.3.2. VCard Property Definition

5.10. Accessibility

5.10.1. LDAP Attribute Definition

Definition of the accessibilityurl LDAP attribute:

5.10.2. VCard Property Definition

5.11. Capacity

5.11.1. LDAP Attribute Definition

Definition of the capacity LDAP attribute:

5.11.2. VCard Property Definition

5.12. Inventory Info

5.12.1. LDAP ObjectClass Definition

Definition of the inventoryinfo LDAP attribute:

5.12.2. Inventory List

5.12.2.1. LDAP Attribute Definition

Definition of the inventorylist LDAP attribute:

5.12.2.2. VCard Property Definition

5.12.3. Inventory URL

5.12.3.1. LDAP Attribute Definition

Definition of the inventoryurl LDAP attribute:

5.12.3.2. VCard Property Definition

5.13. Owner

5.13.1. LDAP Attribute Definition

owner attribute as defined in Section 2.21 of [RFC4519].

5.13.2. VCard Property Definition

5.14. Resource Manager

5.14.1. LDAP Attribute Definition

Definition of the resourcemanager LDAP attribute:

5.14.2. VCard Property Definition

5.15. Calendar URL

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.

5.15.2. VCard Property Definition

Calendar access property CAPURI as defined in Section 2.3.3 of [RFC2739].

5.16. FreeBusy URL

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 6.9.1 of [I-D.ietf-vcarddav-vcardrev].

5.17. Scheduling Address

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.

5.17.2. VCard Property Definition

Scheduling Address property CALADRURI as defined in Section 2.3.2 [RFC2739] and further explained in Section 6.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

5.18.1. LDAP Attribute Definition

Definition of the timezoneid LDAP attribute:

5.18.2. VCard Property Definition

TimeZone property TZ as defined in Section 6.5.1 of [I-D.ietf-vcarddav-vcardrev].

5.19. Multiple Bookings

5.19.1. LDAP Attribute Definition

Definition of the multiplebookings LDAP attribute:

5.19.2. VCard Property Definition

5.20. Maximum Instances

5.20.1. LDAP Attribute Definition

Definition of the maxinstances LDAP attribute:

5.20.2. VCard Property Definition

5.21. BookingWindow Start

5.21.1. LDAP Attribute Definition

Definition of the bookingwindowstart LDAP attribute:

5.21.2. VCard Property Definition

5.22. BookingWindow End

5.22.1. LDAP Attribute Definition

Definition of the bookingwindowend LDAP attribute:

5.22.2. VCard Property Definition

5.23. Scheduling Approval Info

5.23.1. LDAP ObjectClass Definition

Definition of the schedapprovalinfo LDAP objectclass:

5.23.2. Auto schedule

5.23.2.1. LDAP Attribute Definition

Definition of the autoschedule LDAP attribute:

5.23.2.2. VCard Property Definition

5.23.3. Approval Info URL

5.23.3.1. LDAP Attribute Definition

Definition of the approvalinfourl LDAP attribute:

5.23.3.2. VCard Property Definition

5.23.4. Scheduling Admin Contact

5.23.4.1. LDAP Attribute Definition

Definition of the schedadmin LDAP attribute:

5.23.4.2. VCard Property Definition

5.24. Cost

5.24.1. LDAP ObjectClass Definition

Definition of the cost LDAP objectclass:

5.24.2. Nocost

5.24.2.1. LDAP Attribute Definition

Definition of the nocost LDAP attribute:

5.24.2.2. VCard Property Definition

5.24.3. Cost URL

5.24.3.1. LDAP Attribute Definition

Definition of the costurl LDAP attribute:

5.24.3.2. VCard Property Definition

5.25. Related

5.25.1. LDAP Attribute Definition

Definition of the related LDAP attribute:

5.25.2. VCard Property Definition

The property RELATED as defined in Section 6.6.6 of [I-D.ietf-vcarddav-vcardrev].

6. Examples

6.1. LDAP Examples

6.1.1. Location Resource

6.1.2. Role Resources Group

6.2. VCard Examples

6.2.1. Location Resource

6.2.2. Role Resources Group

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

8.1. LDAP Objectclass and Attribute Registration

New LDAP objectclasses and attributes defined in this document need to be registered by the Internet Assigned Numbers Authority (IANA) as requested in the following template. Once the assignment is done, this document needs to be updated with the right OID numbers for all the newly defined objectclasses and attributes.

New LDAP ObjectClass and Attributes Table:

Name Type Definition OID
CalendarResource ObjectClass Section 4.1 IANA-ASSIGNED-OID
Kind Attribute Section 5.2.1.1 IANA-ASSIGNED-OID
VcardUid Attribute Section 5.3.1 IANA-ASSIGNED-OID
NickName Attribute Section 5.4.1 IANA-ASSIGNED-OID
Categories Attribute Section 5.7.1 IANA-ASSIGNED-OID
AdmittanceInfo ObjectClass Section 5.9.1 IANA-ASSIGNED-OID
Restricted Attribute Section 5.9.2.1 IANA-ASSIGNED-OID
AdmittanceURL Attribute Section 5.9.3.1 IANA-ASSIGNED-OID
AccessibilityURL Attribute Section 5.10.1 IANA-ASSIGNED-OID
Capacity Attribute Section 5.11.1 IANA-ASSIGNED-OID
InventoryInfo ObjectClass Section 5.12.1 IANA-ASSIGNED-OID
InventoryList Attribute Section 5.12.2.1 IANA-ASSIGNED-OID
InventoryURL Attribute Section 5.12.3.1 IANA-ASSIGNED-OID
ResourceManager Attribute Section 5.14.1 IANA-ASSIGNED-OID
TimeZoneID Attribute Section 5.18.1 IANA-ASSIGNED-OID
MultipleBookings Attribute Section 5.19.1 IANA-ASSIGNED-OID
MaxInstances Attribute Section 5.20.1 IANA-ASSIGNED-OID
BookingWindowStart Attribute Section 5.21.1 IANA-ASSIGNED-OID
BookingWindowEnd Attribute Section 5.22.1 IANA-ASSIGNED-OID
SchedApprovalInfo ObjectClass Section 5.23.1 IANA-ASSIGNED-OID
Autoschedule Attribute Section 5.23.2.1 IANA-ASSIGNED-OID
ApprovalInfoURL Attribute Section 5.23.3.1 IANA-ASSIGNED-OID
SchedAdmin Attribute Section 5.23.4.1 IANA-ASSIGNED-OID
CalendarResourceCost ObjectClass Section 5.24.1 IANA-ASSIGNED-OID
Nocost Attribute Section 5.24.2.1 IANA-ASSIGNED-OID
CostURL Attribute Section 5.24.3.1 IANA-ASSIGNED-OID
Related Attribute Section 5.25.1 IANA-ASSIGNED-OID

8.2. VCard Property and Value Registration

The following new VCard Properties need to be registered by IANA.

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
BOOKINGWINDOWSTART Section 5.21.2
BOOKINGWINDOWEND Section 5.22.2
AUTOSCHEDULE Section 5.23.2.2
APPROVALINFO Section 5.23.3.2
SCHEDADMIN Section 5.23.4.2
NOCOST Section 5.24.2.2
COSTINFO Section 5.24.3.2

The following new VCard Property Values need to be registered by IANA.

New VCard Property Values Table:

VCard Property Name Additional VCard Property Value Value Definition
KIND thing Section 5.2.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, Andrew Sciberras, and Jason Miller.

10. References

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC4519] Sciberras, A., "Lightweight Directory Access Protocol (LDAP): Schema for User Applications", RFC 4519, June 2006.
[RFC2739] Small, T., Hennessy, D. and F. Dawson, "Calendar Attributes for vCard and LDAP", RFC 2739, January 2000.
[RFC4524] Zeilenga, K., "COSINE LDAP/X.500 Schema", RFC 4524, June 2006.
[I-D.ietf-vcarddav-vcardrev] Perreault, S, "vCard Format Specification", Internet-Draft draft-ietf-vcarddav-vcardrev-22, May 2011.
[ISO.8601.2004] International Organization for Standardization , "Data elements and interchange formats -- Information interchange -- Representation of dates and times ", 2004.

Authors' Addresses

Ciny Joy Oracle Corporation 4210 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/