]>      Schema for representing resources for calendaring and scheduling services          Oracle Corporation      
                             4150 Network Circle                                Santa Clara                                CA                     95054                      USA                                    ciny.joy@oracle.com                          http://www.oracle.com/              
   
                 Apple Inc.            
                             1 Infinite Loop                                Cupertino                                CA                     95014                      USA                                    cyrus@daboo.name                          http://www.apple.com/              
   
         Rensselaer Polytechnic Institute      
                 110 8th Street          Troy          NY          12180          USA                douglm@rpi.edu        http://www.rpi.edu/      
   
             Applications                      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.            
     
              This specification defines a schema for representing resources to ease the discovery and scheduling of resources between any calendar client and server.         The Object model chosen is the lowest common denominator to adapt for LDAP.          
   
             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 .          
   
     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 .    Resource Kind, described in , and Unique ID, described in , 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.        This document specifies whether a given Attribute or Property is required for a query to find the right resource, or is used to just give additional information during scheduling of the resource.    Attributes or Properties required to contact the resource are not included in this specification.    LDAP attributes defined in and VCARD properties defined in vCard Format Specification can be used to include contact information for the resource.    
         In LDAP, a resource object SHOULD be defined as an objectclass with attributes as defined in . This objectClass MUST be an auxiliary class. Its Superior class MUST be the calEntry objectClass as defined in Section 2.4.3.1 of            
 
             Description:        The kind of resource. Required for a meaningful resource scheduling query and MUST be defined.            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.        Group is used to specify a group of resources with a specific skill set. For example: drivers, electricians, etc.            Example value:        Location          
         
   
             Property KIND that specifies the kind of objected represented, as defined in Section 6.1.5 of .          
 
 
     Description:        A Unique Identifier. Not required for a resource scheduling query but MUST be defined.            ValueType:        Single string value.            Example value:        room1-id1          
         uid attribute as defined in Section 2.39 of .          
   
             UID property as defined in Section 7.7.7 of .          
 
 
     Description:        Full name of the resource. Not required for a resource scheduling query.            ValueType:        String value.            Example value:        Room One          
             cn attribute as defined in Section 2.3 of .          
   
             FN property as defined in Section 7.2.1 of .          
 
 
     Description:        A short or popular name for the resource. Not required for a resource scheduling query.            ValueType:        String value.            Example value:        TheOne          
         
   
             NICKNAME property as defined in Section 7.2.3 of .          
 
 
     Description:        Description of the resource. Not required for a resource scheduling query.            ValueType:        String value.            Example value:        Room 1 in Building X          
             description attribute as defined in Section 2.5 of .          
   
             NOTE property as defined in Section 7.7.2 of .          
 
 
     Description:        Organizations the resource belongs to. Not required for a resource scheduling query.            ValueType:        String value.            Example value:        EngineeringDepartment          
             ou attribute as defined in Section 2.20 of .          
   
             ORG property as defined in Section 7.6.4 of .          
 
 
     Description:        Categories the resource falls under or tags for easy discovery of the resource. Can be used for a resource scheduling query.            ValueType:        String value.            Example value:        Rooms, EngineeringResources            
           
     
             CATEGORIES property as defined in Section 7.7.1 of .            
 
 
     Description:        List of unique resources in a group of resources object. Not required for a resource scheduling query.            ValueType:        URL value.            Example value:        http://www.example.com/printer1.html        http://www.example.com/printer2.html            
member attribute as defined in Section 2.17 or uniquemember attribute as defined in Section 2.40 of .               
     
             MEMBER property as defined in Section 7.6.5 of .            
 
 
     Description:        Information required to gain access to the resource.            ValueType:        Object value.            
           
     
         Description:            Is access to the resource restricted? Can be used for a resource scheduling query.                    ValueType:            Boolean value.                    Example value:            True                    
               
         
                     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                    
     
     
         Description:            URL pointing to complete information for accessing the resource including getting accessibility rights, special entrances, and so on.            Not required for a resource scheduling query.                    ValueType:            URL value.                    Example value:            http://www.example.com/room1_admittance.html                    
               
         
                     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                    
       
 
 
     Description:        Special resource accessibility info for the physically disabled. Not required for a resource scheduling query.            ValueType:        URL value.            Example value:        http://www.example.com/room1_specialaccess.html            
           
     
                 Purpose:  To specify URL pointing to Disabled Access Information.                                Type value: URI.                                Cardinality: (0,n)                             ABNF:           ACCESSABILITYINFO-param = "VALUE=uri" / any-param           ACCESSABILITYINFO-value = uri                             Example:             ACCESSABILITYINFO:http://www.example.com/room1_specialaccess.html                
 
 
     Description:        Capacity of the resource. Can be used for a resource scheduling query.            ValueType:        Integer.            Example value:        10            
           
     
                Purpose:  To specify Capacity Information.                                Type value: integer.                                Cardinality: (0,n)                             ABNF:           CAPACITY-param = "VALUE=integer" / any-param           CAPACITY-value = integer                             Example:             CAPACITY:10                
 
     Description:        Information on resources available as part of this resource.            ValueType:        Object value.            
           
 
     Description:        List of resources available as part of this resource. Can be used for a resource scheduling query.            ValueType:        String value. One or more text values separated by a COMMA character.            Example value:        Printer, Projector            
           
     
                 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                
 
 
     Description:        A URL pointing to other resource URLs related to this resource. Not required for a resource scheduling query.            ValueType:        URL value.            Example value:        http://www.example.com/room1_inventory.html            
           
     
                 Purpose:  To specify URL pointing to Inventory Information.                                Type value: URI.                                Cardinality: (0,n)                             ABNF:           INVENTORYURL-param = "VALUE=uri" / any-param           INVENTORYURL-value = uri                             Example:             INVENTORYURL:http://www.example.com/room1_inventory.html                
 
 
     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.        Not required for a resource scheduling query.            ValueType:        URL value.            Example value:        http://www.example.com/room1_ownerinfo.html            
             owner attribute as defined in Section 2.21 of .            
     
                 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               
 
 
     Description:        Information on the managers of the resource. A manager is someone responsible for the day-to-day up keep of the resource. Not required for a resource scheduling query.            ValueType:        URL value.            Example value:        http://www.example.com/room1_managerinfo.html            
           
     
                 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                
 
 
     Description:        URL to access calendar data of the resource. Not required for a resource scheduling query.            ValueType:        URL value.            Example value:        http://www.example.com/calendar/home/Room1/calendar/            
             Calendar access attribute calCAPURI as defined in Section 2.4.4.3 and calOtherCAPURIs as defined in Section 2.4.4.7 of respectively.            
     
               Calendar access property CAPURI as defined in Section 2.3.3 of .           
 
 
     Description:        URL to read freebusy information of the resource's calendar. Not required for a resource scheduling query.            ValueType:        URL value.            Example value:        http://www.example.com/freebusy/home/Room1/            
             Calendar access attribute calFBURL as defined in Section 2.4.4.2 and calOtherFBURLs as defined in Section 2.4.4.6 of respectively.            
     
             FBURL attribute as defined in Section 2.3.1 of and further explained in Section 7.9.1 of .            
 
 
     Description:        Address used for scheduling the resource by a Calendaring and Scheduling service. Not required for a resource scheduling query.            ValueType:        String value.            Example value:        mailto:room1@example.com            
             Scheduling Address attribute calCalAdrURI as defined in Section 2.4.4.4 and calOtherCalAdrURIs as defined in Section 2.4.4.8 of 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.            
     
             Scheduling Address property CALADRURI as defined in Section 2.3.2 and further explained in Section 7.9.2 of .        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.            
 
 
     Description:        TimeZone Identifier for the timezone the resource is in. Not required for a resource scheduling query.            ValueType:        String value.            Example value:        America/New_York            
           
     
             TimeZone property TZ as defined in Section 7.5.1 of .            
 
 
     Description:        Number of simultaneous bookings allowed. Not required for a resource scheduling query.            ValueType:        Integer value.        Value of 0 indicates no limits.            Example value:        1            
           
     
                 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               
 
 
     Description:        Maximum number of instances of an event, the resource can be scheduled for from NOW. Not required for a resource scheduling query.            ValueType:        Integer value.        Value of 0 indicates no limits.            Example value:        60            
           
     
                 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               
 
 
     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.        Not required for a resource scheduling query.            ValueType: Duration value.        The format is based on the                      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            
           
     
                 Purpose:  To specify how much time in advance the resource can be booked.                                Type value: duration.            The format is based on the                      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               
 
 
     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.        Not required for a resource scheduling query.        BookingWindow Start and End together provide the window of time a resource can be booked relative to the start of the event.            ValueType: Duration value.           The format is based on the                      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            
           
     
                 Purpose:  To specify how much time in advance the resource booking is closed.                                Type value: duration.            The format is based on the                      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               
 
 
     Description:        Information regarding approval of a scheduling request to the resource.            ValueType:        Object value.            
           
     
         Description:            No approval required. Auto accepted. Not required for a resource scheduling query.                    ValueType:            Boolean value.                    Example value:            True                    
               
         
                     Purpose:  To specify if invitations should be automatically accepted.                                Type value: Boolean.                                Cardinality: (0,1)                             ABNF:           AUTOACCEPT-param = "VALUE=boolean" / any-param           AUTOACCEPT-value = "TRUE" / "FALSE"                             Example:             AUTOACCEPT:TRUE                   
       
     
         Description:            URL pointing to complete information on scheduling request approval process for the resource.            Not required for a resource scheduling query.                    ValueType:            URL value.                    Example value:            http://www.example.com/room1_approval.html                    
               
         
                      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                   
       
     
         Description:            Contact information for the scheduling approvers, if approval required. Not required for a resource scheduling query.                    ValueType:            URL value.                    Example value:            http://www.example.com/SchedAdmin1.vcf                    
               
         
                      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                    
       
 
 
     Description:        Scheduling costs for this resource.            ValueType:        Object value.            
           
     
         Description:            No cost for using the resource. Can be used for a resource scheduling query.                    ValueType:            Boolean value.                    Example value:            True                    
               
         
                     Purpose: To specify if resource usage is free.                                Type value: A single boolean value.                                Cardinality: (0,1)                             ABNF:           FREE-param = ; no parameter allowed           FREE-value = boolean                             Example:             FREE:True                  
       
     
         Description:            URL pointing to complete pricing information for usage of the resource. Not required for a resource scheduling query.                    ValueType:            URL value.                    Example value:            http://www.example.com/cost.html                    
               
         
                     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                    
       
 
     Description:        Extra information on the resource. Not required for a resource scheduling query.            ValueType:        Text value.            Example value:        This is a special resource.            
           
     
             NOTE property as defined in Section 6.7.2 of .           
 
 
 
 
dn: cn=Room One,ou=Engineering,dc=example,dc=com objectclass: top objectclass: calendarresource objectclass: admittanceinfo objectclass: inventoryinfo objectclass: schedapprovalinfo objectclass: calendarresourcecost calresourcekind: location uid: 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 accessabilityurl: 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 autoaccept: false approvalinfourl: http://www.example.com/room1_approval.html schedadmin: cn=RoomOwner,ou=Engineering,dc=example,dc=com free: false costurl: http://www.example.com/cost.html resourcenotes: This is a special resource.
dn: cn=Drivers X,ou=Transportation,dc=example,dc=com objectclass: top objectclass: groupOfuniqueNames objectclass: calendarresource objectclass: schedapprovalinfo objectclass: calendarresourcecost calresourcekind: group uid: 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 autoaccept: false approvalinfourl: http://www.example.com/driversX_approval.html schedadmin: cn=TransportationManager,ou=Transportation,dc=example,dc=com free: false costurl: http://www.example.com/driversXcost.html resourcenotes: This is Driver Pool X with three drivers.
 
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 RESTRICTED-ACCESS: true ADMISSIONINFO: http://www.example.com/room1_admittance.html ACCESSABILITYINFO: 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 AUTOACCEPT: false APPROVALINFO: http://www.example.com/room1_approval.html SCHEDADMININFO: http://www.example.com/SchedAdmin1.vcf FREE: false COSTINFO: http://www.example.com/cost.html END:VCARD    
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 AUTOACCEPT: false APPROVALINFO: http://www.example.com/driversX_approval.html SCHEDADMININFO: http://www.example.com/DriversX_SchedAdmin.vcf FREE: false COSTINFO: http://www.example.com/driversXcost.html END:VCARD
   
        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.     
   
             A new IANA token 'resource', that can be used as a value representing a Resource in a VCard,        as defined in needs to be registered.        In addition, the following new VCard Properties need to be registered by IANA.                    New VCard Properties Table:        VCard Property Name        VCard Property Definition         RESTRICTEDACCESS            ADMISSIONINFO             SPECIALACCESS            CAPACITY            INVENTORYLIST            INVENTORYINFO            RESOURCEOWNER            RESOURCEMANAGER            MAXINSTANCE            BOOKINGSTART            BOOKINGEND            AUTOACCEPT            APPROVALINFO             APPROVERINFO            FREE             COST                    
   
             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.          
 
           &RFC2119;      &RFC4519;      &RFC2739;      &cardrev;                                 Data elements and interchange formats --             Information interchange --             Representation of dates and times                                                  International Organization for Standardization