CALSCH G. FitzPatrick
Internet-Draft SkiCal Consortium
Expires: April 25, 2003 P. Lanner÷
Metamatrix
N. Hjelm
Soft Applications
October 25, 2002
SkiCal - an extension of iCalendar
draft-many-ical-ski-06
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 April 25, 2003.
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 April 25, 2003 [Page 1]
Internet-Draft SkiCal October 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 . . . . . . . . . . . . . . . . . . . . . . . 4
2. Reading Instructions and Conventions . . . . . . . . . . . 5
2.1 SkiCal Terminology . . . . . . . . . . . . . . . . . . . . 5
2.1.1 SkiCal . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.2 SkiSource . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.3 SkiCal object . . . . . . . . . . . . . . . . . . . . . . 6
2.1.4 Publisher . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.5 List . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.6 TimeSpender . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.7 The 'Wha' Interrogatives . . . . . . . . . . . . . . . . . 6
3. SkiCal specific Property Parameters . . . . . . . . . . . 8
3.1 Item . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2 Namespace Reference . . . . . . . . . . . . . . . . . . . 9
3.3 OPTIMESET reference . . . . . . . . . . . . . . . . . . . 10
3.4 SKiROLE . . . . . . . . . . . . . . . . . . . . . . . . . 11
4. SkiCal Specific Property Value Data Types . . . . . . . . 14
4.1 The OpeningTimes Set . . . . . . . . . . . . . . . . . . . 14
4.1.1 Terms used in the OPTIMESET data value declaration . . . 14
4.1.2 Optimelist DTD . . . . . . . . . . . . . . . . . . . . . . 17
4.2 Term of the OPTIMESET . . . . . . . . . . . . . . . . . . 18
4.3 Seasons of the OPTIMESET . . . . . . . . . . . . . . . . . 21
4.4 Days of the OPTIMESET . . . . . . . . . . . . . . . . . . 23
4.5 Hours of the OPTIMESET . . . . . . . . . . . . . . . . . . 25
4.6 Minutes of the OPTIMESET . . . . . . . . . . . . . . . . . 25
4.7 Seconds of the OPTIMESET . . . . . . . . . . . . . . . . . 26
5. SkiCal specific Calendar Component . . . . . . . . . . . . 28
5.1 The OpTime calendar component . . . . . . . . . . . . . . 28
6. SkiCal specific Component Properties . . . . . . . . . . . 32
6.1 WHAT properties . . . . . . . . . . . . . . . . . . . . . 33
6.1.1 Title . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.1.2 Persons . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.1.3 Thinks . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.1.4 Things . . . . . . . . . . . . . . . . . . . . . . . . . . 36
FitzPatrick, et al. Expires April 25, 2003 [Page 2]
Internet-Draft SkiCal October 2002
6.1.5 Actions . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.1.6 Part relationship to another SkiSource . . . . . . . . . . 39
6.1.7 Language used at the SkiSource . . . . . . . . . . . . . . 40
6.1.8 Orientation . . . . . . . . . . . . . . . . . . . . . . . 42
6.1.9 What URL . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.1.10 SkiSource Unique Identifier . . . . . . . . . . . . . . . 44
6.2 WHEN properties . . . . . . . . . . . . . . . . . . . . . 45
6.2.1 Date-time open . . . . . . . . . . . . . . . . . . . . . . 46
6.3 WHERE properties . . . . . . . . . . . . . . . . . . . . . 47
6.3.1 Venue . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.3.2 Directions . . . . . . . . . . . . . . . . . . . . . . . . 48
6.3.3 Place name . . . . . . . . . . . . . . . . . . . . . . . . 50
6.4 WHOW (HOW) properties . . . . . . . . . . . . . . . . . . 51
6.4.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . 52
6.4.2 Recommendations . . . . . . . . . . . . . . . . . . . . . 53
6.4.3 Prohibited . . . . . . . . . . . . . . . . . . . . . . . . 54
6.4.4 Price . . . . . . . . . . . . . . . . . . . . . . . . . . 55
6.4.5 Bookings . . . . . . . . . . . . . . . . . . . . . . . . . 58
6.4.6 Special access facilities . . . . . . . . . . . . . . . . 59
6.4.7 Accepted method of payment . . . . . . . . . . . . . . . . 60
6.5 WHY properties . . . . . . . . . . . . . . . . . . . . . . 61
6.5.1 Promotion . . . . . . . . . . . . . . . . . . . . . . . . 62
6.6 WHO properties . . . . . . . . . . . . . . . . . . . . . . 63
6.6.1 Control . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.7 MANAGEMENT properties . . . . . . . . . . . . . . . . . . 65
6.7.1 Publisher . . . . . . . . . . . . . . . . . . . . . . . . 65
6.7.2 SkiCal Version . . . . . . . . . . . . . . . . . . . . . . 66
6.7.3 Namespace . . . . . . . . . . . . . . . . . . . . . . . . 67
6.7.4 Open Times . . . . . . . . . . . . . . . . . . . . . . . . 68
7. Security considerations . . . . . . . . . . . . . . . . . 72
8. Internationalisation and localisation . . . . . . . . . . 73
9. Communication protocol . . . . . . . . . . . . . . . . . . 74
10. Choosing values from lists . . . . . . . . . . . . . . . . 75
11. Examples . . . . . . . . . . . . . . . . . . . . . . . . . 76
References . . . . . . . . . . . . . . . . . . . . . . . . 78
Authors' Addresses . . . . . . . . . . . . . . . . . . . . 79
A. Acknowledgements . . . . . . . . . . . . . . . . . . . . . 80
Full Copyright Statement . . . . . . . . . . . . . . . . . 81
FitzPatrick, et al. Expires April 25, 2003 [Page 3]
Internet-Draft SkiCal October 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 April 25, 2003 [Page 4]
Internet-Draft SkiCal October 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 April 25, 2003 [Page 5]
Internet-Draft SkiCal October 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 April 25, 2003 [Page 6]
Internet-Draft SkiCal October 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 April 25, 2003 [Page 7]
Internet-Draft SkiCal October 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 April 25, 2003 [Page 8]
Internet-Draft SkiCal October 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 April 25, 2003 [Page 9]
Internet-Draft SkiCal October 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 April 25, 2003 [Page 10]
Internet-Draft SkiCal October 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 April 25, 2003 [Page 11]
Internet-Draft SkiCal October 2002
Skiroleparam = (
(( "SKIROLE" "=" ) /
( "PRXSKIROLE" "=" prefix ":" ))
DQUOTE text DQUOTE )
; It is RECOMMENDED that the text value be
; chosen from a list, as described
; 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 April 25, 2003 [Page 12]
Internet-Draft SkiCal October 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 April 25, 2003 [Page 13]
Internet-Draft SkiCal October 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 April 25, 2003 [Page 14]
Internet-Draft SkiCal October 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
PERIOD-EXPLICIT / DURATION-EXPLICIT: This SkiCal memo stipulates
FitzPatrick, et al. Expires April 25, 2003 [Page 15]
Internet-Draft SkiCal October 2002
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 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.
FitzPatrick, et al. Expires April 25, 2003 [Page 16]
Internet-Draft SkiCal October 2002
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.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
>
<!ATTLIST OPSEASONS
range CDATA #IMPLIED
ID ID #IMPLIED
IDREF IDREF #IMPLIED
FitzPatrick, et al. Expires April 25, 2003 [Page 17]
Internet-Draft SkiCal October 2002
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>
4.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
FitzPatrick, et al. Expires April 25, 2003 [Page 18]
Internet-Draft SkiCal October 2002
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 ) /
mjd "/" ["/"]
( mjd / term-text ) /
tp "/" ["/"]
( tp / term-text )
FitzPatrick, et al. Expires April 25, 2003 [Page 19]
Internet-Draft SkiCal October 2002
)
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 )
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]
FitzPatrick, et al. Expires April 25, 2003 [Page 20]
Internet-Draft SkiCal October 2002
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"/>
4.3 Seasons of the OPTIMESET
Value Name: OPSEASON
Purpose: This value type is used to express an interval of time. The
FitzPatrick, et al. Expires April 25, 2003 [Page 21]
Internet-Draft SkiCal October 2002
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:
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
FitzPatrick, et al. Expires April 25, 2003 [Page 22]
Internet-Draft SkiCal October 2002
adjacent calendar years.
An OPSEASONS property value may occur more than once in an OPTIMESET.
Examples:
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.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
FitzPatrick, et al. Expires April 25, 2003 [Page 23]
Internet-Draft SkiCal October 2002
opyrdayvalue = DQUOTE ( ordyrday / ordyrdayperiod )
*[ "," ( yrday / yrdayperiod ) ] DQUOTE
ordweekday = [(["+"] ordwk / "-" ordwk)] weekday
ordwk = 1DIGIT ;1 to 5
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:
FitzPatrick, et al. Expires April 25, 2003 [Page 24]
Internet-Draft SkiCal October 2002
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
the last Monday of the month.
Example:
4.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.6 Minutes of the OPTIMESET
Value Name: OPMINUTES
FitzPatrick, et al. Expires April 25, 2003 [Page 25]
Internet-Draft SkiCal October 2002
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:
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.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 April 25, 2003 [Page 26]
Internet-Draft SkiCal October 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:
FitzPatrick, et al. Expires April 25, 2003 [Page 27]
Internet-Draft SkiCal October 2002
5. 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:
component = (
/ optimec
)
5.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 /
FitzPatrick, et al. Expires April 25, 2003 [Page 28]
Internet-Draft SkiCal October 2002
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 /
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
FitzPatrick, et al. Expires April 25, 2003 [Page 29]
Internet-Draft SkiCal October 2002
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 :
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
FitzPatrick, et al. Expires April 25, 2003 [Page 30]
Internet-Draft SkiCal October 2002
ceremony is also declared :
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
FitzPatrick, et al. Expires April 25, 2003 [Page 31]
Internet-Draft SkiCal October 2002
6. 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 10
For reasons of clarity the properties self-describing the SkiCal
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 6.6.1 which would
be sorted under WHO.
FitzPatrick, et al. Expires April 25, 2003 [Page 32]
Internet-Draft SkiCal October 2002
6.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
6.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.
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
FitzPatrick, et al. Expires April 25, 2003 [Page 33]
Internet-Draft SkiCal October 2002
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 this memo.
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
6.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.
FitzPatrick, et al. Expires April 25, 2003 [Page 34]
Internet-Draft SkiCal October 2002
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 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:
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
6.1.3 Thinks
Property Name: THINKS
FitzPatrick, et al. Expires April 25, 2003 [Page 35]
Internet-Draft SkiCal October 2002
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
; 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
(";" 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
6.1.4 Things
Property Name: THINGS
FitzPatrick, et al. Expires April 25, 2003 [Page 36]
Internet-Draft SkiCal October 2002
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:
things = "THINGS" thingsparam ":" text CRLF
; It is RECOMMENDED that the text value be
; chosen from a list, as described in
; 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:
FitzPatrick, et al. Expires April 25, 2003 [Page 37]
Internet-Draft SkiCal October 2002
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
6.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.
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:
FitzPatrick, et al. Expires April 25, 2003 [Page 38]
Internet-Draft SkiCal October 2002
actions = "ACTIONS" actionsparam ":" text CRLF
; It is RECOMMENDED that the text value be
; chosen from a list, as described in
; 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
6.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.
FitzPatrick, et al. Expires April 25, 2003 [Page 39]
Internet-Draft SkiCal October 2002
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:
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>
6.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
FitzPatrick, et al. Expires April 25, 2003 [Page 40]
Internet-Draft SkiCal October 2002
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
(";" 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
FitzPatrick, et al. Expires April 25, 2003 [Page 41]
Internet-Draft SkiCal October 2002
6.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:
FitzPatrick, et al. Expires April 25, 2003 [Page 42]
Internet-Draft SkiCal October 2002
orientation = "ORIENTATION" orientationparam ":" text CRLF
; It is RECOMMENDED that the text value be
; chosen from a list, as described in
; this memo.
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
; 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
6.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
FitzPatrick, et al. Expires April 25, 2003 [Page 43]
Internet-Draft SkiCal October 2002
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 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
6.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.
FitzPatrick, et al. Expires April 25, 2003 [Page 44]
Internet-Draft SkiCal October 2002
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),
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
6.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 April 25, 2003 [Page 45]
Internet-Draft SkiCal October 2002
6.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 April 25, 2003 [Page 46]
Internet-Draft SkiCal October 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
6.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.
6.3.1 Venue
Property Name: VENUE
Purpose: This property classifies the type of physical context in
FitzPatrick, et al. Expires April 25, 2003 [Page 47]
Internet-Draft SkiCal October 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
6.3.2 Directions
Property Name: DIRECTIONS
FitzPatrick, et al. Expires April 25, 2003 [Page 48]
Internet-Draft SkiCal October 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 April 25, 2003 [Page 49]
Internet-Draft SkiCal October 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
6.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 April 25, 2003 [Page 50]
Internet-Draft SkiCal October 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 10, 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
; 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
6.4 WHOW (HOW) properties
WHOW properties represent possible conditions involved in interaction
between a TimeSpender and a SkiSource - the rules, qualifications,
economics, quirks and hindrances involved.
FitzPatrick, et al. Expires April 25, 2003 [Page 51]
Internet-Draft SkiCal October 2002
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
6.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 April 25, 2003 [Page 52]
Internet-Draft SkiCal October 2002
requirements = "REQUIRED" requireparam ":" text CRLF
; It is RECOMMENDED that the text value be
; chosen from a list, as described in
; 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
6.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
specified on this property.
FitzPatrick, et al. Expires April 25, 2003 [Page 53]
Internet-Draft SkiCal October 2002
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
; 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
6.4.3 Prohibited
Property Name: PROHIBITED
Purpose: This tells the TimeSpender what activities or things are
PROHIBITED at the SkiSource.
Value Type: TEXT.
FitzPatrick, et al. Expires April 25, 2003 [Page 54]
Internet-Draft SkiCal October 2002
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
; 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
6.4.4 Price
Property Name: PRICE
Purpose: This property gives pricing information about the SkiSource.
Value Type: TEXT.
Property Parameters: Non-standard property parameters can be
specified on this property.
FitzPatrick, et al. Expires April 25, 2003 [Page 55]
Internet-Draft SkiCal October 2002
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:
FitzPatrick, et al. Expires April 25, 2003 [Page 56]
Internet-Draft SkiCal October 2002
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
; 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
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
FitzPatrick, et al. Expires April 25, 2003 [Page 57]
Internet-Draft SkiCal October 2002
6.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:
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:
FitzPatrick, et al. Expires April 25, 2003 [Page 58]
Internet-Draft SkiCal October 2002
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
6.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
accessibility.
SkiCal objects have a Boolean property to indicate the availability
of handicap facilities.
Format Definition: The property is defined by the following notation:
FitzPatrick, et al. Expires April 25, 2003 [Page 59]
Internet-Draft SkiCal October 2002
access = "ACCESS" itemparam ":" boolean CRLF
; It is RECOMMENDED that the text value be
; chosen from a list, as described in
; 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
6.4.7 Accepted method of payment
Property Name: PAYMETHOD
Purpose: This property defines the accepted methods of payment for
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.
FitzPatrick, et al. Expires April 25, 2003 [Page 60]
Internet-Draft SkiCal October 2002
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
; 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
6.5 WHY properties
The following properties serve as place-holders for the answers to
TimeSpender questions about the SkiSource such as "Why should I
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
FitzPatrick, et al. Expires April 25, 2003 [Page 61]
Internet-Draft SkiCal October 2002
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.
6.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:
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:
FitzPatrick, et al. Expires April 25, 2003 [Page 62]
Internet-Draft SkiCal October 2002
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!
6.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.
In addition to the property named above as defined in RFC-2445 [3], a
SkiCal object may include the following property;
6.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.
FitzPatrick, et al. Expires April 25, 2003 [Page 63]
Internet-Draft SkiCal October 2002
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.
; 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
FitzPatrick, et al. Expires April 25, 2003 [Page 64]
Internet-Draft SkiCal October 2002
TO:rotary@rotary.org
6.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
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
6.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.
FitzPatrick, et al. Expires April 25, 2003 [Page 65]
Internet-Draft SkiCal October 2002
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:
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
6.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
FitzPatrick, et al. Expires April 25, 2003 [Page 66]
Internet-Draft SkiCal October 2002
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:
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
6.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.
FitzPatrick, et al. Expires April 25, 2003 [Page 67]
Internet-Draft SkiCal October 2002
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:
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"
6.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
FitzPatrick, et al. Expires April 25, 2003 [Page 68]
Internet-Draft SkiCal October 2002
"VOPTIME" calendar component.
Description: .
Format Definition: The property is defined by the following notation:
optimes = "OPTIMES" optimesparam ":" OPTIMESET CRLF
optimesparam = ";" "ID" "=" text
; the OPTIMESET is defined as a value type in beginning of this memo
; 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 April 25, 2003 [Page 69]
Internet-Draft SkiCal October 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 April 25, 2003 [Page 70]
Internet-Draft SkiCal October 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".
FitzPatrick, et al. Expires April 25, 2003 [Page 71]
Internet-Draft SkiCal October 2002
7. 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 April 25, 2003 [Page 72]
Internet-Draft SkiCal October 2002
8. Internationalisation and localisation
The same Internationalization considerations apply as in all
iCalendar applications. See RFC-2445 section 2.3 [3].
FitzPatrick, et al. Expires April 25, 2003 [Page 73]
Internet-Draft SkiCal October 2002
9. 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 April 25, 2003 [Page 74]
Internet-Draft SkiCal October 2002
10. 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.
FitzPatrick, et al. Expires April 25, 2003 [Page 75]
Internet-Draft SkiCal October 2002
11. 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
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
FitzPatrick, et al. Expires April 25, 2003 [Page 76]
Internet-Draft SkiCal October 2002
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 April 25, 2003 [Page 77]
Internet-Draft SkiCal October 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 April 25, 2003 [Page 78]
Internet-Draft SkiCal October 2002
Authors' Addresses
Greg FitzPatrick
SkiCal Consortium
V÷lundsgatan 5
Stockholm, SE-102 20
SE
Phone: +46 8 309 609
EMail: greg.fitzpatrick@SkiCal.org
URI: http://www.SkiCal.org/
Pr Lanner÷
Metamatrix
Scheelegatan 36
Stockholm, SE-112 28
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 April 25, 2003 [Page 79]
Internet-Draft SkiCal October 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 April 25, 2003 [Page 80]
Internet-Draft SkiCal October 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 April 25, 2003 [Page 81]