Network Working Group G. FitzPatrick Internet-Draft SKiCal Consortium Expires: January 11, 2002 P. Lanner• Metamatrix N. Hjelm Soft Applications July 13, 2001 SKiCal - an extension of iCalendar draft-many-ical-ski-04 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 January 11, 2002. Copyright Notice Copyright (C) The Internet Society (2001). 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 access information in FitzPatrick, et. al. Expires January 11, 2002 [Page 1] Internet-Draft SKiCal July 2001 dates 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 2.1.7.1 WHAT . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.7.2 WHEN . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.7.3 WHERE . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1.7.4 WHOW . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1.7.5 WHY . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1.7.6 WHO . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3. SKiCal specific property parameters . . . . . . . . . . . 8 3.1 The OpeningTimes Set . . . . . . . . . . . . . . . . . . . 8 3.1.1 Terms used in the optimeset declaration . . . . . . . . . 8 3.1.2 Rules of optime set composition . . . . . . . . . . . . . 11 3.1.3 Determining Time Values in the Optimeset . . . . . . . . 14 3.1.4 OpTerm . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.1.5 OpSeasons . . . . . . . . . . . . . . . . . . . . . . . . 17 3.1.6 OpDAYS . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.1.7 OpHours . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.2 Item . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.3 Namespace Reference . . . . . . . . . . . . . . . . . . . 24 3.4 SKiROLE . . . . . . . . . . . . . . . . . . . . . . . . . 25 4. SKiCal specific calendar component . . . . . . . . . . . . 28 4.1 The OpTime calendar component . . . . . . . . . . . . . . 28 5. SKiCal specific component properties . . . . . . . . . . . 31 5.1 WHAT properties . . . . . . . . . . . . . . . . . . . . . 32 FitzPatrick, et. al. Expires January 11, 2002 [Page 2] Internet-Draft SKiCal July 2001 5.1.1 Title . . . . . . . . . . . . . . . . . . . . . . . . . . 32 5.1.2 Persons . . . . . . . . . . . . . . . . . . . . . . . . . 33 5.1.3 Thinks . . . . . . . . . . . . . . . . . . . . . . . . . . 35 5.1.4 Things . . . . . . . . . . . . . . . . . . . . . . . . . . 36 5.1.5 Actions . . . . . . . . . . . . . . . . . . . . . . . . . 37 5.1.6 Part relationship to another SKiSource . . . . . . . . . . 38 5.1.7 Language used at the SKiSource . . . . . . . . . . . . . . 39 5.1.8 Orientation . . . . . . . . . . . . . . . . . . . . . . . 41 5.1.9 What URL . . . . . . . . . . . . . . . . . . . . . . . . . 42 5.1.10 SKiSource Unique Identifier . . . . . . . . . . . . . . . 43 5.2 WHEN properties . . . . . . . . . . . . . . . . . . . . . 44 5.2.1 Date-time open . . . . . . . . . . . . . . . . . . . . . . 44 5.3 WHERE properties . . . . . . . . . . . . . . . . . . . . . 46 5.3.1 Venue . . . . . . . . . . . . . . . . . . . . . . . . . . 46 5.3.2 Directions . . . . . . . . . . . . . . . . . . . . . . . . 47 5.3.3 Place name . . . . . . . . . . . . . . . . . . . . . . . . 48 5.4 WHOW (HOW) properties . . . . . . . . . . . . . . . . . . 49 5.4.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . 50 5.4.2 Recommendations . . . . . . . . . . . . . . . . . . . . . 51 5.4.3 Prohibited . . . . . . . . . . . . . . . . . . . . . . . . 52 5.4.4 Price . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.4.5 Bookings . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.4.6 Special access facilities . . . . . . . . . . . . . . . . 56 5.4.7 Accepted method of payment . . . . . . . . . . . . . . . . 57 5.5 WHY properties . . . . . . . . . . . . . . . . . . . . . . 58 5.5.1 Promotion . . . . . . . . . . . . . . . . . . . . . . . . 59 5.6 WHO properties . . . . . . . . . . . . . . . . . . . . . . 60 5.6.1 Control . . . . . . . . . . . . . . . . . . . . . . . . . 61 5.7 MANAGEMENT properties . . . . . . . . . . . . . . . . . . 62 5.7.1 Publisher . . . . . . . . . . . . . . . . . . . . . . . . 63 5.7.2 SkiCAl Version . . . . . . . . . . . . . . . . . . . . . . 64 5.7.3 NAMESPACE . . . . . . . . . . . . . . . . . . . . . . . . 65 6. Choosing values from lists . . . . . . . . . . . . . . . . 67 7. Security considerations . . . . . . . . . . . . . . . . . 68 8. Communication protocol . . . . . . . . . . . . . . . . . . 69 9. Examples . . . . . . . . . . . . . . . . . . . . . . . . . 70 References . . . . . . . . . . . . . . . . . . . . . . . . 73 Authors' Addresses . . . . . . . . . . . . . . . . . . . . 74 A. Acknowledgements . . . . . . . . . . . . . . . . . . . . . 75 Full Copyright Statement . . . . . . . . . . . . . . . . . 76 FitzPatrick, et. al. Expires January 11, 2002 [Page 3] Internet-Draft SKiCal July 2001 1. Introduction SKiCal combines the iCalendar usage domain of appointments and business meetings with 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 January 11, 2002 [Page 4] Internet-Draft SKiCal July 2001 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 a 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 January 11, 2002 [Page 5] Internet-Draft SKiCal July 2001 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 refering 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 January 11, 2002 [Page 6] Internet-Draft SKiCal July 2001 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 January 11, 2002 [Page 7] Internet-Draft SKiCal July 2001 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 ; specific resource being qualified / nsref ; reference valuelist URI pointer / skirole ; qualify property values ; the following are members of the optimeset / opterm ; period of optime validity / opseasons ; reoccurring periods of optimes / opdays ; reoccurring days of optimes / ophours ; reoccurring hours of optimes / opminutes ; reoccurring minutes of optimes 3.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 OpeningTimes set of Property Parameters comprised of OPTERM, OPSEASONS, OPDAYS, OPHOURS and OPMINUTES, 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. 3.1.1 Terms used in the optimeset declaration "OPEN": Depending upon the property value being qualified, OPEN indicates open, accessible, in-force, operative, available or any similar state permitting interaction with the resource designated by the property value. FitzPatrick, et. al. Expires January 11, 2002 [Page 8] Internet-Draft SKiCal July 2001 "CLOSED": Depending upon the property value being qualified, CLOSED indicates closed, non-accessible, not-in-force, non- operative, not-available or any similar state inhibiting interaction with the resource designated by the property value. NOT-VALID": Dates and times that can not be determined as being open or closed. "INSTANCE": The inniating instance for the class of date-time value representations made up of year, month, day, hour, minute, or second is that moment in time that separates an ordinal member of such a class from its predecessor in the same class. The concluding instance for the class of date-time value representations made up of year, month, day, hour, minute, second is that moment in time that separates an ordinal member of such a class from its successor in the same class. DATE-TIME VALUE PAIR: All of the optimeset's property parameters have a value consisting of one or more pairs of INSTANCES, with the exception of the OPDAYS values, where the pair is implied as the beginning and end of a day. INCLUSIVE-TO: From the innitating to the concluding INSTANCE of the date-time value pair. EXCLUSIVE-TO Any date-time value preceding the inniating INSTANCE of the date-time value pair or any date-time value following the concluding instance of the date-time value pair. The value of each optimeset property parameter consists of one or more date-time periods delimited by an inniating and concluding INSTANCE. The duration of these date-time periods is to be interpreted as follows: For period-explicit time periods. For the earlier value of the date-time value pair: From the inniating instance of the least significant date-time value. Example: for "YYYYMMDDTHHMMSS" - From the inniating instance of the "SS" of the MM of the HH of the DD of the MM of the YYYY. For the later value of the date-time value pair: Up until the concluding instance of the least significant datetime value. Example: for YYYYMMDDTHHMMSS - Until the concluding instance of the "SS" of the MM of the HH of the DD of the MM of the YYYY. This means that whenever two halves of one value-pair are FitzPatrick, et. al. Expires January 11, 2002 [Page 9] Internet-Draft SKiCal July 2001 designated with different time zone identifiers, or 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 lengthened or shortened accordingly. For period-start time periods. For the "anchoring" value of the value-pair: If the Duration value is indicated as greater than zero: From the inniating instance of the least significant datetime value. Example: for "YYYYMMDDTHHMMSS" - From the inniating instance of the "SS" of the MM of the HH of the DD of the MM of the YYYY. If the "anchoring" value is indicated as less than zero: Up until the concluding instance of the least significant datetime value. Example: for YYYYMMDDTHHMMSS - Until the concluding instance of the "SS" of the MM of the HH of the DD of the MM of the YYYY. To the anchoring value, the duration value is either added or subtracted in order to calculate the period value. 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 or end date-time of the period will be lengthened or shortened accordingly. Since no timezone identifier can be concatenated to the duration value, a period-start date-time value can only be referenced to one timezone. Format Definition: The OpeningTimes set of Property Parameters is defined by the following notation: optimeset = [ ";" opterm] [ ";" opseasons] [ ";" opdays] [ ";" ophours] [ ";" opminutes] FitzPatrick, et. al. Expires January 11, 2002 [Page 10] Internet-Draft SKiCal July 2001 3.1.2 Rules of optime set composition One optimeset may contain one of 31 combinations of property parameter inclusions. For the sake of brevity the OPMINUTES property parameter will be described separately. With the OPMINUTES property parameter fixed as not-declared, 15 possible combinations will be represented in the table below as examples 1 to F. For each property parameter "X" symbolizes that it is included in an optimeset and "0" that it is not. Example 1 2 3 4 5 6 7 8 9 A B C D E F OPTERM X 0 X 0 X 0 X 0 X 0 X 0 X 0 X OPSEASONS 0 X X 0 0 X X 0 0 X X 0 0 X X OPDAYS 0 0 0 X X X X 0 0 0 0 X X X X OPHOURS 0 0 0 0 0 0 0 X X X X X X X X OPMINUTES 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 The hierarchical significance of 15 possible combinations (in the absence of OPMINUTES) is illustrated in the following table. For each column representing an optimeset property parameter there are two alternatives: Inclusive-to the defined period (in) Exclusive-to the defined period (ex) For each of these alternatives there are three possible outcomes for date-times; Open (OP) Closed (CL) Not-valid (NV) FitzPatrick, et. al. Expires January 11, 2002 [Page 11] Internet-Draft SKiCal July 2001 The hyphened lines cumulating in "C-----" show constraining relationships. OPTERM OPSEASONS OPDAYS OPHOURS ------------------------------------------------------------- in ex in ex in ex in ex 1 OP NV 2 OP NV 3 OP NV C-- OP CL 4 OP NV 5 OP NV C------------------- OP CL 6 OP NV C-- OP CL 7 OP NV C-- OP CL C-- OP CL 8 OP NV 9 OP NV C---------------------------------- OP CL A OP NV C------------------ OP CL B OP NV C-- OP CL C------------------ OP CL C OP NV C-- OP CL D OP NV C------------------ OP CL C-- OP CL E OP NV C-- OP CL C-- OP CL F OP NV C-- OP CL C-- OP CL C-- OP CL ------------------------------------------------------------- 1. The date-times period declared in the OPTERM will be interpreted as valid and open inclusive-to the entire OPTERM. All date-times exclusive-to the OPTERM will be interpreted as not valid. 2. The date-times period declared in the OPSEASONS will be interpreted as valid and open inclusive-to the entire OPSEASONS. All date-times exclusive-to the OPTERM will be interpreted as not valid. 3. The date-times period declared in the OPSEASONS will be interpreted as valid and open inclusive-to those periods of the OPSEASONS that fall within the period of the OPTERM. All date- times exclusive-to the OPSEASONS yet within the OPTERM will be interpreted as closed. All date-times exclusive-to the OPSEASONS and exclusive-to the OPTERM will be interpreted as not valid. 4. The days declared in the OPDAYS will be interpreted as valid and open inclusive-to the entire day. Any days not declared will be interpreted as NOT-VALID. FitzPatrick, et. al. Expires January 11, 2002 [Page 12] Internet-Draft SKiCal July 2001 5. The days declared in the OPDAYS will be interpreted as valid and open inclusive-to the entire day inclusive-to the entire OPTERM. Any days not declared and inclusive-to the limits of the OPTERM will be interpreted as closed. Any days declared or not declared exclusive-to the limits of the OPTERM will be interpreted as not valid. 6. The days declared in the OPDAYS will be interpreted as valid and open inclusive-to the entire day inclusive-to the entire periods of the OPSEASONS. Any days not declared and inclusive-to the limits of the OPSEASONS will be interpreted as closed. Any days declared or not declared exclusive-to the limits of the OPSEASONS will be interpreted as not valid. 7. The days declared in the OPDAYS will be interpreted as valid and open inclusive-to the entire day inclusive-to the entire periods of the OPSEASONS inclusive-to the entire OPTERM. Any days not declared and inclusive-to the limits of the OPSEASONS will be interpreted as closed. Any days declared or not declared exclusive-to the limits of the OPSEASONS yet within the limits of the OPTERM will be interpreted as closed. Any days declared or not declared exclusive-to the limits of the OPTERM will be interpreted as not valid. 8. The periods of hours declared in OPHOURS will be interpreted as valid and open daily. Any period of hours not declared will be interpreted as NOT-VALID. In the event that a period of hours is so construed as to overlap another period in the same OPTIME value space, overlapping times will be considered open. 9. The periods of time declared in OPHOURS will be interpreted as open daily inclusive-to the period of the OPTERM. All OPHOURS not declared yet within the OPTERM will be interpreted as closed. All OPHOURS exclusive-to the OPTERM will be interpreted as not valid. A. The periods of time declared in OPHOURS will be interpreted as open daily inclusive-to the periods of the OPSEASONS. All OPHOURS not declared yet within the OPSEASONS will be interpreted as closed. All OPHOURS declared or not declared exclusive-to the OPSEASONS will be interpreted as not valid. B. The periods of time declared in OPHOURS will be interpreted as open daily inclusive-to the periods of the OPSEASONS inclusive-to the period of the OPTERM. The periods of time declared in OPHOURS exclusive-to the periods of the OPSEASONS yet inclusive-to the period of the OPTERM will be interpreted as closed. All OPHOURS not declared yet within the OPSEASONS will be interpreted as FitzPatrick, et. al. Expires January 11, 2002 [Page 13] Internet-Draft SKiCal July 2001 closed. All OPHOURS declared or not declared exclusive-to the OPSEASONS will be interpreted as not valid. C. The periods of time declared in OPHOURS will be interpreted as open inclusive-to the days declared in OPDAYS. All undeclared OPHOURS inclusive-to the days declared in OPDAYS will be interpreted as closed. The periods of time declared in OPHOURS can only be interpreted as open on those days declared with the OPDAYS property parameter. The OPHOURS of undeclared OPDAYS must be interpreted as NOT-VALID. D. The periods of time declared in OPHOURS will be interpreted as open inclusive-to the days declared in OPDAYS inclusive-to the period of the OPTERM. All undeclared OPDAYS must be interpreted as closed for the entire day. All OPHOURS not declared within the OPDAYS will be interpreted as closed. All OPHOURS declared or not declared exclusive-to the OPTERM will be interpreted as not valid. E. The periods of time declared in OPHOURS will be interpreted as open inclusive-to the days declared in OPDAYS inclusive-to the period of the OPSEASONS. All undeclared OPDAYS must be interpreted as closed for the entire day. All OPHOURS not declared within the OPDAYS will be interpreted as closed. All OPHOURS declared or not declared exclusive-to the OPSEASONS will be interpreted as not valid. F. The periods of time declared in OPHOURS will be interpreted as open inclusive-to the days declared in OPDAYS inclusive-to the periods of the OPSEASONS inclusive-to the period of the OPTERM. All undeclared OPDAYS must be interpreted as closed for the entire day. All OPHOURS not declared within the OPDAYS will be interpreted as closed. All OPHOURS declared or not declared exclusive-to the OPSEASONS yet within the OPTERM will be interpreted as CLOSED. All OPHOURS declared or not declared exclusive-to the OPTERM will be interpreted as not valid. 3.1.3 Determining Time Values in the Optimeset There is a hierarchical ordering of the members of the optimeset, irrespective of their ordinal positioning in the property. The order from high to low is; OPTERM, OPSEASONS, OPDAYS, OPHOURS, OPMINUTES. A higher order member of the set, if included, will always constrain the values of the lower order members. Here are some outcomes for different combinations of an optimeset. All but the first are bad examples of optimeset composition since higher order members completely block out lower order members. FitzPatrick, et. al. Expires January 11, 2002 [Page 14] Internet-Draft SKiCal July 2001 RECOMMENDED;OPHOURS="090000/113000,150000/170000":shoes Will be interpreted as from 9am to 11:30am and from 3pm to 5pm on every day of the year forever. RECOMMENDED;BYYEARDAY="55T140000/160000";OPHOURS="090000/113000,150000 /170000":shoes Will be interpreted as from 2pm to 4pm on the 55th day of the year forever. Note that the OPHOURS declaration is exclusive to and therefore blocked out by the new time declared in the OPDAYS. RECOMMENDED;BYSEASONS="--0710/--0809";BYYEARDAY="55T140000/ 160000;"OPHOURS="090000/113000,150000/170000":shoes Will be interpreted as all day from the 10th of June to the 9th of August every year forever. Note that the OPDAYS value is exclusive to and therefore blocked out by the OPSEASONS value and the OPHOURS values are exclusive to and therefore blocked out by the OPDAYS values. RECOMMENDED;OPTERM="20040105/20040106";OPSEASONS="--0710/ --0809";BYYEARDAY="55T140000/160000;"OPHOURS="090000/ 113000,150000/170000":shoes Will be interpreted as all day from the 5th of January to the 6th of January, 2004. Note that the OPSEASONS value is exclusive to and therefore blocked out by the OPTERM value and the OPDAYS values are exclusive to and therefore blocked out by the OPSEASONS value and the OPHOURS values are exclusive to and therefore blocked out by the OPDAYS values. 3.1.4 OpTerm Parameter Name: OPTERM Purpose: This parameter when specified is used in computing the optimeset. This parameter uses the date and date-time value definitions of RFC 2445 - 4.3.4 Date and 4.3.5 Date-Time and the THISANDPRIOR and THISANDFUTURE definitions of RFC 2445 4.2.13 Recurrence Identifier Range. Format Definition: This property parameter is defined by the following notation: optermparam = ";" "OPTERM" "=" (d-period-explicit / d-period-start) d-period-explicit = (date-time / date) "/" ((date-time FitzPatrick, et. al. Expires January 11, 2002 [Page 15] Internet-Draft SKiCal July 2001 / date) / ( "THISANDPRIOR" / "THISANDFUTURE")) d-period-start = (date-time / date) "/" ((date-time / date) / ( termdur-value )) 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 ; The "60" value is used to ; account for "leap" seconds. time-utc = ( "Z" ) / (( "+" / "-") time-hour [ ":" time-minute] )) termdur-value = (["+"] / "-") "P" (dur-date / dur month / dur-time / dur-week / dur-year ) dur-date = dur-day [dur-time] dur-time = "T" (dur-hour / dur-minute / dur-second) dur-year = 1*DIGIT "Y" dur-month = 1*DIGIT "M" dur-week = 1*DIGIT "W" dur-hour = 1*DIGIT "H" [dur-minute] dur-minute = 1*DIGIT "M" [dur-second] dur-second = 1*DIGIT "S" dur-day = 1*DIGIT "D" Description: The OPTIME period is constructed by two date-time values separated by a SOLIDUS character; "/" (US- ASCII decimal 47), or one date-time value separated by a SOLIDUS character; "/" (US- ASCII decimal 47),from one of two value types; THISANDPRIOR and THISANDFUTURE. 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. The start date-time value of an OPTERM period must not be greater than its end date-time value. FitzPatrick, et. al. Expires January 11, 2002 [Page 16] Internet-Draft SKiCal July 2001 The OPTERM property parameter may occur once in an OPTIMESET. Example: ACTIONS;OPTERM=20060313T140000Z/THISANDFUTURE:Martha gives birth to Alex BOOKINGS;OPTERM=20001128T143000Z/THISANDFUTURE:Ticketmaster DTOPEN;OPTERM=20020911T120000Z/20030506:Winter Semester BOOKINGS;OPTERM=20011214T190000Z/THISANDPRIOR:The front Box-Office BOOKINGS;OPTERM=20011104/20011214:The front Box-Office 3.1.5 OpSeasons Parameter Name: OPSEASONS Purpose: This parameter when specified is used in computing the optimeset. The value representation of OPSEASONS is in accordance with ISO8601:2000 Section 5.2.1.3. sub-section d. "A specific day of the month in an implied year" - Extended Format. In keeping with iCal convention a hyphen between MM and DD as in "--MM-DD", will not be used. Format Definition: The property parameter is defined by the following notation: FitzPatrick, et. al. Expires January 11, 2002 [Page 17] Internet-Draft SKiCal July 2001 opseasonsparam = ";" "OPSEASONS" "=" (s-period-explicit / s-period-start) *[ "," (s-period-explicit / s-period-start) ] s-period-explicit = impyeardatetime "/" impyeardatetime s-period-start = impyeardatetime "/" seasonsdur-value impyeardatetime = "--" date-month date-mday [ "T" time ] 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 ; The "60" value is used to ; account for "leap" seconds. time-utc = ( "Z" ) / (( "+" / "-") time-hour [ ":" time-minute] )) seasonsdur-value = (["+"] / "-") "P" (dur-date / dur-month / dur-time / dur-week) dur-date = dur-day [dur-time] dur-time = "T" (dur-hour / dur-minute / dur-second) dur-month = 1*DIGIT "M" dur-week = 1*DIGIT "W" dur-hour = 1*DIGIT "H" [dur-minute] dur-minute = 1*DIGIT "M" [dur-second] dur-second = 1*DIGIT "S" dur-day = 1*DIGIT "D" Description: The start date-time of an OPSEASONS period may be greater than the end date-time of the OPSEASONS period. In which case the OPSEASONS is considered to straddle two adjacent calendar years. An OPSEASONS property parameter may occur once in an OPTIMESET. An OPSEASONS property parameter may include one or more comma-separated date-time value pairs. Examples: FitzPatrick, et. al. Expires January 11, 2002 [Page 18] Internet-Draft SKiCal July 2001 PROHIBITED;OPTERM=19651214/THISANDFUTURE;OPSEASONS=--0515/--0901: Studded snow tires RESOURCES;OPSEASONS=--1001/--0301;OPHOURS=180000Z/200000Z:Night Golf by artificial lighting PERSONS;SKIROLE="In-house Tennis Pro";OPSEASONS=--0501/--0815: Johanna Locke RESOURCES;OPSEASONS=--0201/--0228:BYDAY=TU,TH :Park access with motor vehicles 3.1.6 OpDAYS Parameter Name: OPDAYS Purpose: This parameter when specified is used in computing the optimeset. This parameter uses the "BYxxx" values as defined in RFC 2445 - 4.3.10 Recurrence Rule . Format Definition: The property parameter is defined by the following notation: opdaysparam = ";" ( dayparam / monthdayparam / yeardayparam ) dayparam = "BYDAY" "=" weekday / weekdayint [timeparam] *[ "," weekday [timeparam]] weekday = "SU" / "MO" / "TU" / "WE" / "TH" / "FR" / "SA" ;Corresponding to SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, ;FRIDAY, and SATURDAY days of the week. weekdayint = weekday "-" weekday ; weekdayint can be used to define an interval of days ; such as "MO"-"FR" - everyday from Monday to Friday. monthdayparam = "BYMONTHDAY" "=" ordmoday [timeparam] *[ "," ordmoday [timeparam]] ordmoday = 1DIGIT / 2DIGIT ;1 to 31 yeardayparam = "BYYEARDAY" "=" ordyrday [timeparam] *[ "," ordyrday [timeparam]] ordyrday = 1DIGIT / 2DIGIT / 3DIGIT ;1 to 366 timeparam = "(" (d-period-explicit / d-period-start) *[ "," (d-period-explicit / d-period-start) ] ")" FitzPatrick, et. al. Expires January 11, 2002 [Page 19] Internet-Draft SKiCal July 2001 d-period-explicit = time "/" time ; [ISO 8601] complete representation basic format for a period of ; time consisting of a start and end. d-period-start = time "/" daydur-value ; [ISO 8601] complete representation basic format for a period of ; time consisting of a start and positive duration of time. time = time-hour time-minute time-second [time-utc] time-hour = 2DIGIT ;00-23 time-minute = 2DIGIT ;00-59 time-second = 2DIGIT ;00-60 ;The "60" value is used to account for "leap" seconds. time-utc = ( "Z" ) / (( "+" / "-") time-hour [ ":" time-minute] )) daydur-value = (["+"] / "-") "P" (dur-date / dur-time / dur-week) dur-date = dur-day [dur-time] dur-time = "T" (dur-hour / dur-minute / dur-second) dur-week = 1*DIGIT "W" dur-hour = 1*DIGIT "H" [dur-minute] dur-minute = 1*DIGIT "M" [dur-second] dur-second = 1*DIGIT "S" dur-day = 1*DIGIT "D" Description: An OPDAYS property parameter may occur once in an OPTIMESET. A OPDAYS property parameter may not include more than one type of BYDAY recurrence; by named day of the week, by ordinal day of the month or by ordinal day of the year. An OPDAYS property parameter may include one or more comma-separated date-time value pairs. Example: BOOKINGS;OPTERM=20011214/THISANDPRIOR;BYDAY=MO,TU,WE,TH,FR; OPHOURS=100000Z/120000Z,130000/173000:The front Box-Office PERSONS;OPTERM=20030611/THISANDFUTURE;BYDAY=SU(190000/203000),TU, WE,TH,FR;OPHOURS=100000Z/120000Z,130000/173000:Tom's shift REQUIRED;BYDAY=SA;OPHOURS=180000Z/020000Z:Evening Dress RECOMMENDED;BYMONTHDAY=24:Avoid using our ATMs on national paydays ACTIONS;BYYEARDAY=1(103000-09/PT5H):March down Fairfax Ave. DTOPEN;BYDAY=MO,TU(170000/190000),WE,TH(170000/190000), FR,SA(150000/170000);OPHOURS=130000/150000:Strange schedule FitzPatrick, et. al. Expires January 11, 2002 [Page 20] Internet-Draft SKiCal July 2001 3.1.7 OpHours Parameter Name: OPHOURS Purpose: This parameter when specified is used in computing the optimeset. This parameter uses time values as defined in RFC 2445 - 4.3.12 Time and the opdur values defined in RFC 2445 - 4.3.6 Duration . Format Definition: The property parameter is defined by the following notation: ophoursparam = "OPHOURS" "=" (period-explicit / period-start) *[ "," (period-explicit / period-start) ] period-explicit = time "/" time period-start = time "/" dur-value time = time-hour time-minute time-second [time-utc] time-hour = 2DIGIT ;00-23 time-minute = 2DIGIT ;00-59 time-second = 2DIGIT ;00-60 ;The "60" value is used to account for "leap" seconds. time-utc = ( "Z" ) / (( "+" / "-") time-hour [ ":" time-minute] )) daydur-value = (["+"] / "-") "P" (dur-date / dur-time / dur-week) dur-date = dur-day [dur-time] dur-time = "T" (dur-hour / dur-minute / dur-second) dur-week = 1*DIGIT "W" dur-hour = 1*DIGIT "H" [dur-minute] dur-minute = 1*DIGIT "M" [dur-second] dur-second = 1*DIGIT "S" dur-day = 1*DIGIT "D" Description: This property parameter allows the use of hourly 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. Period-explicit: A period of time is identified by its start and its end. FitzPatrick, et. al. Expires January 11, 2002 [Page 21] Internet-Draft SKiCal July 2001 If the start of the period is of a greater value than the end of the period, 24 hours will be added to the end value in order to calculate the correct time period. In the following example the "Dance Floor" would be calculated as starting at 18:00:00 UTC and ending at 03:00:00 UTC on the following day. DTOPEN;OPHOURS=180000Z/030000Z:The Dance Floor Period-start: A period of time can also be defined by a start time and a positive duration of time. This method should be used for declarations of time periods exceeding 24 hours. In the following example the period starting at 18:00:00 UTC on Friday and ending at 15:30:00 UTC on Sunday could be declared as: DTOPEN;BYDAYS=FR;OPHOURS=180000Z/PT45H30M:Every weekend in the mountains Examples: BOOKINGS;OPTERM=20031214/THISANDPRIOR;OPHOURS=130000Z/170000Z:The front Box Office RESOURCES;OPHOURS=140000Z/220000Z:Hot food RECOMMENDED;OPHOURS=130000Z/150000Z,220000Z/230000Z:Avoid the crowds for good seats LOCATION;OPHOURS=110000+01/PT7H45M:Palais de Congrès Parameter Name: OPMINUTES Purpose: This parameter when specified is used in computing the optimeset. This parameter uses time values as defined in ISO8601 - Section 5.3.1.4. Truncated representations - paragraph f) Basic format. Format Definition: The property parameter is defined by the following notation: FitzPatrick, et. al. Expires January 11, 2002 [Page 22] Internet-Draft SKiCal July 2001 opminutesparam = ";" "OPMINUTES" "=" minutevalue *[ ";" minutevalue] minutevalue = (m-period-explicit / m-period-start) m-period-explicit = dquote minute-time dquote "/" dquote minute-time dquote m-period-start = minute-time "/" m-dur-value m-minute-time = time-minute time-second [ "." fraction] time-minute = 2DIGIT ;00-59 time-second = 2DIGIT ;00-60 fraction = 1*DIGIT ; as many digits as desired may be used m-dur-value = (["+"] / "-") "P" dur-time dur-time = "T" (dur-minute / dur-second / dur-fraction) dur-minute = 1*DIGIT "M" [dur-second] dur-second = 1*DIGIT "S" [dur-fraction] dur-fraction = 1*DIGIT "." Description: This property parameter 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. Period-explicit: A period of time is identified by its start and its end. An OPMINUTES property parameter may occur once in the same OPTIMESET. An OPMINUTES property parameter may include more than one time-period value pair. Examples: ACTIONS;OPMINUTES=0000/0005,1500/1505,3000/3005:The little birds comes out and sings. RESOURCES;OPHOUS=080000/190000;OPMINUTES=10/PT13M18S:The bus to Cadiz RECOMMENDED;OPMINUTES=1200/1500:take your eyes from the CRT. Stand up and stretch. ACTIONS;OPMINUTES=3000/3200:Back-up Tape replacement. FitzPatrick, et. al. Expires January 11, 2002 [Page 23] Internet-Draft SKiCal July 2001 3.2 Item Parameter Name: ITEM Purpose: To specify the name of a specific auxiliary element of a SkiSource. Format Definition: The property parameter is defined by the following notation: itemparam = ( ( "ITEM" "=" ) / ( "PRXITEM "=" prefix ":" ) text ) prefix = 1*( ) ; one or more letters matching the declared prefix of a NAMESPACE property value Description: This parameter specifies a name used to identify particular aspects of a SkiSource. 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";OPTERM=20001128T140000Z/20001230: At the reception desk. 3.3 Namespace Reference Parameter Name: NSREF Purpose: To point to a namespace declaration in the same SKiCal 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 NAMESPACE declared prefix. This parameter provides a method for relating the value of the property within which it is used to the appropriate namespace. FitzPatrick, et. al. Expires January 11, 2002 [Page 24] Internet-Draft SKiCal July 2001 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.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 January 11, 2002 [Page 25] Internet-Draft SKiCal July 2001 Skiroleparam = ( (( "SKIROLE" "=" ) / ( "PRXSKIROLE" "=" prefix ":" )) DQUOTE text DQUOTE ) ; It is RECOMMENDED that the text value be ; chosen from a list, as described in Section 6 ; in this memo. Some examples of such lists are ; given here: ; as used with the PERSONS property sampleskirolelist = ( "PERFORMER" / "HOSTESS" / "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 January 11, 2002 [Page 26] Internet-Draft SKiCal July 2001 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="PRESENT":Car models of 2001 THINGS;PRXSKiROLE="BBB:FOR-SALE":Levis jeans THINGS;SKiROLE="FOR-HIRE":Golf clubs THINGS;SKiROLE="PRESENT":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 January 11, 2002 [Page 27] Internet-Draft SKiCal July 2001 4. 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 ) 4.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: FitzPatrick, et. al. Expires January 11, 2002 [Page 28] Internet-Draft SKiCal July 2001 optimec = "BEGIN" ":" "OPTIME" CRLF optimeprop *alarmc "END" ":" "OPTIME" CRLF optimeprop = *( ; the following are optional, ; but MUST NOT occur more than once class / created / description / geo / last-mod / location / organizer / priority / dtstamp / seq / status / summary / transp / uid / url / recurid / skicalver ; the following are optional, ; and MAY occur more than once attach / attendee / categories / comment / dtopen / contact / related / resources / x-prop ) Description: An "OPTIME" calendar component is a grouping of component properties, and possibly including "VALARM" calendar components, that represents a date-time value 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. Is is recommended that implementers develop alternative methods for visual representation of Optime calendar components. The "OPTIME" calendar component is identical to the "VEVENT" calendar component with the exception that the Date-time related properties such as DTSTART, DTEND and DURATION have been removed in favour of the DTOPEN property. Example: The following is an example of the "VOPTIME" calendar component used to represent the business hours of a video rental store that is open daily from 10am to 10pm, except for Fridays and Saturdays, when open to 12pm : FitzPatrick, et. al. Expires January 11, 2002 [Page 29] Internet-Draft SKiCal July 2001 BEGIN:VOPTIME UID:20020901T130000Z-123401@host.com DTSTAMP:20020901T1300Z TITLE:Videorama DTOPEN;OPTERM=20020903T163000Z/THISANDFUTURE;BYDAYS ="SU,MO,TU,WE,TH";OPHOURS=100000/220000:Monday to Thursday from 10am to 10pm DTOPEN;OPTERM=20020903T163000Z/THISANDFUTURE;BYDAYS ="FR,SA";OPHOURS=100000/240000:Open to 12pm on Fridays and Saturdays TITLE:Videorama 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 DTOPEN;OPTERM=20020825/20030701;BY SEASONS=--0915/--1220,--0110/0522;BYDAYS ="TU,TH";OPHOURS=190000/210000:Evening classes TITLE:Sensitivity awareness class - HT013. CLASS:PUBLIC CATEGORIES:EDUCATION, BUSINESS ADMIN END:VOPTIME The following is an example of the "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 property parameter: BEGIN:VOPTIME UID:20020901T130000Z-123403@host.com DTSTAMP:20020901T1300Z DTOPEN;OPTERM=20030225/THISANDFUTURE SUMMARY:The Martello bypass becomes operational. ACTIONS;OPTERM=20030225T15300Z/20030225T16300Z:Grand opening ceremony CLASS:PUBLIC CATEGORIES:TRANSPORTATION, ROADS, FREEWAYS END:VOPTIME FitzPatrick, et. al. Expires January 11, 2002 [Page 30] Internet-Draft SKiCal July 2001 5. 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 / 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 6 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 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 5.6.1 which would be sorted under WHO. FitzPatrick, et. al. Expires January 11, 2002 [Page 31] Internet-Draft SKiCal July 2001 5.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.11 Status 4.8.1.12 Summary In addition to the properties named above as defined in RFC-2445 [3], a SKiCal object may include the following properties 5.1.1 Title Property Name: TITLE Purpose: This property specifies the title 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 Format Definition: The property is defined by the following notation: FitzPatrick, et. al. Expires January 11, 2002 [Page 32] Internet-Draft SKiCal July 2001 title = "TITLE" titleparam ":" text CRLF ; It is RECOMMENDED, when feasible, that the ; text value be chosen from a list, ; as described in Section 6 titleparam = *( ; the following is optional, ; but MUST NOT occur more than once (";" languageparam ) / (";" nsrefparam ) / ( optimesetparam ) / ; 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 TITLE;OPTERM 20020101/THISANDPRIOR:WWW11 5.1.2 Persons Property Name: PERSONS Purpose: To facilitate for TimeSpenders the discovery of SKiSources relating to specific people - living or dead. Value Type: TEXT. Property Parameters: Non-standard property parameters can be specified on this property. Conformance: This property CAN be specified within a "VEVENT" or "VOPTIME" calendar component. Description: Persons at a SkiSource might be a shop keeper, waiter, FitzPatrick, et. al. Expires January 11, 2002 [Page 33] Internet-Draft SKiCal July 2001 hostess, artist, a sports team, a guide, a disc jockey or a master of ceremonies and so forth. This property specifies named persons associated with the SKiSource, working at the SKiSource or present at the SKiSource. Persons expected to perform or participate, act or speak, contribute in person to the SKiSource - or to be honoured, referenced, criticized etc., in absence. Format Definition: The property is defined by the following notation: persons = "PERSONS" personsparam ":" text CRLF ; It is RECOMMENDED that the text value be ; chosen from a list, as described in Section 6 ; of this memo. personsparam = *( ; the following is optional, ; but MUST NOT occur more than once (";" languageparam ) /(";" skiroleparam ) / (";" nsrefparam ) / (";" optimesetparam ) / ; 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;OPHOURS=190000/210000;PRXSKiROLE="WPRL:REFERENCED": Nelson Mandela PERSONS;PRXSKiROLE="GGP:STUDIED":Socrates PERSONS;SKiROLE="HOSTESS":Martha Edwards FitzPatrick, et. al. Expires January 11, 2002 [Page 34] Internet-Draft SKiCal July 2001 5.1.3 Thinks Property Name: THINKS Purpose: To facilitate for TimeSpenders the discovery of SKiSources relating to specific concepts, topics, themes and areas of interest Value Type: TEXT Property Parameters: Non-standard property parameters can be specified on this property. Conformance: This property CAN be specified within a "VEVENT" or "VOPTIME" calendar component. Description: This property specifies a THINK. Format Definition: The property is defined by the following notation: thinks = "THINKS" thinksparam ":" text CRLF ; It is RECOMMENDED that the text value be ; chosen from a list, as described in Section 6 ; of this memo. thinksparam = *( ; the following is optional, ; but MUST NOT occur more than once (";" languageparam ) /(";" skiroleparam ) / (";" nsrefparam ) /(";" optimesetparam ) / ; 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 FitzPatrick, et. al. Expires January 11, 2002 [Page 35] Internet-Draft SKiCal July 2001 5.1.4 Things Property Name: THINGS Purpose: To facilitate for TimeSpenders the discovery of SKiSources relating to objects, things, specific goods and products, collectors items, various commodities and so forth. Value Type: TEXT. Property Parameters: Non-standard property parameters can be specified on this property. Conformance: This property CAN be specified within a "VEVENT" or "VOPTIME" calendar component. Description: Things pertaining to a resource-entity. For example; books, paintings, furniture, Gucci Handbags, Wrangler Jeans, famous 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 Section 6 ; of this memo. thingsparam = *( ; the following is optional, ; but MUST NOT occur more than once (";" languageparam ) / (";" skiroleparam ) / (";" nsrefparam ) / (";" optimesetparam ) / ; the following is optional, ; and MAY occur more than once (";" xparam) ) Example: The following are examples of this property: FitzPatrick, et. al. Expires January 11, 2002 [Page 36] Internet-Draft SKiCal July 2001 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 5.1.5 Actions Property Name: ACTIONS Purpose: To facilitate for TimeSpenders the discovery of resource- entities i 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 January 11, 2002 [Page 37] Internet-Draft SKiCal July 2001 actions = "ACTIONS" actionsparam ":" text CRLF ; It is RECOMMENDED that the text value be ; chosen from a list, as described in Section 6 ; of this memo. actionsparam = *( ; the following is optional, ; but MUST NOT occur more than once (";" languageparam ) / (";" nsrefparam ) / (";" optimesetparam ) / ; 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:Team tryouts ACTIONS:Spring term enrollment ACTIONS:wedding 5.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 given as a value but rather a relevance. 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 FitzPatrick, et. al. Expires January 11, 2002 [Page 38] Internet-Draft SKiCal July 2001 parameter (cnparam) be specified on this property. Conformance: This property CAN be specified within a "VEVENT" or "VOPTIME" calendar component. Description: This property allows for the publisher of a SKiSource to indicate a relation to another SKiSource. This property differs from the RELATED-TO property of RFC-2445 [3], which defines a relationship between calendar objects describing SKiSources and not between SKiSources themselves. Format Definition: The property is defined by the following notation: partrel = "PARTREL" partrelparam ":" text CRLF partrelparam = *( ; the following is optional, ; but MUST NOT occur more than once (";" languageparam ) / (";" cnparam ) / (";" reltypeparam) / (";" nsrefparam ) / (";" optimesetparam ) / ; 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@stoinfo.se> PARTREL;CN=2004 Winter Olympics:<19991202@olympic.org> PARTREL;RELTYPE=SIBLING: 5.1.7 Language used at the SKiSource Property Name: SKILANG Purpose: This property specifies the main language, used at the SKiSource. Value Type: TEXT. FitzPatrick, et. al. Expires January 11, 2002 [Page 39] Internet-Draft SKiCal July 2001 Property Parameters: Non-standard property parameters can be specified on this property. Conformance: This property CAN be specified within a "VEVENT" or "VOPTIME" calendar component. Description: Language used at the SKiSource. For example, the main language of a theatre play, the language spoken by the teacher at 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 (";" optimesetparam ) / (";" itemparam) / ; the following is optional, ; and MAY occur more than once (";" xparam) ) language = Example: The following are examples of this property: SKILANG:en,fr SKILANG:sv SKILANG;OPTERM=20010201/20010204:en SKILANG;OPTERM=20010205/20010209:sv SKILANG;ITEM="All our guides speak English":en FitzPatrick, et. al. Expires January 11, 2002 [Page 40] Internet-Draft SKiCal July 2001 SKILANG;ITEM="subtitles":da 5.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 consummer type, or that it is related to a specific cause, faith, professional group, gender, ethnic group etc. Infomediaries can use this property to define their own specific customer orientation types without altering the values in CATEGORIES. Format Definition: The property is defined by the following notation: orientation = "ORIENTATION" orientationparam ":" text CRLF ; It is RECOMMENDED that the text value be ; chosen from a list, as described in Section 6 ; of this memo. orientationparam = *( ; the following is optional, ; but MUST NOT occur more than once (";" orienttypeparam ) / orienttypeparam = (( "ORIENTTYPE" "=" text) / ( "PRXORIENTTYPE" "=" prefix "::" text ) / (";" languageparam ) / (";" nsrefparam ) / (";" optimesetparam ) / (";" itemparam) / ; It is RECOMMENDED that the text value be FitzPatrick, et. al. Expires January 11, 2002 [Page 41] Internet-Draft SKiCal July 2001 ; chosen from a list, as described in Section 6 ; of this memo. ; the following is optional, ; and MAY occur more than once (";" xparam) ) Value Type: TEXT. Example: The following are examples of this property: ORIENTATION;NSREF="G";ORIENTTYPE=Religious:Methodist ORIENTATION;PRXORIENTTYPE="DR:DemographicsRus":Soccer Moms ORIENTATION;ORIENTTYPE=DemographicsRus:Champagne Set ORIENTATION;NSREF="DR":Senior Citizens ORIENTATION;BYDAY="WE";ORIENTTYPE=Gender:Female ORIENTATION;ORIENTTYPE=TimeOut:Gay ORIENTATION;ITEM="Laser scapels";ORIENTTYPE=Occupation:Medical 5.1.9 What URL Property Name: WHURL Purpose: This property defines a Uniform Resource Locator (URL) associated with the SKiSource the SKICal object is describing. Value Type: URI Property Parameters: Non-standard property parameters can be specified on this property. Conformance: This property CAN be specified within a "VEVENT" or "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: FitzPatrick, et. al. Expires January 11, 2002 [Page 42] Internet-Draft SKiCal July 2001 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 5.1.10 SKiSource Unique Identifier Property Name: SKUID Purpose: This property specifies a persistent, globally unique identifier for the SKiSource. Value Type: TEXT Property Parameters: Non-standard property parameters can be specified on this property. Description: This property provides a method for determining a definite, authoritative and unique identification of a SKiSource. SKUID differs from the UID property defined in RFC2445 section 4.8.4.7, whereas UID identifies a calendar component (SKiCal object), 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: FitzPatrick, et. al. Expires January 11, 2002 [Page 43] Internet-Draft SKiCal July 2001 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 5.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 5.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 reoccurence 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. FitzPatrick, et. al. Expires January 11, 2002 [Page 44] Internet-Draft SKiCal July 2001 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 optimesset of property parameters. 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: dtopen = "DTOPEN" opentimeparam ":" TEXT CRLF opentimeparam = *( ; the following are optional, ; but MUST NOT occur more than once ( optimeset / (";" languageparam ) / (";" nsrefparam ) / ; the following is optional, ; and MAY occur more than once *(";" xparam) ) Example: The following are examples of this property: FitzPatrick, et. al. Expires January 11, 2002 [Page 45] Internet-Draft SKiCal July 2001 DTOPEN;xxx:19980118T073000Z 5.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. 5.3.1 Venue Property Name: VENUE Purpose: This property classifies the type of physical context in 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: FitzPatrick, et. al. Expires January 11, 2002 [Page 46] Internet-Draft SKiCal July 2001 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 5.3.2 Directions Property Name: DIRECTIONS 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 January 11, 2002 [Page 47] Internet-Draft SKiCal July 2001 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 5.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 January 11, 2002 [Page 48] Internet-Draft SKiCal July 2001 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 certain segment (eg. Taxi drivers). If the exact name is chosen from a naming list as discussed in this memo, Section 6, further details may be available to the uninitiated. Format Definition: The property is defined by the following notation: placename = "PLACENAME" placeparam ":" text CRLF ; It is RECOMMENDED that the text value be ; chosen from a list, as described in Section 6 ; of this memo. placeparam = *( ; the following is optional, ; but MUST NOT occur more than once (";" languageparam ) / (";" nsrefparam ) / ; the following is optional, ; and MAY occur more than once (";" xparam) ) Example: The following is an example of this property: PLACENAME:Globen PLACENAME:Central Park PLACENAME:The Commons PLACENAME:Muscle Beach 5.4 WHOW (HOW) properties WHOW properties represent possible conditions involved in interaction between a TimeSpender and a SKiSource - the conditions, rules, FitzPatrick, et. al. Expires January 11, 2002 [Page 49] Internet-Draft SKiCal July 2001 qualifications, economics, quirks and hindrances involved. These properties serve as place-holders for the answers to TimeSpender questions such as, "Can I bring a camera?", "How can I get a ticket?", "Is there an age requirement?", "What does the daily special cost?" The properties defined in RFC-2445 [3] that are related to WHOW are: 4.8.1.5 Description - The description property in RFC2445 could be used to hold WHOW 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;OPTERM=240000/THISANDPRIOR:Hot food until midnight RESOURCES;OPHOURS=090000/170000:Members-only parking lot RESOURCES:Drinking water RESOURCES:Smokers section RESOURCES:Butane refills RESOURCES:Changing Rooms 5.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 January 11, 2002 [Page 50] Internet-Draft SKiCal July 2001 requirements = "REQUIRED" requireparam ":" text CRLF ; It is RECOMMENDED that the text value be ; chosen from a list, as described in Section 6 ; of this memo. requireparam = *( ; the following is optional, ; but MUST NOT occur more than once (";" languageparam ) / (";" altrepparam ) (";" nsrefparam ) / ; the following is optional, ; and MAY occur more than once (";" xparam) ) Example: The following are examples of this property: REQUIRED:Children must have adult accompaniment REQUIRED;ALTREP="HTTP://www.nmpda.org/codes/pg13":pg13 REQUIRED:Formal attire REQUIRED:Lions Club Members only REQUIRED:Valid drivers license REQUIRED:Hores ridding experience REQUIRED:Reservations made at least one week in advance REQUIRED:All pets on leashes please REQUIRED:white soled gym shoes REQUIRED:Major credit card REQUIRED:No rain - Event cancelled in case of bad weather REQUIRED:minimum height on all rides 1.40 cm 5.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 January 11, 2002 [Page 51] Internet-Draft SKiCal July 2001 Conformance: This property CAN be specified within a "VEVENT" or "VOPTIME" calendar component. Description: Recommendations made by the Publisher. Format Definition: The property is defined by the following notation: Recommended = "RECOMMENDED" recommendedparam ":" text CRLF ; It is RECOMMENDED that the text value be ; chosen from a list, as described in Section 6 ; of this memo. recommendedparam = *( ; the following is optional, ; but MUST NOT occur more than once (";" languageparam ) / (";" altrepparam ) (";" nsrefparam ) / ; the following is optional, ; and MAY occur more than once (";" xparam) ) Example: The following are examples of this property: RECOMMENDED:Flash Camera RECOMMENDED:Warm Clothes RECOMMENDED:At least 2 hours to see the main exhibition RECOMMENDED:No Children RECOMMENDED:do not leave your possessions unattended RECOMMENDED:Bring you own lunch RECOMMENDED:Sturdy Hiking boots RECOMMENDED:Polio vaccinations RECOMMENDED:Stay on the trail RECOMMENDED:Get here early RECOMMENDED:It is difficult to find parking space - take public transport 5.4.3 Prohibited Property Name: PROHIBITED Purpose: This tells the TimeSpender what activities or things are PROHIBITED at the SKiSource. FitzPatrick, et. al. Expires January 11, 2002 [Page 52] Internet-Draft SKiCal July 2001 Value Type: TEXT. Property Parameters: Non-standard property parameters can be specified on this property. Conformance: This property CAN be specified within a "VEVENT" or "VOPTIME" calendar component. Description: That which is prohibited Format Definition: The property is defined by the following notation: prohibited = "PROHIBITED" prohibitedparam ":" text CRLF ; It is RECOMMENDED that the text value be ; chosen from a list, as described in Section 6 ; of this memo. prohibitedparam = *( ; the following is optional, ; but MUST NOT occur more than once (";" languageparam ) / (";" altrepparam ) / (";" nsrefparam ) / ; the following is optional, ; and MAY occur more than once (";" xparam) ) Example: The following are examples of this property: PROHIBITED:minors PROHIBITED:possession of fire arms PROHIBITED:possession of cameras PROHIBITED:men 5.4.4 Price Property Name: PRICE Purpose: This property gives pricing information about the SKiSource. Value Type: TEXT. FitzPatrick, et. al. Expires January 11, 2002 [Page 53] Internet-Draft SKiCal July 2001 Property Parameters: Non-standard property parameters can be specified on this property. Conformance: This property CAN be specified within a "VEVENT" or "VOPTIME" calendar component. Description: This property can be used to provide information about the pricing structure at a SKiSource. Due to a large divergence in pricing structures, it is not intended that all aspects of pricing will be possible to represent in a machine readable format using SKICal. This syntax will allow for simpler pricing structures to be defined. Format Definition: The property is defined by the following notation: price = "PRICE" priceparam ":" price CRLF priceparam = *( ; the following is optional, ; but MUST NOT occur more than once (";" languageparam ) / (";" altrepparam ) / (";" itemparam) / (";" currencyparam) (";" nsrefparam ) / ) ; The text value COULD be ; chosen from a list, as described in Section 6 ; of this memo. Such a list could ; contain words such as: ; Admission ; Breakfast ; Starting Fee ; Room ; Happy hour ; Monthly fee price = float currencyparam = "CURRENCY" "=" ; Minimum SKiCal version needed to parse the SkiCal extensions ; in the iCalendar object maxver = ; 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 5.7.3 NAMESPACE Property Name: NAMESPACE Purpose: Designates a URL containing a list of values and assigns a prefix as a shorthand pointer to that URL. Value Type: URI Property Parameters: Non-standard property parameters can be specified on this property. Conformance: This property CAN be specified within a "VEVENT" or "VOPTIME" calendar component. Description: For many of the properties and property parameters of this note, it is recommended that text values be chosen from authoritative lists. This property defines a method for the identification and location of such a list, but it does not define the syntax that such a list might employ. The inclussion of a NAMESPACE properery in a calendar component does not imply that a SKiCal parser must be able to access such a list. Format Definition: The property is defined by the following notation: FitzPatrick, et. al. Expires January 11, 2002 [Page 65] Internet-Draft SKiCal July 2001 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" FitzPatrick, et. al. Expires January 11, 2002 [Page 66] Internet-Draft SKiCal July 2001 6. 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 January 11, 2002 [Page 67] Internet-Draft SKiCal July 2001 7. Security considerations Anybody could produce a SKICal compliant file containing false information. Calendar publishers will need to exercize 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 January 11, 2002 [Page 68] Internet-Draft SKiCal July 2001 8. 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 January 11, 2002 [Page 69] Internet-Draft SKiCal July 2001 9. 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 Road and Edmonton Drive. Call 301-309-3007 for directions. FitzPatrick, et. al. Expires January 11, 2002 [Page 70] Internet-Draft SKiCal July 2001 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 The following is an example of a SKICal file, where all SKICal specific property names have been prefixed "X-SKI-" for iCalendar 2.0 compatibility. This example describes a canoe rental store, which can arrange guided tours. This is not a traditional event, but from the point of view of a tourist it is definitely a potential event. BEGIN:VCALENDAR VERSION:2.0 PRODID:-//HandGenerated/SKICal//NONSGML v1.0//EN BEGIN:VEVENT UID:8oi3290@gvg.se X-SKI-SKUID:9823498t-E@gvg.se CATEGORIES;LANGUAGE=sv:kanot,friluftsliv,kajak,natur,vildmark,paddlin g,camping CREATED:19990726T104030Z DTSTAMP:19990726T104030Z SEQUENCE:2 LAST-MODIFIED:19990727T103322Z SUMMARY:Kalles kanot, hyr aven ut kajaker, vid Fyrisan intill Lillbyn X-SKI-TITLE:Kalles kanot DTSTART:19991002T090000Z/PT8H30M RRULE:FREQ=WEEKLY;INTERVAL=1;OPTERM=20000524T173000Z/THISANDFUTURE; WKST=MO;BYDAY=MO,TU,WE,TH,FR,SA X-SKI-VENUE:Outdoors X-SKI-THINGS;LANGUAGE=en:Canoes X-SKI-THINGS;LANGUAGE=sv:Kanoter X-SKI-THINGS;LANGUAGE=sv:Kajaker FitzPatrick, et. al. Expires January 11, 2002 [Page 71] Internet-Draft SKiCal July 2001 X-SKI-PERSONS;SKiROLE="GUIDE":Annika Johansson X-SKI-PRICE;CURRENCY=SEK;ITEM="Hyra per dag, exempel":200 X-SKI-PAYMETHOD:VISA X-SKI-PAYMETHOD:AMEX X-SKI-PLACENAME;LANGUAGE=sv:Kanothuset RESOURCES;LANGUAGE=sv:Burkmat,torrfoder X-SKI-BOOKINGS:tel +46 (18) 123 456 RESOURCES;LANGUAGE=sv:Kunder far langtidsparkera pa garden X-SKI-ACCESS;TYPE=wheelchair-ramps:FALSE URL:http://www.kanotkalle.se/ LOCATION;ALTREP=http://www.skical.org/turistradet/firman.vcf:Fyrisga tan 4\n888 88 Uppsala GEO:56.876487;18.872398 X-SKI-DIRECTIONS;TRAVELBY="public_transportation";LANGUAGE=sv:Buss 876 till station Landsglantan X-SKI-TRANSPORTATION;QUALRULE=AVAILABLE:Bus from downtown every half hour X-SKI-DIRECTIONS;TRAVELBY=car;LANGUAGE=sv:Vag 67 fran Uppsala mot Linnes Hammarby, tag av andra vagen till hoger efter korsningen med gamla Uppsalavagen, folj vagen ca 2 kilometer till an. Darefter skyltat. DESCRIPTION;LANGUAGE=sv:Vi hyr ut kanoter, kajaker, campingutrustn ing och andra tillbehor, ordnar aventyrspaddlingar och kurser. Generalagent for VikingaPaddeln. DESCRIPTION;LANGUAGE=en:We have canoes and accessories for rental, and organize wildlife guided excursions and courses. X-SKI-PROMO;LANGUAGE=sv:Kanotkalle - batar for alla vader X-SKI-PROMO;LANGUAGE=en:http://www.utsidan.se/recensioner/find.as p?87326 X-SKI-CONTROL;ALTREP=http://www.skical.org/turistradet/firman.vc f;CN="Kanotkalle AB":MAILTO:info@kanotkalle.se ORGANIZER;CN="Visit Sweden":MAILTO:info@gvg.se X-SKI-PUBLISHER;CN="Visit Sweden":MAILTO:info@gvg.se X-SKI-CONTROL;SKiROLE="members-of";CN="Svenska Turistforbundet":MAILTO:info@stf.se CONTACT;CN="Kalle Karlsson":kalle@kanotkalle.se END:VEVENT END:VCALENDAR FitzPatrick, et. al. Expires January 11, 2002 [Page 72] Internet-Draft SKiCal July 2001 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, . [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, . [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, . [11] Swick, R. and O. Lassila, "Resource Description Framework (RDF) Model and Syntax Specification", W3C RDF, February 1999, . [12] ECMA, ., "Standard ECMA-262 ECMAScript Language Specification", ECMA 262, December 1999, . FitzPatrick, et. al. Expires January 11, 2002 [Page 73] Internet-Draft SKiCal July 2001 Authors' Addresses Greg FitzPatrick SKiCal Consortium Völundsgatan 5 Stockholm, SE-102 20 SE Phone: +46 8 33 20 40 EMail: greg.fitzpatrick@skical.org URI: http://www.skical.org/ Pär 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 January 11, 2002 [Page 74] Internet-Draft SKiCal July 2001 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 January 11, 2002 [Page 75] Internet-Draft SKiCal July 2001 Full Copyright Statement Copyright (C) The Internet Society (2001). 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 January 11, 2002 [Page 76]