Published

CalConnect Report

CC/R 0907:2009
A Recommendation for Minimum Interoperability of Resource Information
TC USECASE
Andrew LaurenceEditor Mimi MuglerEditor Guy StalnakerEditor
CalConnect Report




Abstract

This document is a recommendation from the CalConnect USECASE Technical Committee regarding the minimum interoperability of resources in the calendaring and scheduling domain.


Foreword

This document incorporates by reference the CalConnect Intellectual Property Rights, Appropriate Usage, Trademarks and Disclaimer of Warranty for External (Public) Documents as located at

http://www.calconnect.org/documents/disclaimerpublic.pdf.

This document is by The Calendaring and Scheduling Consortium. Permission is granted to potential members to reproduce and distribute this presentation within the member organization so long as the presentation is not altered in any way and the Consortium is acknowledged as the originator.

Please send any changes or corrections to the document editor(s).


Introduction

This document was created by the USECASE Technical Committee of the Calendaring and Scheduling Consortium.The document presents a recommendation for enhancing inter-operability of resources within the calendaring and scheduling application domain. Minimum interoperability is the basic level of functionality our collective experience tells us is necessary to have a useful system. The thrust of this effort is to enable resource inter-operability such that, when a described event contains resources, the recipient of that event is able to make practical use of the described resources; ideally the recipient should be so enabled regardless of whether the recipient is within the same calendaring domain. The resulting recommendations rely in part upon adoption of standards revisions that are in draft as of this writing.

A Recommendation for Minimum Interoperability of Resource Information

1.  Methodology

The set of properties determined to be the minimum set for interoperability was chosen via discussion at CalConnect Roundtables and in conference calls of the USECASE Technical Committee. We used a three-pronged process to inform our selection of properties.

First, we conducted an informal survey of properties that are built into existing software products that feature manipulation of resources, which formed a starting point for further winnowing of properties. The software products were not selected by any formal process, but were those available to which committee participants had access. However, we believe these to be a fair representation of the types of calendaring, scheduling, and project management products currently in use. The software applications are:

  • Dotproject v.2x

  • GroupWise 7

  • Kplato

  • Lotus Domino 7

  • MeetingMaker 8.6

  • Microsoft Exchange 2007

  • Microsoft Project 2002

  • Oracle Calendar

  • Planner

  • TaskJuggler

  • Zimbra CS

Secondly, we created a set of use cases and from them extracted a plausible set of properties for the resources in the use cases.

Thirdly, during discussions we came to view resource interoperability as a case where a lack of structured data prevents transmission of useful information between systems. As we looked at attributes for calendar users, we observed a great degree of commonality between calendar user attributes, directory attributes, and vCard attributes. We also observed that implementations effectively repurpose user attributes for use by resources. Given this practical similarity between users and resources, we looked to vCard as a source for structured data that might aid interoperability in resources.

The result was a table of properties showing how many products used the property and the percentage of the total number of product that did so. (See Appendices)

2.  Observations

We observe that these fields are present, in one form or another, in all three sets of attributes:

  • Resource Name

  • Address

  • Category

  • Email

  • Notes/Description

  • Organizational Unit

  • Telephone

  • Time Zone

  • URL

3.  Discussion

The core issue for resource interoperability is enabling resource information, when encapsulated in, or transmitted with, an iCalendar object, to be viewed and understood in a manner that is actionable for the recipient. If the resource is a location, the recipient should be able find it; if a projector, learn its connectors and resolutions; if a piece of transport equipment, learn its carrying capacity and any certifications required for its operation, etc. This goal requires either that sufficient resource data be encapsulated within an iCalendar object or that a reference may be resolved to its canonical source.

Given these goals, our observations regarding the commonality of fields present in different recording systems, and the similarity between resource and user attributes, we looked to vCard as a mechanism for standardizing information for calendar resources. vCard and iCalendar have many similarities in their structured representation of localized data and data types, and they may prove highly compatible for resources as well as traditional users.

The congruence between vCard and iCalendar, and the loci that provide the possibility on which our recommendation is based, are found in the attributes of the ATTENDEE iCalendar property (see Appendixes Appendix D
(normative)
and Appendix E
(normative)
for the relevant sections of the Calsify and vCard drafts):

  • We observe that an attribute of the ATTENDEE property is DIR. DIR is similar to vCard’s SOURCE attribute in that both store a URI value that points to a directory entry.

  • We observe also that iCalendar CUTYPE and vCard KIND play similar roles, being the classification of records in order to differentiate standard users from other types (e.g. group, organization). If there were direct mapping between their possible values, it would be possible to standardize the representation of resource information in vCard objects.

CUTYPE valuesKIND ValuesINDIVIDUAL*individual*GROUPgroupRESOURCE-ROOMUNKNOWN--
orgx-namex-nameiana-tokeniana-token
* indicates default value

We thus have a remarkable congruence between the current iCalendar specification for the attributes of an ATTENDEE and the two vCard properties SOURCE and KIND:

vCard
Source=URI
Kind=<value>

We observe, but have not met, a pragmatic need for additional metadata pursuant to resources. We observe that implementations leave the ResourceName field as an open text string. Customers may or may not have tools to classify their resources according to classes of local import. (e.g., cart, projector, dolly, laptop). We believe this area is ripe for improvement, perhaps in a series of customer-extensible key/value pairs, with population thereof and sorting exposed in the calendar user agents. Ideally, this information could also be encapsulated within an iCalendar object and available to external recipients.

4.  Recommendations

If an event participant’s vCard SOURCE is known, a calendaring system should populate the iCalendar ATTENDEE DIR field with that value. Calendar systems should enable the user to resolve and display the participant’s ( ATTENDEE‘s) data, as enabled and published by the vCard SOURCE. We observe that this functionality is equally valid for users and resources.

The potential values of iCalendar CUTYPE and vCard KIND should be the same in both standards. This direct mapping allows for increased use of vCard as a structured source for storing resource information.

We propose the CUTYPE/KIND attributes for “room” classification encapsulate the broader “venue” concept, perhaps leveraging work in VVENUE as a template for potential schema.


Appendix A
(normative)
Attributes in Vendor Implementations

This table shows just those properties used by two or more applications:

AttributesNumber% UsageResource Name11100.0%Type981.8%Email654.5%Notes/Description654.5%Calendar436.4%Contact Information/Address/Phone/FAX/URL [7]654.5%Max Alloc Percent/Available436.4%Resource ID436.4%Capacity327.3%Hourly Rate/Cost/Use/Overtime436.4%Hourly Rate327.3%Initials327.3%Phone327.3%Working Hours327.3%Cost\Use218.2%External Address218.2%Organizational Unit218.2%Overtime Rate218.2%URL218.2%


Appendix B
(normative)
Attributes observed in use cases

  • accommodations (i.e., seating, tables, possible configurations)

  • address

  • audio input/outp<snort>ut connectors

  • audio/video cable connections

  • audio/video codec

  • capacity

  • cargo capacity (cu ft)

  • cargo capacity (weight)

  • case number

  • cases

  • category (business type)

  • certifications

  • chat/presentation/VOIP software

  • contact

  • contact (i.e., person designated as ‘owner’ — name, location, contact info)

  • contact info: offc #, cell #, fax #

  • contact * maintenance schedule[URL?]

  • contact (name, location, contact info)

  • date visited facility

  • destination address for records (URL, email addr, postal addr)

  • directions

  • discretion

  • driver

  • facility visited (hospital, urgent care, emergency room, doctor’s office)

  • facility visited (police station)

  • if observation = yes, then observation room location

  • if type = tape, then tape type: small cassette, regular cassette

  • if type = tape, then transcriber name and location

  • if type = video, then tape size required

  • if type = video, then videographer name and location

  • individual id number

  • individual name

  • input connector types

  • IP address

  • lift capacity

  • Little room and projector are available.

  • location

  • location: address, city, state, zip

  • location (for pickup and return)

  • maintenance schedule[URL?]

  • manufacturer/model

  • microphone (built-in)

  • microphone type

  • name

  • observation yes/no, (i.e., room has observation via one-way glass to an adjacent room)

  • Operating System

  • Organization (hospital, employer, firm, business)

  • parking space [location?]

  • patient id number

  • patient name

  • personal assistant & contact info

  • phone

  • physical carrying ability

  • portable/fixed?

  • pre-use duration (time prior to event)

  • reason for request

  • recorder type: tape, digital, video

  • records format required (print, electronic)

  • requester address

  • requester contact info

  • requester name

  • resolution

  • role

  • seating capacity

  • software used

  • software version

  • sound capability

  • speakers

  • status (active/inactive?)

  • Supervisor/Manager (contact info)

  • support contact (i.e., for problems about use or issues with device — name, location, contct info)

  • support contact (name, location, contact info)

  • test date

  • test proxies (per ea: name, location, contact info)

  • test results analyists (per ea: name, location, contact info)

  • timezone


Appendix C
(normative)
Attributes in vCard 3.0

  • BEGIN

  • VERSION

  • PRODID

  • FN

  • N

  • NICKNAME

  • PHOTO

  • BDAY

  • ADR

  • LABEL

  • TEL

  • EMAIL

  • MAILER

  • TZ

  • GEO

  • TITLE

  • ROLE

  • LOGO

  • AGENT

  • ORG

  • CATEGORIES

  • NOTE

  • REV

  • SORT-STRING

  • SOUND

  • UID

  • URL

  • CLASS

  • KEY

  • END


Appendix D
(normative)
draft-ietf-calsify-rfc2445bis-08

3.8.4.1. Attendee

Property Name

ATTENDEE

Purpose

This property defines an “Attendee” within a calendar component.

Value Type

CAL-ADDRESS

Property Parameters

IANA, non-standard, language, calendar user type, group or list membership, participation role, participation status, RSVP expectation, delegatee, delegator, sent by, common name or directory entry reference property parameters can be specified on this property.

…​

Description

This property MUST only be specified within calendar components to specify participants, non-participants and the chair of a group scheduled calendar entity. The property is specified within an “EMAIL” category of the “VALARM” calendar component to specify an email address that is to receive the email type of iCalendar alarm.

3.2.6. Directory Entry Reference

Parameter Name

DIR

Purpose

To specify reference to a directory entry associated with the calendar user specified by the property.

Format Definition

This property parameter is defined by the following notation: dirparam = "DIR" "=" DQUOTE uri DQUOTE

Description

This parameter can be specified on properties with a CAL-ADDRESS value type. The parameter specifies a reference to the directory entry associated with the calendar user specified by the property. The parameter value is a URI. The URI parameter value MUST be specified in a quoted-string.

EXAMPLE 1

ORGANIZER;DIR="ldap://example.com:6666/o=ABC%20Industries,c=US???(cn=Jim
%20Dolittle)":mailto:jimdo@example.com

3.2.3. Calendar User Type

Parameter Name

CUTYPE

Purpose

To specify the type of calendar user specified by the property.

Format Definition

This property parameter is defined by the following notation:

cutypeparam = "CUTYPE" "="
("INDIVIDUAL" ; An individual
/ "GROUP" ; A group of individuals
/ "RESOURCE" ; A physical resource
/ "ROOM" ; A room resource
/ "UNKNOWN" ; Otherwise not known
/ x-name ; Experimental type
/ iana-token) ; Other IANA registered
; type
; Default is INDIVIDUAL

Description

This parameter can be specified on properties with a CAL-ADDRESS value type. The parameter identifies the type of calendar user specified by the property. If not specified on a property that allows this parameter, the default is INDIVIDUAL. Applications MUST treat x-name and iana-token value they don’t recognized the same way as they would the UNKNOWN value.

EXAMPLE 2

ATTENDEE;CUTYPE=GROUP:mailto:ietf-calsch@example.org

Appendix E
(normative)
draft-ietf-vcarddav-vcardrev-03

7.1.3. SOURCE

Purpose

To identify the source of directory information contained in the content type.

Value type

uri

Special notes

The SOURCE property is used to provide the means by which applications knowledgeable in the given directory service protocol can obtain additional or more up-to-date information from the directory service. It contains a URI as defined in IETF RFC 3986 and/or other information referencing the vCard to which the information pertains. When directory information is available from more than one source, the sending entity can pick what it considers to be the best source, or multiple SOURCE properties can be included.

EXAMPLE 1

SOURCE:ldap://ldap.example.com/cn=Babs%20Jensen,%20o=Babsco,%20c=US
SOURCE:http://directory.example.com/addressbooks/jdoe/Jean%20Dupont.vcf

7.1.5. KIND

Purpose

To specify the kind of object the vCard represents.

Value type

A single text value.

Special notes

The value may be one of: “individual” for a single person, “group” for a group of people, “org” for an organization, an x-name or an iana-token. If this property is absent, “individual” MUST be assumed as default.

EXAMPLE 2

This represents someone named Jane Doe working in the marketing department of the North American division of ABC Inc.

BEGIN:VCARD
VERSION:4.0
KIND:individual
FN:Jane Doe
ORG:ABC\, Inc.;North American Division;Marketing
END:VCARD

This represents the department itself, commonly known as ABC Marketing.

BEGIN:VCARD
VERSION:4.0
KIND:org
FN:ABC Marketing
ORG:ABC\, Inc.;North American Division;Marketing
END:VCARD

Bibliography

[1]  IETF RFC 3986, T. BERNERS-LEE, R. FIELDING and L. MASINTER. Uniform Resource Identifier (URI): Generic Syntax. 2005. RFC Publisher. https://www.rfc-editor.org/info/rfc3986.