Network Working Group G. FitzPatrick
Internet-Draft SkiCal Consortium
Expires: July 8, 2002 P. Lanner÷
Metamatrix
N. Hjelm
Soft Applications
January 7, 2002
SkiCal - an extension of iCalendar
draft-many-ical-ski-05
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at http://
www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on July 8, 2002.
Copyright Notice
Copyright (C) The Internet Society (2002). All Rights Reserved.
Abstract
This Memo defines the SkiCal format.
SkiCal is a machine-readable format for the interchange of enhanced
yellow-page directory listings. SkiCal expands the traditional
property-set of name, address, telephone number and business
category, adding structured information about people, places,
things, activities and the conditions and terms for interaction with
resources. SkiCal provides a structure for information about dates
FitzPatrick, et al. Expires July 8, 2002 [Page 1]
Internet-Draft SkiCal January 2002
and times, directions, rules and recommendations for participation,
pricing and reservation schemes, access information for those with
special needs, ownership and responsibilities and promotional
material. The referents of these listings, which are both events and
persistent resources are referred to in this draft as SkiSources.
SkiCal is based on and extends the iCalendar format as defined by
RFC-2445, Internet Calendaring and Scheduling Core Object
Specification [3] (iCalendar). SkiCal objects are comprised of
either VEVENT components with the addition of new properties and
property parameters, or the SkiCal specific VOPTIME calendar
component described in this memo.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . 5
2. Reading Instructions and Conventions . . . . . . . . . . 6
2.1 SkiCal Terminology . . . . . . . . . . . . . . . . . . . 6
2.1.1 SkiCal . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.2 SkiSource . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.3 SkiCal object . . . . . . . . . . . . . . . . . . . . . 7
2.1.4 Publisher . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.5 List . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.6 TimeSpender . . . . . . . . . . . . . . . . . . . . . . 7
2.1.7 The 'Wha' Interrogatives . . . . . . . . . . . . . . . . 7
2.1.7.1 WHAT . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.7.2 WHEN . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.7.3 WHERE . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.7.4 WHOW . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.7.5 WHY . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.7.6 WHO . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3. SkiCal specific Property Parameters . . . . . . . . . . 9
3.1 Item . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 Namespace Reference . . . . . . . . . . . . . . . . . . 10
3.3 OPTIMESET reference . . . . . . . . . . . . . . . . . . 11
3.4 SKiROLE . . . . . . . . . . . . . . . . . . . . . . . . 12
4. SkiCal Specific Property Value Data Types . . . . . . . 15
4.1 The OpeningTimes Set . . . . . . . . . . . . . . . . . . 15
4.1.1 Terms used in the OPTIMESET data value declaration . . 15
4.1.1.1 Differences between ISO8601 and RFC2445 . . . . . . . . 18
4.1.1.2 Optimelist DTD . . . . . . . . . . . . . . . . . . . . . 18
4.1.2 Term of the OPTIMESET . . . . . . . . . . . . . . . . . 20
4.1.3 Seasons of the OPTIMESET . . . . . . . . . . . . . . . . 23
4.1.4 Days of the OPTIMESET . . . . . . . . . . . . . . . . . 25
4.1.5 Hours of the OPTIMESET . . . . . . . . . . . . . . . . . 27
4.1.6 Minutes of the OPTIMESET . . . . . . . . . . . . . . . . 27
4.1.7 Seconds of the OPTIMESET . . . . . . . . . . . . . . . . 28
4.2 SkiCal specific Calendar Component . . . . . . . . . . . 29
FitzPatrick, et al. Expires July 8, 2002 [Page 2]
Internet-Draft SkiCal January 2002
4.2.1 The OpTime calendar component . . . . . . . . . . . . . 30
4.3 SkiCal specific Component Properties . . . . . . . . . . 33
4.3.1 WHAT properties . . . . . . . . . . . . . . . . . . . . 34
4.3.1.1 Title . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.3.1.2 Persons . . . . . . . . . . . . . . . . . . . . . . . . 36
4.3.1.3 Thinks . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.3.1.4 Things . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.3.1.5 Actions . . . . . . . . . . . . . . . . . . . . . . . . 39
4.3.1.6 Part relationship to another SkiSource . . . . . . . . . 41
4.3.1.7 Language used at the SkiSource . . . . . . . . . . . . . 42
4.3.1.8 Orientation . . . . . . . . . . . . . . . . . . . . . . 43
4.3.1.9 What URL . . . . . . . . . . . . . . . . . . . . . . . . 44
4.3.1.10 SkiSource Unique Identifier . . . . . . . . . . . . . . 45
4.3.2 WHEN properties . . . . . . . . . . . . . . . . . . . . 46
4.3.2.1 Date-time open . . . . . . . . . . . . . . . . . . . . . 47
4.3.3 WHERE properties . . . . . . . . . . . . . . . . . . . . 48
4.3.3.1 Venue . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.3.3.2 Directions . . . . . . . . . . . . . . . . . . . . . . . 49
4.3.3.3 Place name . . . . . . . . . . . . . . . . . . . . . . . 51
4.3.4 WHOW (HOW) properties . . . . . . . . . . . . . . . . . 52
4.3.4.1 Requirements . . . . . . . . . . . . . . . . . . . . . . 53
4.3.4.2 Recommendations . . . . . . . . . . . . . . . . . . . . 54
4.3.4.3 Prohibited . . . . . . . . . . . . . . . . . . . . . . . 55
4.3.4.4 Price . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.3.4.5 Bookings . . . . . . . . . . . . . . . . . . . . . . . . 58
4.3.4.6 Special access facilities . . . . . . . . . . . . . . . 59
4.3.4.7 Accepted method of payment . . . . . . . . . . . . . . . 60
4.3.5 WHY properties . . . . . . . . . . . . . . . . . . . . . 61
4.3.5.1 Promotion . . . . . . . . . . . . . . . . . . . . . . . 62
4.3.6 WHO properties . . . . . . . . . . . . . . . . . . . . . 63
4.3.6.1 Control . . . . . . . . . . . . . . . . . . . . . . . . 64
4.3.7 MANAGEMENT properties . . . . . . . . . . . . . . . . . 65
4.3.7.1 Publisher . . . . . . . . . . . . . . . . . . . . . . . 66
4.3.7.2 SkiCal Version . . . . . . . . . . . . . . . . . . . . . 67
4.3.7.3 Namespace . . . . . . . . . . . . . . . . . . . . . . . 68
4.3.7.4 Open Times . . . . . . . . . . . . . . . . . . . . . . . 69
4.4 Security considerations . . . . . . . . . . . . . . . . 72
4.5 Internationalisation and localisation . . . . . . . . . 73
4.6 Communication protocol . . . . . . . . . . . . . . . . . 73
4.7 Choosing values from lists . . . . . . . . . . . . . . . 74
4.8 Examples . . . . . . . . . . . . . . . . . . . . . . . . 74
References . . . . . . . . . . . . . . . . . . . . . . . 76
Authors' Addresses . . . . . . . . . . . . . . . . . . . 77
A. Acknowledgements . . . . . . . . . . . . . . . . . . . . 78
Full Copyright Statement . . . . . . . . . . . . . . . . 79
FitzPatrick, et al. Expires July 8, 2002 [Page 3]
Internet-Draft SkiCal January 2002
1. Introduction
SkiCal adapts the iCalendar usage domain of appointments and business
meetings to the needs of producers, brokers and end-users of
resources and services in commerce, tourism, sport, recreation,
health-care, culture, education etc. SkiCal users are both
"TimeSpenders" seeking information about available resources
(SkiSources) and "Publishers" wishing to make that information
public.
Machine-readable directory information serves several purposes;
1. The organization of object properties into structures
convenient for rapid, efficient storage and retrieval.
2. The exchange of compatible objects of information across
divergent platforms
3. The facilitation of automatically generated lay-out for print,
screen and audio representations.
4. The facilitation of automatic translation.
5. The wide-scale discovery and harvesting of information via the
Internet with previously unobtainable accuracy.
FitzPatrick, et al. Expires July 8, 2002 [Page 4]
Internet-Draft SkiCal January 2002
2. Reading Instructions and Conventions
This document is intended to be read alongside RFC-2445 [3]. The
same basic grammar and formatting conventions that apply to iCal,
also apply to SkiCal. For the sake of brevity, the syntax and
clarifications of the data-types, properties and property parameters
of RFC-2445 will not be repeated here.
The notation used in this memo is the ABNF notation of RFC-2234 [6].
Readers intending on implementing the format defined in this memo
should be familiar with this notation in order to properly interpret
the specifications. Also, they MUST be familiar with the iCalendar
core object specification (RFC-2445 [3]).
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 RFC-2119 [2].
2.1 SkiCal Terminology
The following terms are used in this memo:
2.1.1 SkiCal
The Term "SkiCal" refers to the methodology described in this note.
Though originally "S K I" reflected the Scandinavian origins of this
effort, serving as an acronym for "Svenska Kalender Initiativet"
(Swedish Calendar Initiative), this interpretation of the SKi acronym
was changed in September 2000 so that "S K I" now stands for the
"Structured Knowledge Initiative". There is no relationship to the
winter sport "skiing", though of course Skiing events could be
described using SkiCal.
2.1.2 SkiSource
The term "SkiSource" is used to denote a resource existing in time
and space. A SkiSource could be a restaurant, a clothing store, a
theatre or individual performance at the theatre, a public drinking
fountain, a hospital emergency ward, a service station, a radio
program, a webcast, or any other similar resource. Today such
resources are listed in various directories, such as telephone
catalogs, the entertainment section of newspapers, television and
radio program guides, Internet guides, tourist brochures, the
academic schedules of schools, or a community's listing of public
services.
FitzPatrick, et al. Expires July 8, 2002 [Page 5]
Internet-Draft SkiCal January 2002
2.1.3 SkiCal object
The term "SkiCal object" is used in this memo to denote the calendar
object description of a SkiSource using the mime-directory format
described in RFC2445 as follows; "The format for the iCalendar object
is based on the syntax of the RFC 2425 content type. While the
iCalendar object is not a profile of the RFC 2425 content type, it
does reuse a number of the elements from the RFC 2425 specification."
2.1.4 Publisher
The term "Publisher" is used in this memo to denote the publisher(s)
of SkiCal objects. Publishers could be the owners or producers of a
SkiSource. Publishers could be infomediaries making public the
existence of a SkiSource.
2.1.5 List
The term "list" is used to denote a pre-published enumeration or
taxonomy of value-terms. It is RECOMMENDED that publishers use terms
from such lists as the values of TEXT type properties in order to
facilitate the machine readability of their information. A method
for referring to such a list is described in this memo.
2.1.6 TimeSpender
The term "TimeSpender" is used in this memo to denote the end
consumer or beneficiary of SkiCal information. SkiCal is structured
from the view point of the TimeSpender. A typical SkiCal object
contains the answers to the most likely questions a TimeSpender might
ask in order to interact (or make decisions about interacting) with a
SkiSource.
2.1.7 The 'Wha' Interrogatives
The new properties introduced in this memo, as well as the original
properties of RFC2445, are herein sorted by their function as the
answers to 6 categories of queries.
2.1.7.1 WHAT
The WHAT property is the place holder for the answers to questions
such as: What is it? What is happening? What is there? What is it
called? What people, things and concepts will be involved?
2.1.7.2 WHEN
The WHEN property is the place holder for the answers to questions
FitzPatrick, et al. Expires July 8, 2002 [Page 6]
Internet-Draft SkiCal January 2002
such as: When will it happen? When is it open? When can I go there?
2.1.7.3 WHERE
The WHERE property is the place holder for the answers to questions
such as: Where will it happen? Where is it located?
2.1.7.4 WHOW
The WHOW property is the place holder for the answers to questions
such as: How can I attend? How can I join? How can I buy? The word
"how" is intentionally misspelled to indicate relationship to the
other interrogatives, all beginning with "WH".
2.1.7.5 WHY
The WHY property is the place holder for the answers to questions
such as: Why is this happening? Why is this of interest or value to
me?
2.1.7.6 WHO
The WHO property is the place holder for the answers to questions
such as: Who is the owner? Who is the producer? Who is Responsible?
Who do I sue?
FitzPatrick, et al. Expires July 8, 2002 [Page 7]
Internet-Draft SkiCal January 2002
3. SkiCal specific Property Parameters
The following SkiCal property parameters are in addition to those
defined by RFC-2445 Section 4.2 [3] and may be used as specified for
the individual properties of this memo.
skicalparameters =
/ item ; specifies a specific aspect or resource
; as the subject of a property
/ nsref ; points to a NAMESPACE property declaration
; containing the URI of a list of values
/ opref ; points to an OPTIMESET qualifying
; the subject of a property
/ skirole ; qualifies the role of the subject
; of a property
---------------------------------------------------------------------
The following table shows the possible use of SkiCal property
parameters with SkiCal properties.
item nsref opref skirole
| | |
access --opt------opt-------opt--------------
actions --opt------opt-------opt--------------
bookings --opt------opt-------opt--------------
control --opt------opt-------opt-------opt----
directions --opt------opt-------opt--------------
optimes --opt------opt------------------------
namespace --opt------opt------------------------
orientation --opt------opt-------opt--------------
partrel --opt------opt-------opt--------------
paymethod --opt------opt-------opt--------------
persons --opt------opt-------opt-------opt----
placename --opt------opt-------opt--------------
price --opt------opt-------opt--------------
prohibited --opt------opt-------opt--------------
promo --opt------opt-------opt--------------
publisher --opt------opt-------opt-------opt----
recommended --opt------opt-------opt--------------
required --opt------opt-------opt--------------
FitzPatrick, et al. Expires July 8, 2002 [Page 8]
Internet-Draft SkiCal January 2002
skicalver -----------opt------------------------
skilang --opt----------------opt--------------
skuid -----------opt------------------------
things --opt------opt-------opt-------opt----
thinks --opt------opt-------opt-------opt----
title --opt------opt-------opt--------------
whurl -----------opt-------opt-------opt----
use of parameters
---------------------------------------------------------------------
3.1 Item
Parameter Name: ITEM
Purpose: To specify the name of a specific auxiliary element or part
of a SkiSource.
Format Definition: The property parameter is defined by the following
notation:
itemparam = (
( "ITEM" "=" ) / ( "PRXITEM" "=" prefix ":" ) text
)
prefix = 1*( ) ; one or more characters xxx matching the declared
prefix of a NAMESPACE property value
Description: This parameter identifies particular aspects or parts of
a SkiSource when it is desirable to make information about such
aspects or parts known.
Example:
BOOKINGS;PRXITEM="SR:Reptile Room":only outside the Reptile Room!
RECOMMENDED;ITEM="The evening tours":Warm sweater or Jacket
PROHIBITED;ITEM="During the magic show":Flash cameras
BOOKINGS;PRXITEM="K:New Years Eve Dinner";OPREF=NYD:
1-800-256 2222.
3.2 Namespace Reference
Parameter Name: NSREF
Purpose: To point to a namespace declaration within the same SkiCal
FitzPatrick, et al. Expires July 8, 2002 [Page 9]
Internet-Draft SkiCal January 2002
object
Format Definition: The property parameter is defined by the following
notation:
nsrefparam = NSREF "=" prefix
prefix = 1*( ) ; one or more letters matching the declared
; prefix of a NAMESPACE property value
Description: This parameter specifies a prefix that matches a prefix
declared as a NAMESPACE property parameter value. The NSREF
parameter provides a method for relating the value of the property on
which it is used to the appropriate namespace.
It is expected that publishers wishing to optimize interoperability
will choose values from enumerated lists of value-terms. These lists
can be utilized for constraining the values of both properties and
property parameters. The declaration for the URI of such a list is
accomplished using the NAMESPACE property. The NAMESPACE property
can also assign a shorthand prefix to the URI value of the NAMESPACE
and this prefix can be referenced using the NSREF property parameter.
Example:
RESOURCES;NSREF="QLL":HL984 projector
PERSONS;NSREF="WW":Bill Clinton
PERSONS;SKIROLE="orchester-member";NSREF="WW":Bill Clinton
PERSONS;PRXSKIROLE="OM:orchester-member";NSREF="WW":Bill Clinton
REQUIRED;NSREF="TNT":NASCT Certificate
CATEGORIES;NSREF="SSV";LANG=se:Vuxen Utbilding - Biometrics II
3.3 OPTIMESET reference
Parameter Name: OPREF
Purpose: To point to an OPTIMESET declaration.
Format Definition: The property parameter is defined by the following
notation:
oprefparam = OPREF "=" id
id = 1*( ) ; one or more characters matching the declared
; id of an OPTIMESET property value
Description: This parameter specifies an ID that matches an OPTIMESET
FitzPatrick, et al. Expires July 8, 2002 [Page 10]
Internet-Draft SkiCal January 2002
ID as declared in the OPTIMES property. This parameter provides a
method for relating the value of the property within which it is used
to the appropriate OPTIMESET.
Example:
RESOURCES;OPREF="HRTS14":Flight controller on duty
PERSONS;OPREF="BHCC":Patrik Jonasson
PERSONS;SKIROLE="Supervisor";OPREF="J7":James Payne
PERSONS;PRXSKIROLE="OM:MC";OPREF="DCD55":Wycliff Jean
REQUIRED;OPREF="L09":Resident parking permit.
CATEGORIES;OPREF="SSV";LANG=se:Vuxen Utbilding - Biometrics II
3.4 SKiROLE
Parameter Name: SKIROLE
Purpose: To clarify the role of Property values in a SkiCal object.
The use of the ROLE Property Parameter as defined in RFC-2445 [3]
Section 4.2.16 Participation Role is constrained to specific
component properties and specific default values. To avoid
incompatibility, SkiCal defines a new property parameter - SKIROLE.
Format Definition: The property parameter is defined by the following
notation:
FitzPatrick, et al. Expires July 8, 2002 [Page 11]
Internet-Draft SkiCal January 2002
Skiroleparam = (
(( "SKIROLE" "=" ) /
( "PRXSKIROLE" "=" prefix ":" ))
DQUOTE text DQUOTE )
; It is RECOMMENDED that the text value be
; chosen from a list, as described in section 4.7
; in this memo. Some examples of such lists are
; given here:
; as used with the PERSONS property
sampleskirolelist1 = ( "PERFORMER" / "HOST" /
"COMPOSER" / "CONDUCTOR" /
"SALES MANAGER" / "SPECIALIST" /
"EDITOR" / "PRODUCER" /
"GUIDE" / "SPEAKER" /
"CHAIR" / "PRESENT" /
"REFERENCED" / "INVITED" )
; as used with the THINGS property
sampleskirolelist2 = ( "PRESENT" / "EXHIBITED" /
"FOR-SALE" / "FOR-AUCTION" /
"FOR-HIRE" / "APPRAISED" /
"PREMIERED" / "DEMONSTRATED" )
; as used with the THINKS property
sampleskirolelist3 = ( "STUDIED" / "REFERENCED" /
"SUPPORTED" / "DEBATED" /
"CRITICIZED" )
)
Description: The SKIROLE property parameter declares or clarifies the
role of Persons, Organizations, Things, or Thinks declared as the
value for the Component Property
Example:
FitzPatrick, et al. Expires July 8, 2002 [Page 12]
Internet-Draft SkiCal January 2002
PERSONS;PRXSKiROLE="IPPL:PERFORMER";NSREF="IP":Marilyn Manson
PERSONS;PRXSKiROLE="UMLC:COMPOSER":Ludwig van Beethoven
PERSONS;SKiROLE="HOTEL MANAGER":Sylvia Barlot
PERSONS;SKiROLE="MASTER OF CEREMONIES";NSREF="IP":Creed Bradshaw
PERSONS;PRXSKiROLE="MG:HEAD CHEF":Henri Vialach
THINGS;SKiROLE="ON-EXHIBITION":Car models of 2001
THINGS;PRXSKiROLE="BBB:FOR-SALE":Levis jeans
THINGS;SKiROLE="FOR-HIRE":Golf clubs
THINGS;SKiROLE="FOR-SALE":Car models of 2001
THINGS;SKiROLE="DEMONSTRATED":Electrolux refrigerator door computers
THINGS;SKiROLE="FOR-AUCTION":Tiger Woods' golf caps
THINKS;PRXSKiROLE="ACC:STUDIED";NSREF="L":Impressionism
THINKS;SKiROLE="CELEBRATED":Joining the EMU
THINKS;SKiROLE="DEBATED":Monarchy
THINKS;SKiROLE="SUPPORTED";NSREF="L":Children's rights
THINKS;PRXSKiROLE="ABC:REFERENCED":Our plan for the next Millennium
THINKS;SKiROLE="FEATURED":The Ontologies of Cyberspace
FitzPatrick, et al. Expires July 8, 2002 [Page 13]
Internet-Draft SkiCal January 2002
4. SkiCal Specific Property Value Data Types
The following SkiCal property value datatypes are in addition to
those defined by RFC-2445 Section 4.2 [3] and may be used as
specified for the individual properties of this memo.
4.1 The OpeningTimes Set
An iCalendar VEVENT component can only describe one complete date-
time set and its eventual recurrences, such as office meetings or
lunch appointments. Using the SkiCal OPTIMESET of datetime values;
OPTERM, OPSEASONS, OPDAYS, OPHOURS and OPMINUTES and OPSECONDS,
individual SkiCal properties MAY be qualified with date and time
values.
For example, through the use of the OPTIMESET a publisher could
within one calendar object describe not only the general date-times
of a conference, but also when a refreshment bar was open, the
telephone times for a help desk, the last date for submitting papers,
and the opening times of the conference hall itself.
Or in another example, through the use of this OPTIMESET a publisher
could within one calendar object describe the operating times of a
petrol station, differentiating between levels of service such as
when a mechanic was on duty, when the convenience store was open or
full service available.
Formal Definition:
OPTIMESET = "<OPTIME" OPTIMESETattlist ">"
OPTIMESETcontents "</OPTIMESET>"
OPTIMESETattlist = OPTIMESETid
OPTIMESETid = "ID=" idvalue
idvalue = text
OPTIMESETcontents = 1*( "OPTERM" / "OPSEASONS" / "OPDAYS" /
"OPHOURS" / "OPMINUTES" / "OPSECONDS" )
4.1.1 Terms used in the OPTIMESET data value declaration
OPEN: Depending upon the property value being qualified, OPEN
may indicate open, accessible, in-force, operative, available
or any comparable state.
FitzPatrick, et al. Expires July 8, 2002 [Page 14]
Internet-Draft SkiCal January 2002
NOT-OPEN: Depending upon the property value being qualified,
NOT-OPEN may indicate closed, non-accessible, not-in-force,
non-operative, not-available or any comparable state.
NOT-DETERMINABLE: Dates and times that can not be determined as
being open or closed.
DATE-TIME VALUE PAIR: Two date-time values separated by one or
more solidus "/" characters. Value-pairs are either END-
INCLUSIVE or END-EXCLUSIVE.
END-INCLUSIVE Value-pairs: The contents of a SKiCal object are
formated so as to enable unambiguous machine-readability, but
there are of course considerable advantages in maintaining
human readability of the same information. Unfortunately
common date-time value pairs can be ambiguous. If we hear that
someone works from nine to five, then we can with fairly high
probability expect her to go home at five o'clock, but if we
hear that someone will be in town from the first to the 15th,
we, with less assuredness, might assume that they will leave
town on the 16th. The former example is END-EXCLUSIVE while
the later is END-INCLUSIVE.
To facilitate machine-readability it might be convenient to
mandate that all value-pairs are either END-INCLUSIVE or END-
EXCLUSIVE, but this memo allows both types, both for the sake
of human-readability and the fact that END-EXCLUSIVE value-
pairs offer an implicit degree of accuracy lacking in END-
INCLUSIVE. For example END-EXCLUSIVE 170000/180000 is more
suitable than END-INCLUSIVE 170000//175959.99999 in cases where
that sort of precision is desirable. The distinction between
these two types of value-pairs is made by the number of SOLIDUS
characters separating the two values. One SOLIDUS ex: "/"
indicates END-EXCLUSIVE pairs and two SOLIDUS ex "//" indicate
END-INCLUSIVE value pairs.
0105//0110
START-INCLUSIVE END-INCLUSIVE a six day period including the whole of
the
5th day and the whole of the 10th day of January
0105/0110
START-INCLUSIVE END-EXCLUSIVE a five day period including the whole of
the
5th day and the whole of the 9th day of January
the following combinations are not currently described in this memo
START-EXCLUSIVE END-INCLUSIVE a five day period
START-EXCLUSIVE END-EXCLUSIVE a four day period
FitzPatrick, et al. Expires July 8, 2002 [Page 15]
Internet-Draft SkiCal January 2002
PERIOD-EXPLICIT / DURATION-EXPLICIT: This SkiCal memo
stipulates the use of either period-explicit or duration-
explicit value-pairs. Though at first glance the difference
may seem to be only representational, these value-pair
declarations must not be treated as interchangeable. See
below.
PERIOD-EXPLICIT: A period of time that is defined by a specific
start and a specific end.
This means that whenever the start and end of one value-pair
are designated with different time zone identifiers, or
whenever a day-light savings change occurs inclusive to the
period , or whenever a leap day or leap second occurs inclusive
to the period, then the duration of the period value will be
lengthened or shortened accordingly. The duration can only be
determined when all possible fluctuations in leap years and
leap seconds, day light savings schemes and time zone
coordinates are accounted for. In a period-explicit value-pair
the concluding and initiating instances of the pair are fixed
to whatever politically or personally mandated timekeeping is
in force for each end of the value-pair.
DURATION-EXPLICIT: A period of time that is defined by a
specific start coupled to a duration of time or alternatively a
specific end coupled to a duration of time.
In a duration-explicit value pair, the duration is fixed and
can always be calculated as a number of seconds. The start or
the end date-times of the duration-explicit value-pair can only
be determined when all possible fluctuations in leap years and
leap seconds, day light savings schemes and time zone
coordinates are accounted for.
This means that whenever a day-light savings change is
inclusive to the resulting period value, or whenever a leap day
or leap second is inclusive to the period value, then the
duration of the period value will be maintained and the start -
alternatively end, date-time of the period will be moved
forward or backwards in time accordingly. Since no timezone
identifier can be concatenated to the duration value, a
duration-explicit date-time value can only be referenced to one
timezone.
TWO USES of ISO8601 TIME-DATE PERIODS: In duration-specific
value-pairs the amount of time represented must unambiguously
be reducible to a number of seconds. For example P2D is the
equivalent of PT172800S (1 day = 86400 seconds. For this
FitzPatrick, et al. Expires July 8, 2002 [Page 16]
Internet-Draft SkiCal January 2002
reason RFC2445 has limited the possible members of this set to
Weeks, Days, Hours, Minutes and Seconds, considering the
ambiguity involved in the length of a Year or a Month or
century.
At the same time the same members of the complete set;
Centuries, Years, Months, Weeks, Days, Hours, Minutes, Seconds
and fractions thereof, make convenient units for reoccurrences
which are actually period-explicit. For example; reoccurrences
on the third of every month will give instances in time of
unequal duration from each other. In this memo the contents of
the CYCLE attribue use the full ISO8601 set for reoccurrences.
4.1.1.1 Differences between ISO8601 and RFC2445
Negative Periods of time: When representing PERIOD-EXPLICIT value-
pairs, RFC2445 always places the date-time value first in the value
pair. Then the dur-value, by being positive (default, or preceded by
a plus) or negative (preceded by a minus), determines whether the
date-time value serves as the start or end of the period. ISO8601
on the other hand signifies positive or negative durations by the
ordering of values in the value pair. If the dur-value precedes (is
to the left of) the date-time value then the date-time value to the
right is the end of the period. If the dur-value is to the right of
the date-time value then the date-time value serves as the start of
the period.
This memo uses the RFC2445 method for describing negative periods of
time.
4.1.1.2 Optimelist DTD
Format Definition: The OpeningTimes set is defined by the following
xml 1.0 DTD:
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT OPTIMESET (OPTERM | OPSEASONS | OPDAYS | OPHOURS | OPMINUTES |
OPSECONDS)+>
<!ATTLIST OPTIMESET
ID ID #REQUIRED
>
<!ATTLIST OPTERM
range CDATA #IMPLIED
ID ID #IMPLIED
IDREF IDREF #IMPLIED
state (OPEN | NOT-OPEN | UNDETERMINED) #REQUIRED
rangevaluetype (UTC | JulianDate | MJD | TP) #IMPLIED
FitzPatrick, et al. Expires July 8, 2002 [Page 17]
Internet-Draft SkiCal January 2002
>
<!ATTLIST OPSEASONS
range CDATA #IMPLIED
ID ID #IMPLIED
IDREF IDREF #IMPLIED
state (OPEN | NOT-OPEN | UNDETERMINED) #REQUIRED
cycle CDATA #IMPLIED
>
<!ATTLIST OPDAYS
range CDATA #IMPLIED
ID ID #IMPLIED
IDREF IDREF #IMPLIED
cycle CDATA #IMPLIED
state (OPEN | NOT-OPEN | UNDETERMINED) #REQUIRED
rangevaluetype (WEEK | MONTH | YEAR | NUMBER | NAMED ) #REQUIRED
>
<!ATTLIST OPHOURS
range CDATA #IMPLIED
ID ID #IMPLIED
IDREF IDREF #IMPLIED
state (OPEN | NOT-OPEN | UNDETERMINED) #REQUIRED
cycle CDATA #IMPLIED
>
<!ATTLIST OPMINUTES
range CDATA #IMPLIED
ID ID #IMPLIED
IDREF IDREF #IMPLIED
state (OPEN | NOT-OPEN | UNDETERMINED) #REQUIRED
cycle CDATA #IMPLIED
>
<!ATTLIST OPSECONDS
range CDATA #IMPLIED
ID ID #IMPLIED
IDREF IDREF #IMPLIED
state (OPEN | NOT-OPEN | UNDETERMINED) #REQUIRED
cycle CDATA #IMPLIED
>
<!ELEMENT OPTERM (OPSEASONS | OPDAYS | OPHOURS | OPMINUTES | OPSECONDS)*>
<!ELEMENT OPSEASONS (OPDAYS | OPHOURS | OPMINUTES | OPSECONDS)*>
<!ELEMENT OPDAYS (OPHOURS | OPMINUTES | OPSECONDS)*>
<!ELEMENT OPHOURS (OPMINUTES | OPSECONDS)*>
<!ELEMENT OPMINUTES (OPSECONDS)*>
<!ELEMENT OPSECONDS EMPTY>
FitzPatrick, et al. Expires July 8, 2002 [Page 18]
Internet-Draft SkiCal January 2002
4.1.2 Term of the OPTIMESET
Value Name: OPTERM
Purpose: This value type is used to express an interval of time or a
point in time. The OPTERM value type when specified is used in
computing the OPTIMESET. This value type uses the date and date-time
value definitions of RFC 2445 - 4.3.4 Date and 4.3.5 Date-Time as
well as Julian Day, Modified Julian Date as standarized by the
International Astronomical Union and the Network Time Protocol first
described in RFC 868 and elaborated upon in RFC1305 .
The opterm value-type is unique in the OPTIMESET insomuch as it is
"anchored" or fixed to the common era. No other OPTIMESET value-type
shares this function. Without the Opterm, other value-types can
never point to a specific time or date - only infinite free floating
reoccurrences such as every Monday. On the other hand Opterms can
not reoccur.
OPTERM serve the purpose of anchoring and constraining the
reoccurrences of it contents, but is also suitable for declaring
single events or points in time. In the later case the OPTERM will
have no contents.
Formal Definition:
opterm = "<OPTERM" optermattlist ">"
optermcontents "</OPTERM>"
optermattlist = range [id] [idref] state rangevaluetype
range = "range=" DQUOTE optermvalue
*[ "," optermvalue ] DQUOTE
id = "ID=" idvalue
idref = "IDREF=" idrefvalue
state = "state=" ("NOT-OPEN" / "OPEN" / "UNDETERMINED")
rangevaluetype = "rangevaluetype=" ("Gregorian" / "JDN" / "MJD" /
"TP")
optermvalue = optermper_explvalue / optermdur_explvalue
optermper_explvalue = (
(date / date-time) "/" ["/"]
((date / date-time) / term-text ) /
jdn "/" ["/"]
( jdn / term-text ) /
FitzPatrick, et al. Expires July 8, 2002 [Page 19]
Internet-Draft SkiCal January 2002
mjd "/" ["/"]
( mjd / term-text ) /
tp "/" ["/"]
( tp / term-text )
)
date-time = date "T" time
date = date-value
date-value = date-fullyear date-month date-mday
date-fullyear = 4DIGIT
date-month = 2DIGIT ; 01- 12
date-mday = 2DIGIT ; O1-28, 01-29, 01-30, 01-31
time = time-hour time-minute time-second [time-utc]
time-hour = 2DIGIT ;00-23
time-minute = 2DIGIT ;00-59
time-second = 2DIGIT ;00-60 [time-fraction]
; The "60" value is used to
; account for "leap" seconds.
time-fraction = 1*DIGIT
; as many digits as desired may
; may be used.
time-utc = ( "Z" ) / (( "+" / "-") time-hour
[ ":" time-minute] ))
term-text = "THISANDFUTURE" / "THISANDPRIOR" / "POINT"
jdn = float
; a number of days and fractions of days
; Julian Day Number JDN 0.0
corresponds to 12h (noon) on the first
day of the Julian Era, 1 January 4713 BC.
mjd = float
; Modified Julian Date. The last five digits of
; the Julian Date (jdn - 2,400,000.5)
tp = float
; Network Time Protocol representing the number
; of standard seconds since 19000101T000000
;(MJD 15,020.0).
optermdur_explvalue = (date / date-time) "/" rangeperiod
rangeperiod = (["+"] / "-") "P"
(dur-week / dur-day / dur-time )
FitzPatrick, et al. Expires July 8, 2002 [Page 20]
Internet-Draft SkiCal January 2002
dur-week = 1*DIGIT "W"
dur-day = 1*DIGIT "D"
dur-time = "T" (dur-hour / dur-minute / dur-second)
dur-hour = 1*DIGIT "H" [dur-minute]
dur-minute = 1*DIGIT "M" [dur-second]
dur-second = 1*DIGIT "S"
optermcontents = *( "OPSEASONS" / "OPDAYS" / "OPHOURS" / "OPMINUTES" /
"OPSECONDS" )
The OPTERM value type is made up of two date-time values separated by
one - alternatively two, SOLIDUS characters; "/" or "//" (US- ASCII
decimal 47), or one date-time value separated by one or two SOLIDUS
characters, from a text value; By the use of THISANDPRIOR the date-
time value pair signifies an OPTERM period whose start time is either
not relevant or unknown. By the use of THISANDFUTURE the date-time
value pair signifies an OPTERM whose conclusion is either not
relevant or unknown.
OVERLAPING VALUES: For all of the opentimeset members it is permited
to have multiple intervals or points as the value of the range
attribute, indicated by commas. For ex: range=18880808/
P500D,18890909/P5D. When these values overlap such in the example
above, no special consideration will be given to the overlapping
date-times. Above all they do not cancel out each other or turn a
CLOSED into an OPEN or an OPEN into a CLOSED
The OPTERM value includes an ID and an IDREF. Through the ID, an
OPTERM value can be used in another OPTIMESET. Through the IDREF, an
OPTERM declared in any other optimes set may be used.
For example, the following OPTERM might be declared:
OPTIMES:<OPTIMESET ID="Summer">
<OPTERM ID="OPTERM3" range="19751214/THISANDFUTURE" state="OPEN">
<OPSEASONS range="0515/0831" state="OPEN"/>
</OPTERM>
</OPTIMESET>
and then referred to in another OPTIMES declaration.
<OPTIMESET ID="FALL">
<OPTERM IDREF="OPTERM3" state="OPEN">
<OPSEASONS range="0901/1115" state="OPEN"/>
FitzPatrick, et al. Expires July 8, 2002 [Page 21]
Internet-Draft SkiCal January 2002
4.1.3 Seasons of the OPTIMESET
Value Name: OPSEASON
Purpose: This value type is used to express an interval of time. The
Opseasons value-type when specified is used in computing the
OPTIMESET. The value representation of OPSEASONS is ISO8601:2000
Section 5.2.1.3. sub-section d. "A specific day of the month",
Basic Format "--MMDD", modified in this note by the exclusion of "--"
to be "MMDD"
Formal Definition:
FitzPatrick, et al. Expires July 8, 2002 [Page 22]
Internet-Draft SkiCal January 2002
opseasons = "<OPSEASONS" opseasonsattlist ">"
opseasonscontents "</OPSEASONS>"
opseasonsattlist = range [id] [idref] state [cycle]
range = "range=" DQUOTE opseasonsvalue
*[ "," opseasonsvalue ] DQUOTE
id = "ID=" idvalue
idref = "IDREF=" idrefvalue
state = "state=" ("NOT-OPEN" / "OPEN" / "UNDETERMINED")
cycle = "cycle=" cycleperiod
opseasonsvalue = opseasonsper_explvalue / opseasonsdur_explvalue
opseasonsper_explvalue = impliedyeardate "/" ["/"]
( impliedyeardate / seasons-text )
opseasondur_explvalue = impliedyeardate "/"
rangeperiod
impliedyeardate = date-month date-mday [ "T" time ]
seasons-text =
date-month = 2DIGIT ; 01- 12
date-mday = 2DIGIT ; O1-28, 01-29, 01-30, 01-31
cycleperiod = "P" (dur-year / dur-month / dur-week /
dur-day / dur-time )
dur-year = 1*DIGIT "Y"
dur-month = 1*DIGIT "M"
opseasonscontents = *( "OPDAYS" / "OPHOURS" / "OPMINUTES" /
"OPSECONDS" )
Description: The start (left hand) date-time of an OPSEASONS period
may be greater than the end (right hand) date-time of the OPSEASONS
period. In which case the OPSEASONS is considered to straddle two
adjacent calendar years.
An OPSEASONS property value may occur more than once in an OPTIMESET.
Examples:
FitzPatrick, et al. Expires July 8, 2002 [Page 23]
Internet-Draft SkiCal January 2002
OPTIMES;NSREF="MX":<OPTIMESET ID="Summer" ><OPTERM
range="19751214/THISANDFUTURE">
<OPSEASONS range="0515/0901"</OPTERM></OPTIMESET>
PROHIBITED;OPREF="Summer":Studded snow tires
RESOURCES;IDREF="Winter_Season":Night
Golf by artificial lighting
PERSONS;SKIROLE="In-house Tennis Pro";OPREF="Proschedule":
Johanna Locke
RESOURCES;OPREF="cardays":Park access
with motor vehicles
4.1.4 Days of the OPTIMESET
Value Name: OPDAYS
Purpose: This value when specified is used in computing the
OPTIMESET. This value uses a reduced set of the "BYxxx" values as
defined in RFC 2445 - 4.3.10 Recurrence Rule.
Formal Definition:
opdays = "<OPDAYS" opdaysattlist ">"
opdayscontents "</OPDAYS>"
opdaysattlist = range [id] [idref] [cycle] state rangevaluetype
range = "range=" opdaysvalue
id = "ID=" idvalue
idref = "IDREF=" idrefvalue
cycle = "cycle=" cycleperiod
state = "state=" ("NOT-OPEN" / "OPEN" / "UNDETERMINED")
rangevaluetype = "daytype=" ("WEEK" / "MONTH" / "YEAR" /
"NUMBERED" / "NAMED" )
opdaysvalue = ( opwkdayvalue / opmodayvalue / opyrdayvalue )
opwkdayvalue = DQUOTE ( ordweekday / weekdayperiod )
*[ "," ( ordweekday / weekdayperiod ) ] DQUOTE
opmodayvalue = DQUOTE ( ordmoday / modayperiod )
*[ "," ( ordmoday / modayperiod ) ] DQUOTE
opyrdayvalue = DQUOTE ( ordyrday / ordyrdayperiod )
*[ "," ( yrday / yrdayperiod ) ] DQUOTE
ordweekday = [(["+"] ordwk / "-" ordwk)] weekday
ordwk = 1DIGIT ;1 to 5
FitzPatrick, et al. Expires July 8, 2002 [Page 24]
Internet-Draft SkiCal January 2002
weekday = "SU" / "MO" / "TU" / "WE" / "TH" / "FR" / "SA"
;Corresponding to SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY,
;FRIDAY, and SATURDAY days of the week.
ordmoday = ["-" ordmo] moday
ordmo = 2DIGIT ;01 to 31
moday = 2DIGIT ;01 to 31
ordyrday = ["-" ordyr] yrday
ordyr = 3DIGIT ;01 to 366
yrday = 3DIGIT ;01 to 366
weekdayperiod = weekdayperexplicit / weekdaydurexplicit
weekdayperexplicet = ordweekday "/" ["/"] ordweekday
; weekdayperexplicet can be used to define an interval of ordinal
days
; of the week such as "MO/SA" - from Monday until Saturday
weekdaydurexplicet = ordweekday "/" ["/"] rangeperiod
modayperiod = modayperexplicit / modaydurexplicit
modayperexplicet = ordmoday "/" ["/"] ordmoday
modaydurexplicet = ordmoday "/" ["/"] rangeperiod
yrdayperiod = yrdayperexplicit / yrdaydurexplicit
yrdayperexplicet = ordyrday "/" ["/"] ordyrday
; yrdayperiod can be used to define an interval of ordinal days
; of the year such as "055/095" - from the 55th
; to the 95th day of the year
opdayscontents = *( "OPHOURS" / "OPMINUTES" / "OPSECONDS" )
Description:
An OPDAYS value may occur more than once in an OPTIMESET. An
OPDAYS property value may include one or more comma-separated date-
time value pairs for each day or interval of days. Each WEEKDAY
value can also be preceded by a positive (+n) or negative (-n)
integer. If present, this indicates the nth occurrence of the
specific day within the MONTH. For example, +1MO (or simply 1MO)
represents the first Monday within the month, whereas -1MO represents
FitzPatrick, et al. Expires July 8, 2002 [Page 25]
Internet-Draft SkiCal January 2002
the last Monday of the month.
Example:
4.1.5 Hours of the OPTIMESET
Value Name: OPHOURS
Formal Definition:
ophours = "<OPHOURS" ophoursattlist ">"
ophourscontents "</OPHOURS>"
ophourssattlist = range [id] [idref] state [cycle]
range = "range=" ophoursvalue
id = "ID=" idvalue
idref = "IDREF=" idrefvalue
state = "state=" ("OPEN" / "NOT-OPEN" / "UNDETERMINED")
cycle = "cycle=" cycleperiod
ophoursvalue = DQUOTE (ophourper_explvalue /
ophourdur_explvalue )
*[ "," ( ophourper_explvalue /
ophourdur_explvalue ) ]
DQUOTE
ophourper_explvalue = time "/" ["/"] ( time / hour-text )
ophourdur_explvalue = time "/" ["/"] rangeperiod
ophourscontents = *( "OPMINUTES" / "OPSECONDS" )
4.1.6 Minutes of the OPTIMESET
Value Name: OPMINUTES
Purpose: This value when specified is used in computing the
OPTIMESET. This value uses time values as defined in ISO8601 -
Section 5.3.1.4. Truncated representations - paragraph f) Basic
format.
Formal Definition:
FitzPatrick, et al. Expires July 8, 2002 [Page 26]
Internet-Draft SkiCal January 2002
opminutes = "<OPMINUTES" opminutesattlist ">"
opminutescontents "</OPMINUTES>"
opminutessattlist = range [id] [idref] state [cycle]
range = "range=" DQUOTE opminutesvalue
*[ "," opminutesvale]DQUOTE
id = "ID=" idvalue
idref = "IDREF=" idrefvalue
state = "state=" ("NOT-OPEN" / "OPEN" / "UNDETERMINED")
cycle = "cycle=" cycleperiod
opminutesvalue = opminutesper_explvalue / opminutesdur_explvalue
opminutesper_explvalue = time "/"
( time / minute-text )
opminutesdur_explvalue = time "/" rangeperiod
opminutesscontents = *( "OPSECONDS" )
Description: This property value allows the use of minute and second
time values as qualifiers for particular aspects of a SkiSource.
Multiple "period" values are specified by a COMMA character; "," (US-
ASCII decimal 44) separated list.
Examples:
4.1.7 Seconds of the OPTIMESET
Value Name: OPSECONDS
Purpose: This value when specified is used in computing the
OPTIMESET. This value uses time values as defined in ISO8601 -
Section 5.3.1.4. Truncated representations - paragraph g) Basic
format.
Formal Definition:
FitzPatrick, et al. Expires July 8, 2002 [Page 27]
Internet-Draft SkiCal January 2002
opseconds = "<OPSECONDS" opsecondsattlist ">"
"</OPSECONDS>"
opsecondsattlist = range [id] [idref] state [cycle]
range = "range=" DQUOTE opsecondsvalue
*[ "," opsecondsvalue]DQUOTE
id = "ID=" idvalue
idref = "IDREF=" idrefvalue
state = "state=" ("NOT-OPEN" / "OPEN" / "UNDETERMINED")
cycle = "cycle=" cycleperiod
opsecondsvalue = opsecondsper_explvalue / opsecondsdur_explvalue
opsecondsper_explvalue = time "/"
( time / seconds-text )
opsecondsdur_explvalue = time "/" rangeperiod
; the seconds value-type has no contents
Description: This property value allows the use of seconds time
values as qualifiers for particular aspects of a SkiSource. Multiple
"period" values are specified by a COMMA character; "," (US-ASCII
decimal 44) separated list.
Examples:
4.2 SkiCal specific Calendar Component
The body of an iCalendar object consists of a sequence of calendar
properties and one or more calendar components. The calendar
properties are attributes that apply to the calendar as a whole. The
calendar components are collections of properties that express a
particular calendar semantic. For example, the calendar component
can specify an event, a to-do, a journal entry, time zone
information, or free/busy time information, or an alarm.
A SkiCal extended iCalendar object may include a "VOPTIME" calendar
component as defined by the following notation:
FitzPatrick, et al. Expires July 8, 2002 [Page 28]
Internet-Draft SkiCal January 2002
component = (
/ optimec
)
4.2.1 The OpTime calendar component
Component Name: "OPTIME
Purpose: Provide a grouping of component properties that describe the
opening times of a SkiSource.
Format Definition: An "OPTIME" calendar component is defined by the
following notation:
optimec = "BEGIN" ":" "OPTIME" CRLF
optimeprop *alarmc
"END" ":" "OPTIME" CRLF
optimeprop = *(
; the following are optional,
; but MUST NOT occur more than once
; the following are properties
; defined in RFC2445
class / created / description / geo /
last-mod / location / organizer / priority /
dtstamp / seq / status / summary / transp /
uid / url / recurid /
; the following are properties
; defined in this memo
skicalver / publisher / skuid /
whurl
; the following are optional,
; and MAY occur more than once
; the following are properties
; defined in RFC2445
attach / attendee / categories / comment /
FitzPatrick, et al. Expires July 8, 2002 [Page 29]
Internet-Draft SkiCal January 2002
contact / related / resources /
x-prop /
; the following are properties
; defined in this memo
access / actions / bookings / control /
directions / dtopen /optimes /namespace /
orientation / partrel / paymethod /
persons / placename / price /
prohibited / promo / recommended
required / skicalver / skilang
things / thinks / title
)
Description: An "OPTIME" calendar component is a grouping of
component properties, possibly including "VALARM" calendar
components, that describes date-time values that we normally refer to
as opening hours or business hours or operating hours. The OPTIME
component can be used to declare such times for any imaginable
resource. Generally, Opening Time schedules in any significant
number are not ideal for visual representation in traditional PIM
calendars, since if stored in an "opaque" manner they would "clutter
up" the limited visual space available. It is recommended that
implementers develop alternative methods for visual representation of
Optime calendar components.
The "OPTIME" calendar component is identical to the "VEVENT" calendar
component with the exception that the Date-time related properties
such as DTSTART, DTEND and DURATION have been removed and replaced by
the DTOPEN property.
Example: The following is an example of the "VOPTIME" calendar
component used to represent the business hours of a video rental
store that is open daily from 10am to 10pm, except for Fridays and
Saturdays, when open to 12pm :
FitzPatrick, et al. Expires July 8, 2002 [Page 30]
Internet-Draft SkiCal January 2002
BEGIN:VOPTIME
UID:20020901T130000Z-123401@host.com
DTSTAMP:20020901T1300Z
OPTIMES:<OPTIMESET ID="DEMO9"><OPDAYS range="FR,SA"
state="OPEN" daytype="WEEK"><OPHOURS state="OPEN" range=
"100000/240000"/></OPDAYS><OPDAYS range="SO-TH" state=
"OPEN" daytype="WEEK"><OPHOURS state="OPEN" range=
"100000/220000"/></OPDAYS></OPTIMESET>
TITLE:Videorama
DTOPEN;OPREF="TS":Monday
to Thursday from 10am to 10pm. Open to 12pm
on Fridays and Saturdays
CLASS:PUBLIC
CATEGORIES:ENTERTAINMENT,Video rentals
END:VOPTIME
The following is an example of a schedule for one academic course,
extending across two semesters with a recess for the Christmas
holidays:
BEGIN:VOPTIME
UID:20020901T130000Z-123402@host.com
DTSTAMP:20020401T130000Z
OPTIMES:<OPTIMESET ID="DEMO10"><OPTERM state=
"OPEN" range="20020825/20030701"><OPSEASONS state="OPEN"
range="0915/1220,0110/0522"><OPDAYS range="TU,TH"
state="OPEN" daytype="WEEK"><OPHOURS state="OPEN"
range="190000/210000"/></OPDAYS></OPSEASONS></OPTERM></OPTIMESET>
</SET>
DTOPEN;OPREF="0110":Evening classes
TITLE:Sensitivity awareness class - HT013.
CLASS:PUBLIC
CATEGORIES:EDUCATION, BUSINESS ADMIN
END:VOPTIME
The following is an example of a "VOPTIME" calendar component used to
represent the opening of a stretch of freeway. Since the freeway is
expected to remain open indefinitely it suffices to merely indicate
an opening using the TERM value type. In this example an opening
ceremony is also declared :
FitzPatrick, et al. Expires July 8, 2002 [Page 31]
Internet-Draft SkiCal January 2002
BEGIN:VOPTIME
UID:20020901T130000Z-123403@host.com
DTSTAMP:20020901T1300Z
OPTIMES ID="TYT":<OPTIMESET ID="DEMO11"><OPTERM
state="OPEN" range="20030225/THISANDFUTURE"/>
</OPTIMESET>
OPTIMES:<OPTIMESET ID="DEMO12"><OPTERM
state="OPEN" range="20030225T15300Z/20030225T16300Z"/>
</OPTIMESET>
DTOPEN;OPREF="TYT":Freeway opening
SUMMARY:The Martello bypass becomes operational.
ACTIONS;OPREF="R5T":Grand opening ceremony
CLASS:PUBLIC
CATEGORIES:TRANSPORTATION, ROADS, FREEWAYS
END:VOPTIME
4.3 SkiCal specific Component Properties
The class of SkiCal objects is a superset of the class of iCalendar
objects. Therefore any component property, which MAY appear in a
VEVENT iCalendar component, is also allowed in a SkiCal object. In
addition, the following component properties are defined in this
memo.
eventprop = / *(
; the following are optional,
; but MUST NOT occur more than once
publisher / skuid / whurl
; the following are optional,
; and MAY occur more than once
access / actions / bookings / control /
directions / optimes /namespace /
orientation / partrel / paymethod /
persons / placename / price /
prohibited / promo / recommended
required / skicalver / skilang
things / thinks / title
)
It is RECOMMENDED that publishers chose the terms used as TEXT type
property values from authoritative lists of terms. Section 4.7
For reasons of clarity the properties self-describing the SkiCal
FitzPatrick, et al. Expires July 8, 2002 [Page 32]
Internet-Draft SkiCal January 2002
object are presented under the "MANAGEMENT" header (Calendar object
management), while properties describing the actual SkiSource being
described are presented under the interrogative headers; "WHAT",
"WHEN", "WHERE", "WHO", "WHY", and "WHOW". For example, the date
when a SkiCal object describing a SkiSource was published would be
defined by RFC2445 4.8.7.1 Date/Time Created, and this property would
be sorted under MANAGEMENT while the date the actual SkiSource being
described occurs is defined by RFC2445 4.8.2.4 Date/Time Start which
would be sorted under WHEN. The creator of a SkiCal object
describing a SkiSource is defined by RFC2445 4.8.4.3 Organizer, and
this property would be sorted under MANAGEMENT while the "organizer"
or producer of the actual SkiSource being described could be defined
by the one of the SkiCal properties such as Section 4.3.6.1 which
would be sorted under WHO.
4.3.1 WHAT properties
The following properties serve as place-holders for the answers to
user questions about the SkiSource such as "What is it?" and "What is
happening?".
The properties defined in RFC-2445 [3] related to WHAT are:
4.8.1.2 Categories
4.8.1.5 Description - The description property in RFC2445 can
be used to hold any sort of WHA information.
4.8.1.11 Status
4.8.1.12 Summary - The summary property in RFC2445 can be used
to hold any sort of WHA information.
In addition to the properties named above as defined in RFC-2445 [3],
a SkiCal object may include the following properties
4.3.1.1 Title
Property Name: TITLE
Purpose: This property specifies the title or name of the SkiSource
being described.
Value Type: TEXT.
Property Parameters: Non-standard and language property parameters
can be specified on this property.
FitzPatrick, et al. Expires July 8, 2002 [Page 33]
Internet-Draft SkiCal January 2002
Conformance: This property CAN be specified within a "VEVENT" or
"VOPTIME" calendar component.
Description: Public SkiSources often have titles . The title may not
be directly descriptive of the SkiSource. The Title might be
abstract in nature or it might be a copyrighted name that an owner
wishes to see included in the calendar object. The following example
illustrates the difference between SUMMARY and TITLE: A photo
exhibition by photographer Collier Schorr in New York City called
"Excuse Me While I Kiss the Sky" can be described by these two lines
in a SkiCal file:
SUMMARY:Collier Schorr photos on exhibit in NYC
TITLE:Excuse Me While I Kiss the Sky
Format Definition: The property is defined by the following notation:
title = "TITLE" titleparam ":" text CRLF
; It is RECOMMENDED, when feasible, that the
; text value be chosen from a list,
; as described in section 4.7
titleparam = *(
; the following is optional,
; but MUST NOT occur more than once
(";" languageparam ) / (";" nsrefparam ) /
( oprefparam ) /
; the following is optional,
; and MAY occur more than once
(";" xparam)
)
Example: The following are examples of this property:
TITLE:MacDonald's
TITLE;NSREF="TX":Les Miserables(c)
TITLE;LANGUAGE=sv:En kvall med Victor Borge
TITLE;LANGUAGE=en:One night with Victor Borge
TITLE;LANGUAGE=en;NSREF="FFL":Around the World in 80 Days
FitzPatrick, et al. Expires July 8, 2002 [Page 34]
Internet-Draft SkiCal January 2002
4.3.1.2 Persons
Property Name: PERSONS
Purpose: To facilitate for TimeSpenders the discovery of SkiSources
relating to specific people - living or dead.
Value Type: TEXT.
Property Parameters: Non-standard property parameters can be
specified on this property.
Conformance: This property CAN be specified within a "VEVENT" or
"VOPTIME" calendar component.
Description: Persons at a SkiSource might be a shop keeper, waiter,
hostess, artist, a sports team, a guide, a disc jockey or a master of
ceremonies and so forth. This property specifies named persons
associated with the SkiSource, working at the SkiSource or present at
the SkiSource. Persons expected to perform or participate, act or
speak, contribute in person to the SkiSource - or to be honoured,
referenced, criticized etc., in absence.
Format Definition: The property is defined by the following notation:
persons = "PERSONS" personsparam ":" text CRLF
; It is RECOMMENDED that the text value be
; chosen from a list, as described in section 4.7
; of this memo.
personsparam = *(
; the following is optional,
; but MUST NOT occur more than once
(";" languageparam ) /(";" skiroleparam ) /
(";" nsrefparam ) / (";" oprefparam ) /
; the following is optional,
; and MAY occur more than once
(";" xparam)
)
Example: The following are examples of this property:
FitzPatrick, et al. Expires July 8, 2002 [Page 35]
Internet-Draft SkiCal January 2002
PERSONS;SKiROLE="PERFORMER":Madonna
PERSONS;PRXSKiROLE="IUI:COMMEMORATED":Madonna
PERSONS:Victor Borge
PERSONS;PRXSKiROLE="JBP:Clarinetist":Woody Allen
PERSONS;SKiROLE="PRESENT":The Queen of Spain
PERSONS;SKiROLE="PERFORMER";LANGUAGE=sv:AIK a-laget i fotboll
PERSONS;SKiROLE="INVITED":the Hawthorn High School class of 1982
PERSONS;OPREF="SAPT";PRXSKiROLE="WPRL:REFERENCED":
Nelson Mandela
PERSONS;PRXSKiROLE="GGP:STUDIED":Socrates
PERSONS;SKiROLE="HOSTESS":Martha Edwards
4.3.1.3 Thinks
Property Name: THINKS
Purpose: To facilitate for TimeSpenders the discovery of SkiSources
relating to specific concepts, topics, themes and areas of interest
Value Type: TEXT
Property Parameters: Non-standard property parameters can be
specified on this property.
Conformance: This property CAN be specified within a "VEVENT" or
"VOPTIME" calendar component.
Description: This property specifies a a topic or subject - a THINK.
Format Definition: The property is defined by the following notation:
thinks = "THINKS" thinksparam ":" text CRLF
; It is RECOMMENDED that the text value be
; chosen from a list, as described in section 4.7
; of this memo.
thinksparam = *(
; the following is optional,
; but MUST NOT occur more than once
(";" languageparam ) /(";" skiroleparam ) /
(";" nsrefparam ) /(";" oprefparam ) /
; the following is optional,
; and MAY occur more than once
FitzPatrick, et al. Expires July 8, 2002 [Page 36]
Internet-Draft SkiCal January 2002
(";" xparam)
)
Example: The following are examples of this property:
THINKS:World Peace
THINKS;SKiROLE="STUDIED":Our business strategy for the new millennium
THINKS;PRXSKiROLE="XJI:ANALYZED":The work of George Lucas
THINKS:Christianity, Buddhism
THINKS:Transaction Cost Economics
4.3.1.4 Things
Property Name: THINGS
Purpose: To facilitate for TimeSpenders the discovery of SkiSources
relating to objects, things, specific goods and products, collectors
items, various commodities and so forth.
Value Type: TEXT.
Property Parameters: Non-standard property parameters can be
specified on this property.
Conformance: This property CAN be specified within a "VEVENT" or
"VOPTIME" calendar component.
Description: Things pertaining to a resource-entity. For example;
books, paintings, furniture, Gucci Handbags, Wrangler Jeans,
Portuguese wines. This property specifies things of significance
exhibited, featured, for sale, for-auction, for-rent, to be given
away or observed at the resource-entity.
Format Definition: The property is defined by the following notation:
FitzPatrick, et al. Expires July 8, 2002 [Page 37]
Internet-Draft SkiCal January 2002
things = "THINGS" thingsparam ":" text CRLF
; It is RECOMMENDED that the text value be
; chosen from a list, as described in section 4.7
; of this memo.
thingsparam = *(
; the following is optional,
; but MUST NOT occur more than once
(";" languageparam ) / (";" skiroleparam ) /
(";" nsrefparam ) / (";" oprefparam ) /
; the following is optional,
; and MAY occur more than once
(";" xparam)
)
Example: The following are examples of this property:
THINGS;PRXSKiROLE="II:LECTURED-ON":German Antiques
THINGS;SKiROLE="FOR-SALE":German Antiques
THINGS;PRXSKiROLE="UTTT:APPRAISED":German Antiques
THINGS;LANGUAGE=sv:Fritidsbåtar
THINGS;SKiROLE="LECTURED-ON":Ming Dynasty Porcelain
THINGS;SKiROLE="SERVED":Thai cuisine
THINGS;PRXSKiROLE="M:AUCTIONED":The Vanderbilt Jewels
THINGS;PRXSKiROLE="PP:REFERENCED":The holy Grail
4.3.1.5 Actions
Property Name: ACTIONS
Purpose: To facilitate for TimeSpenders the discovery of resource-
entities in relation to things happening, processes, movements, etc.
Value Type: TEXT.
Property Parameters: Non-standard property parameters can be
specified on this property.
FitzPatrick, et al. Expires July 8, 2002 [Page 38]
Internet-Draft SkiCal January 2002
Conformance: This property CAN be specified within a "VEVENT" or
"VOPTIME" calendar component.
Description: Actions at a SkiSource. For example; a sale, an
auction, a house warming, a legal process, a business process, an
awards process etc. This property specifies actions of significance
taking place at the resource-entity.
Format Definition: The property is defined by the following notation:
actions = "ACTIONS" actionsparam ":" text CRLF
; It is RECOMMENDED that the text value be
; chosen from a list, as described in section 4.7
; of this memo.
actionsparam = *(
; the following is optional,
; but MUST NOT occur more than once
(";" languageparam ) / (";" nsrefparam ) /
(";" oprefparam ) /
; the following is optional,
; and MAY occur more than once
(";" xparam)
)
Example: The following are examples of this property:
ACTIONS:Vote on Stock split
ACTIONS:Bankruptcy proceedings
ACTIONS:Draft approval
ACTIONS;LANGUAGE=sv:utförsälning
ACTIONS:Lecture
ACTIONS:Queen Mary IV launch
ACTIONS;OPREF="SCH":Team tryouts
ACTIONS:Spring term enrollment
ACTIONS:wedding
FitzPatrick, et al. Expires July 8, 2002 [Page 39]
Internet-Draft SkiCal January 2002
4.3.1.6 Part relationship to another SkiSource
Property Name: PARTREL
Purpose: This property specifies another SkiSource, to which the
SkiSource being declared is related. This does not imply an
inheritance of properties from the external SkiSource.
Value Type: TEXT. (SKUID for another SkiCal/iCalendar object.)
Property Parameters: Non-standard property parameters can be
specified on this property. It is RECOMMENDED that a Common Name
parameter (cnparam) be specified on this property.
Conformance: This property CAN be specified within a "VEVENT" or
"VOPTIME" calendar component.
Description: This property allows for the publisher of a SkiSource to
indicate a relation to another SkiSource. This property differs from
the RELATED-TO property of RFC-2445 [3], which defines a relationship
between calendar objects describing SkiSources and not between
SkiSources themselves.
Format Definition: The property is defined by the following notation:
partrel = "PARTREL" partrelparam ":" text CRLF
partrelparam = *(
; the following is optional,
; but MUST NOT occur more than once
(";" languageparam ) / (";" cnparam ) /
(";" reltypeparam) / (";" nsrefparam ) /
(";" oprefparam ) /
; the following is optional,
; and MAY occur more than once
(";" xparam)
)
Example: The following are examples of this property:
FitzPatrick, et al. Expires July 8, 2002 [Page 40]
Internet-Draft SkiCal January 2002
PARTREL;RELTYPE=CHILD;CN=Vattenfestivalen:<19990401T080045Z-F192713@
.se>
PARTREL;CN=2004 Winter Olympics;RELTYPE=CHILD:<19991202@olympic.org>
PARTREL;RELTYPE=SIBLING:<ev32987-a33498@calendar.com>
4.3.1.7 Language used at the SkiSource
Property Name: SKILANG
Purpose: This property specifies the main language, used at the
SkiSource.
Value Type: TEXT.
Property Parameters: Non-standard property parameters can be
specified on this property.
Conformance: This property CAN be specified within a "VEVENT" or
"VOPTIME" calendar component.
Description: Language used at the SkiSource. For example, the main
language of a theatre play, the language spoken by the teacher of a
course, or the languages spoken by the salespeople in a boutique.
NOTE: If the SkiSource is being translated, the information about
what languages are available as translations could be published under
RESOURCES.
NOTE: If knowledge of a certain language is required in order to
appreciate the SkiSource, this should be indicated by a REQUIRED (or
RECOMMENDED) property.
Format Definition: The property is defined by the following notation:
skilang = "SKILANG" skilangparam ":" language CRLF
skilangparam = *(
; the following is optional,
; but MUST NOT occur more than once
(";" oprefparam ) / (";" itemparam) /
; the following is optional,
; and MAY occur more than once
FitzPatrick, et al. Expires July 8, 2002 [Page 41]
Internet-Draft SkiCal January 2002
(";" xparam)
)
language = <Text identifying a language, as defined in
RFC-1766
>
Example: The following are examples of this property:
SKILANG:en,fr
SKILANG:sv
SKILANG;OPREF="001":en
SKILANG;OPREF="002":sv
SKILANG;ITEM="All our guides speak English":en
SKILANG;ITEM="subtitles":da
4.3.1.8 Orientation
Property Name: ORIENTATION
Purpose: This property specifies the target audiences for the
SkiSource.
Property Parameters: Non-standard property parameters can be
specified on this property.
Conformance: This property CAN be specified within a "VEVENT" or
"VOPTIME" calendar component.
Description: This property can facilitate SkiSource discovery. It
can indicate that a SkiSource has a specific target audience or
consumer type, or that it is related to a specific cause, faith,
professional group, gender, ethnic group etc. Infomediaries can use
this property to define their own specific customer orientation types
without altering the values in CATEGORIES.
Format Definition: The property is defined by the following notation:
orientation = "ORIENTATION" orientationparam ":" text CRLF
; It is RECOMMENDED that the text value be
; chosen from a list, as described in section 4.7
; of this memo.
FitzPatrick, et al. Expires July 8, 2002 [Page 42]
Internet-Draft SkiCal January 2002
orientationparam = *(
; the following is optional,
; but MUST NOT occur more than once
(";" orienttypeparam ) /
orienttypeparam = (( "ORIENTTYPE" "=" text) /
( "PRXORIENTTYPE" "=" prefix ":" text ) /
(";" languageparam ) / (";" nsrefparam ) /
(";" oprefparam ) / (";" itemparam) /
; It is RECOMMENDED that the text value be
; chosen from a list, as described in section 4.7
; of this memo.
; the following is optional,
; and MAY occur more than once
(";" xparam)
)
Value Type: TEXT.
Example: The following are examples of this property:
ORIENTATION;NSREF="G";ORIENTTYPE=Religious:Methodist
ORIENTATION;PRXORIENTTYPE="DR:DemographicsRus":Soccer Moms
ORIENTATION;ORIENTTYPE=DemographicsRus:Champagne Set
ORIENTATION;NSREF="DR":Senior Citizens
ORIENTATION;OPREF="ty";ORIENTTYPE=Gender:Female
ORIENTATION;ORIENTTYPE=TimeOut:Gay
ORIENTATION;ITEM="Laser scapels";ORIENTTYPE=Occupation:Medical
4.3.1.9 What URL
Property Name: WHURL
Purpose: This property defines a Uniform Resource Locator (URL)
associated with the SkiSource the SkiCal object is describing.
Value Type: URI
Property Parameters: Non-standard property parameters can be
specified on this property.
Conformance: This property CAN be specified within a "VEVENT" or
FitzPatrick, et al. Expires July 8, 2002 [Page 43]
Internet-Draft SkiCal January 2002
"VOPTIME" calendar component.
Description: This property may be used in a SkiCal object to convey a
URL for information about the SkiSource. The difference between
WHURL and the iCal Property URL as defined in RFC2445 section 4.8.4.6
is that while URL points to some place "where a more dynamic
rendition of the calendar information associated with the calendar
component can be found", WHURL points to the "home page" of the
SkiSource itself. This memo does not attempt to standardize the form
of the URI, nor the format of the resource pointed to by the property
value.
Format Definition: The property is defined by the following notation:
whurl = "WHURL" whurlparam ":" uri CRLF
whurlparam = *(
; the following is optional,
; but MUST NOT occur more than once
(";" languageparam ) / (";" nsrefparam )
; the following is optional,
; and MAY occur more than once
(";" xparam)
)
Example: The following are examples of this property:
WHURL:http://www.dalasphilharmonic.com/events/030516/mehta.htm
4.3.1.10 SkiSource Unique Identifier
Property Name: SKUID
Purpose: This property specifies a persistent, globally unique
identifier for the SkiSource.
Value Type: TEXT
Property Parameters: Non-standard property parameters can be
specified on this property.
Description: This property provides a method for determining a
definite, authoritative and unique identification of a SkiSource.
SKUID differs from the UID property defined in RFC2445 section
4.8.4.7, whereas UID identifies a calendar component (SkiCal object),
FitzPatrick, et al. Expires July 8, 2002 [Page 44]
Internet-Draft SkiCal January 2002
SKUID identifies the SkiSource being defined by the calendar
component.
The SKUID itself MUST be a globally unique identifier. The generator
of the identifier MUST guarantee that the identifier is unique.
There are several algorithms that can be used to accomplish this.
The identifier is RECOMMENDED to be the identical syntax to the RFC-
822 [7] addr-spec. A good method to assure uniqueness is described
in RFC-2445 [3], section 4.8.4.7 about Unique Identification Numbers.
Format Definition: The property is defined by the following notation:
skuid = "SKUID" skuidparam ":" text CRLF
skuidparam = *(
; the following is optional,
; but MUST NOT occur more than once
(";" languageparam ) / (";" nsrefparam )
; the following is optional,
; and MAY occur more than once
(";" xparam)
)
Example: The following are examples of this property:
SKUID:20021001T090045Z-4000F192713-0052@qwack.com
SKUID;NSREF="TG":20021001T090045Z-4000F192713-0052@qwack.com
4.3.2 WHEN properties
The following properties answer time and date related questions about
the SkiSource, such as "When is it open" and "When does it happen?".
The properties defined in RFC-2445 [3] related to WHEN are:
4.8.2 Date and Time Component Properties
4.8.3 Time Zone Component Properties
4.8.5 Recurrence Component Properties
FitzPatrick, et al. Expires July 8, 2002 [Page 45]
Internet-Draft SkiCal January 2002
4.3.2.1 Date-time open
Property Name: DTOPEN
Purpose: This property can be used to specify reoccurring date-time
schedules such as the opening -, operating -, accessible times of a
SkiSource. This Property is suitable for "persistent resources",
that is resources that unlike events have regular persistent
operating hours. Though in some cases a publisher could describe
opening hours using the existing time-date properties and
reoccurrence rules of RFC2445, those rules are not optimized for
this sort of use. Further, a collection of such SkiSources, for
example all the shops and restaurants in one's neighbourhood, would
clutter a traditional PIM calendar, where events are expected to
happen in a more or less serial fashion.
Conformance: This property can be specified in a "VOPTIME" calendar
component.
Value Type: The default value type is TEXT.
Property Parameters: Non-standard, value data type, time zone
identifier property parameters can be specified on this property.
Description: This property defines access information for a SkiSource
- what are usually called the hours of business or operation. The
date time values are stated through the OPTIMESET of property Values
and are referred to with the opref property parameter value. The
value of the Property is a text label describing what the opening
times derived through the OPTIMESET are referring to. The OPTIMESET
can be used to qualify several of the SkiCal properties. If a
SkiSource can be considered to have a "main", "primary" or
"essential" Opening Times, then it is recommended that the DTOPEN
property be used to declare these.
There is a known discrepancy in RFC2445. In section 4.6.1 Event
Component, the ABNF declares that there are no obligatory properties
in a VEVENT Component, while in 4.8.2.4 Date/Time Start it is stated
that "The property is REQUIRED in "VEVENT" calendar components. Even
though the ABNF takes precedent over prose, until this discrepancy
is resolved it is recommended that SkiCal publishers always include a
DTSTART property in a SkiCal object. If the publishers intention is
to declare Opening Times and not the date-times of a specific event,
it is recommended that they use the VOPTIME calendar component.
Format Definition: The property is defined by the following notation:
FitzPatrick, et al. Expires July 8, 2002 [Page 46]
Internet-Draft SkiCal January 2002
dtopen = "DTOPEN" opentimeparam ":" TEXT CRLF
opentimeparm = *(
; the following are optional,
; but MUST NOT occur more than once
( opref / (";" languageparam ) /
(";" nsrefparam ) /
; the following is optional,
; and MAY occur more than once
*(";" xparam)
)
Example: The following are examples of this property:
DTOPEN;opref="Bstandard":Balthazar's schedule
4.3.3 WHERE properties
The following properties serve as place-holders for the answers to
user questions about the SkiSource such as "Where does it happen?"
and "Where do I find the SkiSource?".
The properties defined in RFC-2445 [3] related to WHERE are:
4.8.1.6 Geographic Position (GEO)
4.8.1.7 Location
SkiCal objects SHOULD use vCards [RFC 2426] as an ALTREP parameter
value to the LOCATION property parameter, in order to provide machine
readability and maintain information structure when exchanging data.
For example, the alternate representation may specify either an LDAP
URI pointing to an LDAP server entry or a CID URI pointing to a MIME
body part containing a vCard for the location.
In addition to the properties named above as defined in RFC-2445 [3],
a SkiCal object may include the following properties.
4.3.3.1 Venue
Property Name: VENUE
Purpose: This property classifies the type of physical context in
FitzPatrick, et al. Expires July 8, 2002 [Page 47]
Internet-Draft SkiCal January 2002
which an SkiSource takes place.
Value Type: TEXT.
Property Parameters: Non-standard property parameters can be
specified on this property.
Conformance: This property CAN be specified within a "VEVENT" or
"VOPTIME" calendar component.
Description: The venue parameter divides SkiSources into a number of
distinctly different groups, this is useful when there is a need to
quickly reduce the number of SkiSources in a selection. For example:
When searching for outdoor sport SkiSources to take part in, it will
help not having to browse through listings of TV shows showing
sports.
Format Definition: The property is defined by the following notation:
venue = "VENUE" venueparam ":" venuetype CRLF
venueparam = *(
; the following is optional,
; and MAY occur more than once
(";" xparam)
)
venuetype = "Internet" /
"Radio" /
"TV" /
"Outdoors" /
"Indoors" /
"Travel-transit"
Conformance: This property CAN be specified within a "VEVENT" or
"VOPTIME" calendar component.
Example: The following are examples of this property:
VENUE:Outdoors
VENUE:TV
4.3.3.2 Directions
Property Name: DIRECTIONS
FitzPatrick, et al. Expires July 8, 2002 [Page 48]
Internet-Draft SkiCal January 2002
Purpose: This property can be used to specify helpful directions for
finding the SkiSource.
Value Type: TEXT.
Property Parameters: Non-standard property parameters can be
specified on this property.
Conformance: This property CAN be specified within a "VEVENT" or
"VOPTIME" calendar component.
Description: Very often when a public SkiSource is published, there
are instructions other than the address for finding the location. In
metropolitan areas this could be just the name of a subway stop,
while on the sea it could possibly be a path defined by a series of
GEO (longitude + latitude) coordinates that will help sailors avoid
shallow water.
Format Definition: The property is defined by the following notation:
FitzPatrick, et al. Expires July 8, 2002 [Page 49]
Internet-Draft SkiCal January 2002
directions = "DIRECTIONS" directionsparam ":" text CRLF
directionsparam = *(
; the following is optional,
; but MUST NOT occur more than once
(";" languageparam ) / (";" altrepparam ) /
(";" travelbyparam) / (";" geo-path) /
(";" nsrefparam ) /
; the following is optional,
; and MAY occur more than once
(";" xparam)
)
travelbyparam = "TRAVELBY" "="
("walk" / "bicycle" / "boat" / "car" / "rail" /
"air" / "public"transportation" /
"frequency" / "uri" )
; Implementers who do not intend to have a complex GUI for
; various types of directions could concatenate all DIRECTIONS
; fields which have a TRAVELBY parameter into one DIRECTIONS field
; without a TRAVELBY parameter
geo-path = "GEO-PATH" "=" 1*(float "," float ",")
(float "," float)
; machine readable directions
; coordinate pair sequence approaching destination
Example: The following are examples of this property:
DIRECTIONS;TRAVELBY=public transportation;LANGUAGE=sv:Tunnelbanes
tation Globen
DIRECTIONS:Rum 207, plan 2
4.3.3.3 Place name
Property Name: PLACENAME
Purpose: This property can be used to specify a well-known name of
the SkiSource or a location where the SkiSource takes place.
FitzPatrick, et al. Expires July 8, 2002 [Page 50]
Internet-Draft SkiCal January 2002
Value Type: TEXT.
Property Parameters: Non-standard property parameters can be
specified on this property.
Conformance: This property CAN be specified within a "VEVENT" or
"VOPTIME" calendar component.
Description: Names, which have reached a status of common knowledge
among a significant portion of the populace or within a particular
segment (eg. Taxi drivers). If the exact name is chosen from a
naming list as discussed in this memo, Section 4.7, further details
may be available to the uninitiated.
Format Definition: The property is defined by the following notation:
placename = "PLACENAME" placeparam ":" text CRLF
; It is RECOMMENDED that the text value be
; chosen from a list, as described in section 4.7
; of this memo.
placeparam = *(
; the following is optional,
; but MUST NOT occur more than once
(";" languageparam ) / (";" nsrefparam ) /
; the following is optional,
; and MAY occur more than once
(";" xparam)
)
Example: The following is an example of this property:
PLACENAME:Globen
PLACENAME:Central Park
PLACENAME:The Commons
PLACENAME:Muscle Beach
4.3.4 WHOW (HOW) properties
WHOW properties represent possible conditions involved in interaction
between a TimeSpender and a SkiSource - the rules, qualifications,
FitzPatrick, et al. Expires July 8, 2002 [Page 51]
Internet-Draft SkiCal January 2002
economics, quirks and hindrances involved.
These properties serve as place-holders for the answers to
TimeSpender questions such as, "Can I bring a camera?", "How can I
get a ticket?", "Is there an age requirement?", "What does the daily
special cost?"
The properties defined in RFC-2445 [3] that are related to WHOW are:
4.8.1.5 Description - The description property in RFC2445 can be used
to hold any sort of WHA information.
4.8.1.10 Resources - SkiCal uses Resources as stipulated in RFC2445.
Example: The following are examples of RESOURCES used in SkiCal:
RESOURCES:Valet parking
RESOURCES;OPREF="40000/THISANDPRIOR":Hot food until midnight
RESOURCES:Drinking water
RESOURCES:Smokers section
RESOURCES:Butane refills
RESOURCES:Changing Rooms
4.3.4.1 Requirements
Property Name: REQUIRED
Purpose: This property can be used to specify requirements made by
the SkiSource on the TimeSpender.
Value Type: TEXT.
Property Parameters: Non-standard property parameters can be
specified on this property.
Conformance: This property CAN be specified within a "VEVENT" or
"VOPTIME" calendar component.
Description: This property can be used to specify requirements made
on the TimeSpender.
Format Definition: The property is defined by the following notation:
FitzPatrick, et al. Expires July 8, 2002 [Page 52]
Internet-Draft SkiCal January 2002
requirements = "REQUIRED" requireparam ":" text CRLF
; It is RECOMMENDED that the text value be
; chosen from a list, as described in section 4.7
; of this memo.
requireparam = *(
; the following is optional,
; but MUST NOT occur more than once
(";" languageparam ) / (";" altrepparam )
(";" nsrefparam ) /
; the following is optional,
; and MAY occur more than once
(";" xparam)
)
Example: The following are examples of this property:
REQUIRED:Children must have adult accompaniment
REQUIRED;ALTREP="HTTP://www.nmpda.org/codes/pg13":pg13
REQUIRED:Formal attire
REQUIRED:Lions Club Members only
REQUIRED:Valid drivers license
REQUIRED:Hores ridding experience
REQUIRED:Reservations made at least one week in advance
REQUIRED:All pets on leashes please
REQUIRED:white soled gym shoes
REQUIRED:Major credit card
REQUIRED:No rain - Event cancelled in case of bad weather
REQUIRED:minimum height on all rides 1.40 cm
4.3.4.2 Recommendations
Property Name: RECOMMENDED
Purpose: This property can be used to specify recommendations to the
TimeSpender wishing to interact with the SkiSource
Value Type: TEXT.
Property Parameters: Non-standard property parameters can be
FitzPatrick, et al. Expires July 8, 2002 [Page 53]
Internet-Draft SkiCal January 2002
specified on this property.
Conformance: This property CAN be specified within a "VEVENT" or
"VOPTIME" calendar component.
Description: Recommendations made by the Publisher xxx.
Format Definition: The property is defined by the following notation:
Recommended = "RECOMMENDED" recommendedparam ":" text CRLF
; It is RECOMMENDED that the text value be
; chosen from a list, as described in section 4.7
; of this memo.
recommendedparam = *(
; the following is optional,
; but MUST NOT occur more than once
(";" languageparam ) / (";" altrepparam )
(";" nsrefparam ) /
; the following is optional,
; and MAY occur more than once
(";" xparam)
)
Example: The following are examples of this property:
RECOMMENDED:Flash Camera
RECOMMENDED:Warm Clothes
RECOMMENDED:At least 2 hours to see the main exhibition
RECOMMENDED:No Children
RECOMMENDED:do not leave your possessions unattended
RECOMMENDED:Bring you own lunch
RECOMMENDED:Sturdy Hiking boots
RECOMMENDED:Polio vaccinations
RECOMMENDED:Stay on the trail
RECOMMENDED:Get here early
RECOMMENDED:It is difficult to find parking space - take public transport
4.3.4.3 Prohibited
Property Name: PROHIBITED
Purpose: This tells the TimeSpender what activities or things are
FitzPatrick, et al. Expires July 8, 2002 [Page 54]
Internet-Draft SkiCal January 2002
PROHIBITED at the SkiSource.
Value Type: TEXT.
Property Parameters: Non-standard property parameters can be
specified on this property.
Conformance: This property CAN be specified within a "VEVENT" or
"VOPTIME" calendar component.
Description: That which is prohibited
Format Definition: The property is defined by the following notation:
prohibited = "PROHIBITED" prohibitedparam ":" text CRLF
; It is RECOMMENDED that the text value be
; chosen from a list, as described in section 4.7
; of this memo.
prohibitedparam = *(
; the following is optional,
; but MUST NOT occur more than once
(";" languageparam ) / (";" altrepparam ) /
(";" nsrefparam ) /
; the following is optional,
; and MAY occur more than once
(";" xparam)
)
Example: The following are examples of this property:
PROHIBITED:minors
PROHIBITED:possession of fire arms
PROHIBITED:possession of cameras
PROHIBITED:men
4.3.4.4 Price
Property Name: PRICE
Purpose: This property gives pricing information about the SkiSource.
FitzPatrick, et al. Expires July 8, 2002 [Page 55]
Internet-Draft SkiCal January 2002
Value Type: TEXT.
Property Parameters: Non-standard property parameters can be
specified on this property.
Conformance: This property CAN be specified within a "VEVENT" or
"VOPTIME" calendar component.
Description: This property can be used to provide information about
the pricing structure at a SkiSource. Due to a large divergence in
pricing structures, it is not intended that all aspects of pricing
will be possible to represent in a machine readable format using
SkiCal. This syntax will allow for simpler pricing structures to be
defined.
Format Definition: The property is defined by the following notation:
price = "PRICE" priceparam ":" price CRLF
priceparam = *(
; the following is optional,
; but MUST NOT occur more than once
(";" languageparam ) / (";" altrepparam ) /
(";" itemparam) / (";" currencyparam)
(";" nsrefparam ) /
)
; The text value COULD be
; chosen from a list, as described in section 4.7
; of this memo. Such a list could
; contain words such as:
; Admission
; Breakfast
; Starting Fee
; Room
; Happy hour
; Monthly fee
price = float
currencyparam = "CURRENCY" "=" <currency code as
FitzPatrick, et al. Expires July 8, 2002 [Page 56]
Internet-Draft SkiCal January 2002
defined in ISO4217
; the following is optional,
; and MAY occur more than once
(";" xparam
)
Example: The following are examples of this property:
PRICE;PRXITEM="J:Admission":0
PRICE;ITEM="Admission";CURRENCY=SEK:135
PRICE;ITEM="Monthly subscription";CURRENCY=USD:2.75
PRICE;ITEM="Daily Lunch";CURRENCY=CHF:5.75
PRICE;ITEM="Shoe Shines";CURRENCY=USD:3.50
PRICE;ITEM="One hours ice skating";CURRENCY=GBP:7.95
PRICE;ITEM="All day parking";CURRENCY=USD:19
4.3.4.5 Bookings
Property Name: BOOKINGS
Purpose: This property defines where and when reservations or tickets
for the SkiSource can be obtained.
Value Type: TEXT.
Property Parameters: Non-standard property parameters can be
specified on this property.
Conformance: This property CAN be specified within a "VEVENT" or
"VOPTIME" calendar component.
Description: When applicable, tickets, reservations or other means
needed to interact with a SkiSource can often be obtained from
ticketing agents or directly from the SkiSource organizer.
Format Definition: The property is defined by the following notation:
FitzPatrick, et al. Expires July 8, 2002 [Page 57]
Internet-Draft SkiCal January 2002
bookings = "BOOKINGS" bookingsparam ":" text CRLF
bookingsparam = *(
; the following is optional,
; but MUST NOT occur more than once
(";" languageparam ) / (";" altrepparam ) /
(";" opref) / (";" nsrefparam ) /
(";" itemparam ) /
; the following is optional,
; and MAY occur more than once
(";" xparam)
Examples: The following are examples of this property:
BOOKINGS;OPREF="kop":Ticketron biljetter
BOOKINGS;OPREF="URE":Ticketron biljetter
BOOKINGS;ITEM="The dinner banquet";OPREF="998";ALTREP="http\
://www.ticket.
com/find.asp?858789":WebTickets
BOOKINGS;OPREF="999":At the ticket
booth outside of the concert hall
BOOKINGS;OPREF="R090":Telephone: +1-
800-HOCKEYTIX
BOOKINGS;OPREF="RIXOR":tel +46 (8) 123 456
4.3.4.6 Special access facilities
Property Name: ACCESS
Purpose: This property defines the accessibility of the SkiSource for
persons with special needs.
Value Type: BOOLEAN.
Property Parameters: Non-standard property parameters can be
specified on this property.
Conformance: This property CAN be specified within a "VEVENT" or
"VOPTIME" calendar component.
Description: People with disabilities and other special needs have
much to gain from the availability of well-structured and therefore
easily searchable information about facilities and arrangements for
FitzPatrick, et al. Expires July 8, 2002 [Page 58]
Internet-Draft SkiCal January 2002
accessibility.
SkiCal objects have a Boolean property to indicate the availability
of handicap facilities.
Format Definition: The property is defined by the following notation:
access = "ACCESS" itemparam ":" boolean CRLF
; It is RECOMMENDED that the text value be
; chosen from a list, as described in section 4.7
; of this memo.
; the following is optional,
; but MUST NOT occur more than once
(";" languageparam ) / (";" opref ) /
(";" altrepparam) / (";" itemparam ) /
(";" nsrefparam ) /
; as soon as there is a standardized way of expressing
; special facilities for accessibility digitally
; it is RECOMMENDED that SkiCal
; files refer to such a file through the ALTREP mechanism.
*(
; the following is optional,
; and MAY occur more than once
(";" xparam)
)
Example: The following are examples of this property:
ACCESS;PRXITEM="SHO:wheelchair-ramps":TRUE
ACCESS;PRXITEM="TT:elevator":TRUE
4.3.4.7 Accepted method of payment
Property Name: PAYMETHOD
Purpose: This property defines the accepted methods of payment for
the SkiSource.
FitzPatrick, et al. Expires July 8, 2002 [Page 59]
Internet-Draft SkiCal January 2002
Value Type: TEXT
Property Parameters: Non-standard property parameters can be
specified on this property.
Conformance: This property CAN be specified within a "VEVENT" or
"VOPTIME" calendar component.
Description: This property can be used to specify the payment method
in practice at the SkiSource.
Format Definition: The property is defined by the following notation:
paymethod = "PAYMETHOD" paymethodparam ":" text CRLF
; It is RECOMMENDED that the text value be
; chosen from a list, as described in section 4.7
; of this memo.
paymethodparam = *(
; the following is optional,
; but MUST NOT occur more than once
(";" altrepparam ) / (";" nsrefparam ) /
(";" itemparam ) / (";" opref ) /
; the following is optional,
; and MAY occur more than once
(";" xparam)
)
Example: The following are examples of this property:
PAYMETHOD;ITEM="Purchases in Excess of 15USD:VISA
PAYMETHOD:AMEX
PAYMETHOD:SET
PAYMETHOD;OPREF="20020505/THISANDFUTURE":We will no longer accept per
sonal checks.
PAYMETHOD;NSREF="PM":BABS37.2
4.3.5 WHY properties
The following properties serve as place-holders for the answers to
TimeSpender questions about the SkiSource such as "Why should I
FitzPatrick, et al. Expires July 8, 2002 [Page 60]
Internet-Draft SkiCal January 2002
attend?" and "Why would this be interesting?".
WHY gathers promotional, instructive or informational material under
one roof. It is hoped that this will promote expedience. Many
applications will be operating in a narrow bandwidth environment;
this is specially the case with mobile cellular phones, PDA's and
other digiphernalia.
By placing content which might be bulky and bandwidth consuming in a
specifically defined area of the Calendar Object, the TimeSpender as
well as the SkiSource publisher is given greater control over
individual property access.
There is no property defined in RFC-2445 [3] that is directly related
to WHY. Though iCal publishers could use the ATTACHMENT property to
wrap promotional material or put promotional texts into DESCRIPTION.
4.3.5.1 Promotion
Property Name: PROMO
Purpose: This property allows for the organizer of the SkiSource to
refer to advertising material, in various forms.
Value Type: URI
Property Parameters: Non-standard property parameters can be
specified on this property.
Conformance: This property CAN be specified within a "VEVENT" or
"VOPTIME" calendar component.
Description: This property could be a link to online versions of a
movie trailer, a web campaign, a radio spot or a newspaper ad.
Format Definition: The property is defined by the following notation:
FitzPatrick, et al. Expires July 8, 2002 [Page 61]
Internet-Draft SkiCal January 2002
promo = "PROMO" promoparam ":" [ TEXT ] CRLF
promoparam = *(
; the following is optional,
; but MUST NOT occur more than once
(";" altrepparam) / (";" languageparam) /
(";" nsrefparam) / (";" itemparam) /
; the following is optional,
; and MAY occur more than once
(";" xparam)
)
Example: The following are examples of this property:
PROMO;ALTREP="http://www.stadsteatern.se/affischer/othello2000.gif":
Download our poster
PROMO;ALTREP="http://www.torget.se/kampanj/julsonger.i.huset.html"
PROMO;LANGUAGE=en:This is going to be a great party.
Everybody will be there. If you're not - you will regret it.
PROMO;LANGUAGE=sv;ENCODING=QUOTED-PRINTABLE:F=F6rbundet
firar bara 60 =E5r en g=E5ng.
PROMO;LANGUAGE=en;ALTREP="http://www.alltomstockholm.se/reviews/12/":
See what folks are saying about us!
PROMO;ITEM="The Weeping Pillow";ALTREP="http://www.dn.se/literature/
990505.html":Read the rave reviews!
4.3.6 WHO properties
The following property serves as place-holders for the answers to
user questions about the SkiSource such as; Who is responsible? Who
is the owner? Who authorized this? What organizations are involved?
The property defined in RFC-2445 [3] related to WHO is:
4.8.4.2 Contact
It is RECOMMENDED that SkiCal objects use vCards [RFC 2426] as an
ALTREP parameter value to the CONTACT property parameter, in order to
provide machine readability and maintain information structure when
exchanging data. For example, the alternate representation may
specify either an LDAP URI pointing to an LDAP server entry or a CID
URI pointing to a MIME body part containing a vCard for the contact.
FitzPatrick, et al. Expires July 8, 2002 [Page 62]
Internet-Draft SkiCal January 2002
In addition to the property named above as defined in RFC-2445 [3], a
SkiCal object may include the following property;
4.3.6.1 Control
Property Name: CONTROL
Purpose: This property indicates responsibilities, jurisdictions,
ownership, and other formal or informal relationships for parties
involved in the SkiSource.
Value Type: TEXT. (MAILTO)
Property Parameters: Non-standard property parameters can be
specified on this property.
Conformance: This property CAN be specified within a "VEVENT" or
"VOPTIME" calendar component.
Description: To declare relationships, responsibilities and
liabilities of formal, informal, or contractual nature amongst
parties involved in a SkiSource or particular aspects of a SkiSource.
The CONTROL property is used to define these responsibilities and
jurisdictions.
Format Definition: The property is defined by the following notation:
control = "CONTROL" controlparam ":" uri CRLF
; the value MAY be a MAILTO URI, as defined
; by
RFC-1738
.
controlparam = *(
; the following is optional,
; but MUST NOT occur more than once
(";" languageparam ) / (";" cnparam ) /
(";" skiroleparam) / (";" altrepparam) /
(";" nsrefparam ) / (";" itemparam ) /
(";" opref ) /
; It is highly RECOMMENDED that SkiCal
; objects actually
; use the cnparam since some applications will not
; bother to read the altrep'ed vCard.
FitzPatrick, et al. Expires July 8, 2002 [Page 63]
Internet-Draft SkiCal January 2002
; the following is optional,
; and MAY occur more than once
(";" xparam)
)
Example: The following are examples of this property.
CONTROL;PRXSKiROLE="GTN:Producer";CN=Nobelkommitten:MAILTO:
info@nobel.se
CONTROL;NSREF="CCCD";SKiROLE=Producer;CN=Opera house:MAILTO:
info@opera.de
CONTROL;PRXSKiROLE="L:OWNER";MAILTO:jean-marie@petiteville.fr
CONTROL;PRXSKiROLE="RP:contracting agency":MAILTO:info@ematelstar.se
CONTROL;ITEM="Cities in motion exhibition";SKiROLE="sponsor";CN=Stoc
kholms stad:MAILTO:
kultur@stadshuset.a.se
CONTROL;OPREF="20030101/THISANDFUTURE";SKiROLE=in association
with;CN=Svenska Turistforbundet:MAILTO:info@stf.se
CONTROL;PRXSKiROLE="SKI:members-of";CN=Rotary international:MAIL
TO:rotary@rotary.org
4.3.7 MANAGEMENT properties
The above SkiCal component properties all describe the SkiSource
itself (description) and not, as is the case with many iCalendar
component properties, the entry in a calendar user agent (CUA) or
calendar server (CS) (self-description).
It is possible that several, or even many calendar objects could
refer to the same SkiSource. Each of these calendar objects could
have their own publisher, while the SkiSource itself has only one
responsible authority.
The properties defined in RFC-2445 [3] related to MANAGEMENT are:
4.8.1.3 Classification
4.8.1.4 Comment
4.8.4.3 Organizer
4.8.4.5 Related-to
4.8.4.6 Uniform Resource Locator
4.8.4.7 Unique Identifier
FitzPatrick, et al. Expires July 8, 2002 [Page 64]
Internet-Draft SkiCal January 2002
4.8.7.1 Date/Time Created
4.8.7.2 Date/Time Stamp
4.8.7.3 Last Modified
4.8.7.4 Sequence Number
4.3.7.1 Publisher
Property Name: PUBLISHER
Purpose: Describes the organization or private party publishing the
SkiSource object.
Value Type: URI
Property Parameters: Non-standard property parameters can be
specified on this property.
Conformance: This property CAN be specified within a "VEVENT" or
"VOPTIME" calendar component.
Description: The ORGANIZER of a SkiSource is not always the one who
makes the information about the SkiSource publicly available. Many
SkiCal objects will be published by organizations or private parties
who are not an "ORGANIZER" as defined in RFC2445. The role of the
publisher is sometimes referred to as 'Infomediary'.
Format Definition: The property is defined by the following notation:
FitzPatrick, et al. Expires July 8, 2002 [Page 65]
Internet-Draft SkiCal January 2002
publisher = "PUBLISHER" publisherparam ":" mailto CRLF
publisherparam = *(
; the following is optional,
; but MUST NOT occur more than once
(";" cnparam ) / (";" nsrefparam ) /
(";" skiroleparam) / (";" altrepparam) /
; the following is optional,
; and MAY occur more than once
(";" xparam)
)
Example: The following are examples of this property:
PUBLISHER:mailto:info@timeout.co.uk
4.3.7.2 SkiCal Version
Property Name:SKICALVER
Property Name:SKICALVER
Purpose: The inclusion of this property in an iCalendar object
indicates the presence of SkiCal extensions. At the same time this
property specifies the identifier corresponding to the highest
version number or the minimum and maximum range of the SkiCal
specification that is required in order to interpret the SkiCal
extensions.
Value Type: TEXT
Property Parameters: Non-standard property parameters can be
specified on this property.
Conformance: This property CAN be specified within a "VEVENT" or
"VOPTIME" calendar component. This property MUST be specified by an
iCalendar object containing any of the SkiCal extensions defined in
this memo, but MAY only be specified once.
Description: A value of "1.0" corresponds to this memo.
Format Definition: The property is defined by the following notation:
FitzPatrick, et al. Expires July 8, 2002 [Page 66]
Internet-Draft SkiCal January 2002
SkiCalver = "SKICALVER" SkiCalverparam ":" vervalue CRLF
SkiCalverparam = *(";" xparam)
vervalue = "1.0" ;This memo
/ maxver
/ (minver ";" maxver)
minver = <A IANA registered SkiCal version identifier>
; Minimum SkiCal version needed to parse the SkiCal extensions
; in the iCalendar object
maxver = <A IANA registered SkiCal version identifier>
; Maximum SkiCal version needed to parse the SkiCal extensions
; in the iCalendar object
Example: The following is an example of this property:
SKICALVER:1.0
4.3.7.3 Namespace
Property Name: NAMESPACE
Purpose: Designates a URL containing a list of values and assigns a
prefix as a shorthand pointer to that URL.
Value Type: URI
Property Parameters: Non-standard property parameters can be
specified on this property.
Conformance: This property CAN be specified within a "VEVENT" or
"VOPTIME" calendar component.
Description: For many of the properties and property parameters of
this note, it is recommended that text values be chosen from
authoritative lists. This property defines a method for the
identification and location of such a list, but it does not define
the syntax that such a list might employ. The inclussion of a
NAMESPACE properery in a calendar component does not imply that a
SkiCal parser must be able to access such a list.
Format Definition: The property is defined by the following notation:
FitzPatrick, et al. Expires July 8, 2002 [Page 67]
Internet-Draft SkiCal January 2002
namespace = "NAMESPACE" namespaceparam ":" uri CRLF
namespaceparam = ";" "PREFIX" "=" prefix
prefix = text
; the following is optional,
; but MUST NOT occur more than once
(";" languageparam ) /
; the following is optional,
; and MAY occur more than once
(";" xparam)
)
Example: The following are examples of this property:
NAMESPACE;PREFIX=SIS:"http://www.stockholmtown.se/placenames.html"
NAMESPACE;PREFIX=A:"http://www.valuerepresentations.org/values.html"
NAMESPACE;PREFIX=COM:"http://www.interestedparties.org/
composers/clasical.html"
NAMESPACE;PREFIX=TO:"http://www.timeout.com/profiles/timespenders.html"
4.3.7.4 Open Times
Property Name: OPTIMES
Purpose: Defines an OPTIMESET and assigns an id value for that set.
Value Type: optimelist
Property Parameters: Non-standard property parameters can be
specified on this property.
Conformance: This property CAN be specified within a "VEVENT" or
"VOPTIME" calendar component.
Description: .
Format Definition: The property is defined by the following notation:
FitzPatrick, et al. Expires July 8, 2002 [Page 68]
Internet-Draft SkiCal January 2002
optimes = "OPTIMES" optimesparam ":" OPTIMESET CRLF
optimesparam = ";" "ID" "=" text
; the OPTIMESET is defined as a value type
; the following is optional,
; and MAY occur more than once
(";" altrepparam) / (";" itemparam ) /
(";" nsrefparam ) / (";" xparam)
)
Example: The following is an example of this property:
OPTIMES:<OPTIMESET ID="DEMO12"><OPTERM
state="OPEN" range="20030225T15300Z/20030225T16300Z"/>
</OPTIMESET>
the OPTIMESET follows a uniform logical model. The six value types
can be thought of as containers of date-time values. There is a
hierarchal order for these containers, related to the significance of
the date-time units running from centuries down to seconds. This
sort of ordering is often referred to as the "Russian doll" model.
OPTERM is the only container that can declare 4-digit year
information in its range and it is at the top of the hierarchy. An
OPTERM value type can contain any of the other OPTIMESET value types,
though not another OPTERM. At the bottom of the hierarchy comes
OPSECONDS, which can declare seconds and fractions of seconds as its
range value, and can contain no other value-type. This gives us six
possible generations of containers; OPTERMS holding OPSEASONS holding
OPDAYS holding OPHOURS holding OPMINUTES holding OPSECONDS. But is
possible to skip any or all but one of these. So an OPTERM could
contain an OPSECONDS container and nothing else or an OPMINUTES
container could be the only member of an OPTIMESET. When Parsing the
OPTIMESET
FitzPatrick, et al. Expires July 8, 2002 [Page 69]
Internet-Draft SkiCal January 2002
The following chart shows the possible contents for each OPTIMESET
value type
+------------------------------------------------------------------+
| OPSEASONS OPDAYS OPHOURS OPMINUTES OPSECONDS |
| |
| OPTERM YES YES YES YES YES |
| OPSEASONS YES YES YES YES |
| OPDAYS YES YES YES |
| OPHOURS YES YES |
| OPMINUTES YES |
| OPSECONDS contain no other value-type |
+------------------------------------------------------------------+
Each container has a root date-time range setting the limits for all
values inside that container. For example an OPTERM container with a
range of 20040101/20041231 can contain any number of lesser
containers each with reoccurring datetime values, but an optimeset
parser will only be concerned with date-times falling within the year
2004.
The OPTERM data value is unique insomuch as it is "anchored" to the
era of the Gregorian Calendar, Julian Date system or Network Time
Protocol. It does not reoccur even though several OPTERM values may
occur as siblings in an optimese).
What sort of information does the OPTIMESET represent and how is it
calculated?
For each optimeset, individual containers at the bottom of the
heirarchy are calculated first and then all containers are matched
against each other. These calculations result in one period of time
in which one (and only one) of three conditional states can be
derived at at any given moment. These three states are; TRUE, FALSE,
and UNDETERMINED.
In the OPTIMESET logical model all times are UNDETERMINED if not
declared in an OPTIMESET.
The reoccurrence rules for the OPTIMESET members are as follows.
With the exception of OPTERM, the ranges of all OPTIMESET members
will continue to reoccur indefinently unless constrained.
The contents of a container are constrained by the range of that
container.
We tend to naturally schedule reoccurences in sync with date-time
FitzPatrick, et al. Expires July 8, 2002 [Page 70]
Internet-Draft SkiCal January 2002
units. We choose for something to happen at the same time every day
or the same day every week and so forth. In this memo such
reocurrences are refered to as "Date-time unit symetric". They are
the default reoccurence frequency of this memo. They are as follows:
A value type of seconds will reoccur every minute
Minutes hour
Hour day
weekday week
Monthday month
Yearday year
Season year
But of course it is quite possible for things to reoccur with
frequencies that do not naturally fall into the patterns above. If
for example a workshift was scheduled to be 6 days of work followd by
4 days of rest, the resulting 10 day cycle would not be symetric with
the seven day week date-time unit. We call such reocurrences "Date-
time unit asymetric" and such frequencies are enabled with the help
of the CYCLE attribute. Using CYCLE We can say for example that
the reoccurrence range for a period of 0700/0900 hours is not days
but rather a timespan of 22 hours - so when compared to a normal 24
hour daily schedule the first occurence on the the first day would
be from 7-9 but on the second day 5 to 7 and 3 to 5 on the third
and so forth. We can also use CYCLE to indicate date-time symetric
ranges that are multiples of date-time units - such as a cycle of 7
Years.
Let us say that a OPSEASONS container held two OPDAYS containers
without children. With the container-logic atribute of the OPSEASONS
an operator is chosen for combining the two OPDAYS containers. The
operators are AND, OR, XOR. For example if the value of one opday
was "TU,TH" and the other moday "05".
4.4 Security considerations
Anybody could produce a SkiCal compliant file containing false
information. Calendar publishers will need to exercise caution, or
they may end up publishing invalid information. Security can be
achieved either by choosing to index SkiCal files only from trusted
servers, or by employing a moderator who can correct or refuse
corrupt information. Nobody should consider information from non-
encrypted SkiCal files 100% reliable, just as nobody SHOULD blindly
trust printed advertisements or email.
SkiSource organizers and publishers should be aware of legal
implications from spreading personal information in electronic media.
FitzPatrick, et al. Expires July 8, 2002 [Page 71]
Internet-Draft SkiCal January 2002
4.5 Internationalisation and localisation
The same Internationalization considerations apply as in all
iCalendar applications. See RFC-2445 section 2.3 [3].
4.6 Communication protocol
The definitive method for interchanging SKiCal data between
directories/calendars will probably be an extension to the Calendar
Access Protocol CAP [4]. Since, as of this writing, CAP not yet
published as an RFC, the process of extending it has not begun.
Meanwhile, a simplistic approach is being used to synchronize
existing SKICal databases over HTTP.
Typically an organization wants to copy all SKICal data from certain
SKICal databases. In our simplistic solution we have two methods for
this:
1. SKICal files are stored in a web accessible directory (which is
basically a webpage with links to .ics files). All files are fetched
every time a synchronization needs to be made, they are parsed and
all objects with a CREATED or LAST-MODIFIED value newer than the time
of the previous synchronization are copied into the database.
(Either automatically, or after review by an editor.)
2. A cgi program accepting one parameter, named 'since', returns a
SKICal file containing all SKICal objects having a CREATED or LAST-
MODIFIED value newer than local time 00:00:01 at the date indicated
by the 'since' parameter. The format of the 'since' parameter is
YYYY-MM-DD. (Eg. 2001-09-18 for September 18th 2001.)
Obviously these methods are not economic, neither in terms of
bandwidth usage or processing power. The filtering of SKICal objects
is left to the application since there is no way to limit your
selection. You might for example want to get all SKICal objects
related to "sports". Such selection mechanisms will appear in a
later specification.
In order to facilitate the creation of intelligent SKICal
applications, though, it is RECOMMENDED that cgi export programs also
implement the 'skuid' parameter. A call (HTTP GET) to the cgi
program with the 'skuid' value set should return a single SKICal
object identified by that SKUID value, if there is such an object in
the database. A response other than a valid SKICal file from the cgi
program should be interpreted as "no such object".
FitzPatrick, et al. Expires July 8, 2002 [Page 72]
Internet-Draft SkiCal January 2002
4.7 Choosing values from lists
It is RECOMMENDED that text values be chosen from "authoritative
naming lists" whenever possible. Doing this, the publisher will
increase the level of machine readability and thus increase the
accumulated global value of all iCalendar/SkiCal objects. It is
expected that such lists will become widely available and accessible
online, possibly in the RDF [11] or XML-Schema format.
4.8 Examples
The following is an example SkiCal file, describing an actual real
world SkiSource as published in the Washington Post and at the web
site of the National Chamber Orchestra:
BEGIN:VCALENDAR
VERSION:2.0
SKICALVER:1.0
PRODID:-//HandGenerated/SkiCal//NONSGML v1.0//EN
BEGIN:VEVENT UID:e098h99@washingtonpost.com
SKUID:kj08988b@nationalchamberorch.org
CATEGORIES:music,concert,classical,symphony
CREATED:19991125
DTSTAMP:19991125T110309Z
SEQUENCE:1
LAST-MODIFIED:19991125T110309Z
SUMMARY:Handel's "Messiah" featuring the National Chamber Orchestra
TITLE:Messiah
DTSTART:19991217T200000
RRULE:FREQ=DAILY;INTERVAL=1;COUNT=2
VENUE:Indoors
PERSONS;SKiROLE="conductor":Takao Kanayama
PERSONS;SKiROLE="orchestra":National Symphony Orchestra
PERSONS;SKiROLE="soloist":Heidi Grant Murphy
PERSONS;SKiROLE="soloist":Mary Ann McCormick
PERSONS;SKiROLE="soloist":Eric Owens
PERSONS;SKiROLE="choir":Cantate Chamber Singers
PERSONS;SKiROLE="choir director":Robert Shafer
PERSONS;SKiROLE="creator":G.F.Handel
PRICE;PRXITEM="SFT:Far side";CURRENCY=USD:17
PRICE;PRXITEM="SFT:Side section";CURRENCY=USD:24
PRICE;PRXITEM="SFT:Center section";CURRENCY=USD:31
PRICE;ITEM="Discounted subscriptions available":
PAYMETHOD:Check
PAYMETHOD:Visa
PAYMETHOD:Mastercard
PAYMETHOD:American Express
FitzPatrick, et al. Expires July 8, 2002 [Page 73]
Internet-Draft SkiCal January 2002
BOOKINGS:Telephone: 301/762-8580 BOOKINGS:Fax: 301-762-8581
PROHIBITED:Children under five - no exceptions!
URL:http://yp.washingtonpost.com/E/E/WASDC/0000/40/17/cs1.html
WHURL:http://www.nationalchamberorch.org/seasonnext.html
PLACENAME:F. Scott Fitzgerald Theatre
LOCATION:F. Scott Fitzgerald Theatre, 603 Edmonton Dr., Rockville,
Maryland, USA
DIRECTIONS;ALTREP="http://www.parkers-place.net/rmt/fscotdir.html":
The theatre is located in Rockville Civic Center Park, Baltimore
Road and Edmonton Drive. Call 301-309-3007 for directions.
ACCESS;TYPE=wheelchair-ramps:TRUE
DESCRIPTION;LANGUAGE=en:Handel's classic "Messiah" performance by
the National Symphony Orchestra under Takao
Kanayama, soprano Heidi Grant Murphy, mezzo-soprano Mary Ann
McCormick, bass Eric Owens and the Cantate Chamber Singers directe
d by Robert Shafer. This concert is a popular tradition.
ORGANIZER;CN="National Chamber Orchestra":MAILTO:nationalchamberor
chestra@juno.com
CONTROL;CN="National Chamber Orchestra":MAILTO:nationalchamber
orchestra@juno.com
PUBLISHER;CN="Washington Post":MAILTO:info@washingtonpost.com
CONTACT;CN="Christine Carlin,Administrator":MAILTO:nationalchamber
orchestra@juno.com
PROMO:http://www.nationalchamberorch.org/review"of"1st.html
PROMO:Relax on Friday or Saturday evenings in the elegant F.
Scott Fitzgerald Theatre concert hall, nestled among the trees and
gardens at the Rockville Civic Center Park in Rockville, Maryland.
END:VEVENT END:VCALENDAR
FitzPatrick, et al. Expires July 8, 2002 [Page 74]
Internet-Draft SkiCal January 2002
References
[1] Bradner, S., "The Internet Standards Process -- Revision 3",
RFC 2026, BCP 9, October 1996.
[2] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", RFC 2019, BCP 14, March 1997.
[3] Dawson, F. and D. Stenerson, "Internet Calendaring and
Scheduling Core Object Specification - iCalendar", RFC 2445,
November 1998.
[4] Mansour, S., Royer, D., Babics, G. and P. Hill, "Calendar
Access Protocol - CAP", September 2000, <http://www.imc.org/
draft-ietf-calsch-cap>.
[5] Berners-Lee, T., Fielding, M. and L. Masinter, "Uniform
Resource Locators (URL)", RFC 1738, December 1994.
[6] Crocker, D. and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", RFC 2234, November 1997.
[7] Crocker, D., "STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT
MESSAGES", RFC 822, August 1982.
[8] 68, TC., "Codes for the representation of currencies and
funds", ISO 4217, September 1990, <http://www.iso.ch/cate/
d23132.html>.
[9] Alvestrand, H., "Tags for the Identification of Languages", RFC
1766, March 1995.
[10] Michel, T., "Common Markup for Web Micropayment Systems", W3C
Working Draft, June 1999, <http://www.w3.org/TR/WD-
Micropayment-Markup/#Price>.
[11] Swick, R. and O. Lassila, "Resource Description Framework (RDF)
Model and Syntax Specification", W3C RDF, February 1999,
<http://www.w3.org/TR/REC-rdf-syntax>.
[12] ECMA, , "Standard ECMA-262 ECMAScript Language Specification",
ECMA 262, December 1999, <http://www.ecma.ch/ecma1/STAND/ECMA-
262.HTM>.
FitzPatrick, et al. Expires July 8, 2002 [Page 75]
Internet-Draft SkiCal January 2002
Authors' Addresses
Greg FitzPatrick
SkiCal Consortium
Völundsgatan 5
Stockholm, SE-102 20
SE
Phone: +46 8 33 20 40
EMail: greg.fitzpatrick@SkiCal.org
URI: http://www.SkiCal.org/
Pr Lanner÷
Metamatrix
Atlasgatan 8
Stockholm, SE-102 32
SE
Phone: +46 8 33 20 40
EMail: par.lannero@metamatrix.se
URI: http://www.metamatrix.se/
Niklas Hjelm
Soft Applications
Grevgatan 34, 4tr
Stockholm, SE-102 04
SE
Phone: +46 8 555 123 00
EMail: niklas@medialab.se
URI: http://www.softapplications.com/
FitzPatrick, et al. Expires July 8, 2002 [Page 76]
Internet-Draft SkiCal January 2002
Appendix A. Acknowledgements
The following persons have contributed to the specification of the
SkiCal format: Ingemar Eriksson of the Swedish Travel & Tourism
Council, the Event Working group at Stockholm Information Service2,
Johan Hjelm of Ericsson/W3C, Patrik Faltstrom of Tele2/Cisco, Jenny
Pileus of the Swedish Nationwide Theatre (Riksteatern), Benny Regner
of the National Agency for Education, Bengt Wittstrom of the Swedish
National Board of Culture, Ulla Persson of the Swedish Sports
Confederation, Stefan Johansson of Handikapp.se (special needs
organizations' confederation for ICT related issues), Ingvar Hallgren
of the Swedish Concert Institute (Rikskonserter), Stanley Almqvist of
Crossnet AB, Daniel Bergstrom of Melody AB, Lars Aronsson of Spray
AB, Mary Omming of Utbildningsradion (public service educational TV
channel), NUTEK and Frank Dawson of Lotus, Doug Royer of Sun
Microsystems, Steve Mansour of Netscape Communications, Paul B Hill
of the MIT , Lisa Lippert of Microsoft, Patricia Egen of Egen
consulting, and the other members of the CALSCH WG.
FitzPatrick, et al. Expires July 8, 2002 [Page 77]
Internet-Draft SkiCal January 2002
Full Copyright Statement
Copyright (C) The Internet Society (2002). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Acknowledgement
Funding for the RFC Editor function is currently provided by the
Internet Society.
FitzPatrick, et al. Expires July 8, 2002 [Page 78]