idnits 2.17.1 draft-reddy-scap-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Cannot find the required boilerplate sections (Copyright, IPR, etc.) in this document. Expected boilerplate is as follows today (2024-04-23) according to https://trustee.ietf.org/license-info : IETF Trust Legal Provisions of 28-dec-2009, Section 6.a: This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 2: Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 3: This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** Missing expiration date. The document expiration date should appear on the first and last page. ** The document seems to lack a 1id_guidelines paragraph about Internet-Drafts being working documents. ** The document seems to lack a 1id_guidelines paragraph about 6 months document validity -- however, there's a paragraph with a matching beginning. Boilerplate error? ** The document seems to lack a 1id_guidelines paragraph about the list of current Internet-Drafts. ** The document seems to lack a 1id_guidelines paragraph about the list of Shadow Directories. == No 'Intended status' indicated for this document; assuming Proposed Standard Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** The document seems to lack an Authors' Addresses Section. ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. ** There are 180 instances of too long lines in the document, the longest one being 12 characters in excess of 72. == There are 8 instances of lines with non-RFC2606-compliant FQDNs in the document. Miscellaneous warnings: ---------------------------------------------------------------------------- == Line 36 has weird spacing: '...ntially and e...' == Line 613 has weird spacing: '...Objects from ...' == Line 963 has weird spacing: '...he base offse...' == Line 1002 has weird spacing: '... and time)...' == Line 1003 has weird spacing: '...nd time for E...' == (2 more instances...) == The document seems to lack the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords -- however, there's a paragraph with a matching beginning. Boilerplate error? (The document does seem to have the reference to RFC 2119 which the ID-Checklist requires). == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'MUST not' in this paragraph: New Calendar Objects added to a Calendar store with the MKCSOBJ command MUST contain all required iCalendar properties specified in well formed XML request body. If a required property is missing the server MUST return a response and MUST not modify any of the specified Calendar stores. -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (October 27, 1998) is 9310 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'XML' is mentioned on line 690, but not defined == Missing Reference: 'RFC 822' is mentioned on line 1637, but not defined ** Obsolete undefined reference: RFC 822 (Obsoleted by RFC 2822) == Missing Reference: '3' is mentioned on line 1817, but not defined == Missing Reference: '4' is mentioned on line 1817, but not defined == Unused Reference: 'CSCOS' is defined on line 2033, but no explicit reference was found in the text == Unused Reference: 'Alvestrand' is defined on line 2040, but no explicit reference was found in the text == Unused Reference: '1995' is defined on line 2037, but no explicit reference was found in the text == Unused Reference: 'ISO-639' is defined on line 2063, but no explicit reference was found in the text == Unused Reference: 'ISO-8601' is defined on line 2066, but no explicit reference was found in the text == Unused Reference: 'Leach' is defined on line 2070, but no explicit reference was found in the text == Unused Reference: 'Salz' is defined on line 2070, but no explicit reference was found in the text == Unused Reference: 'Yergeau' is defined on line 2074, but no explicit reference was found in the text == Unused Reference: '1996' is defined on line 2077, but no explicit reference was found in the text == Unused Reference: 'Hollander' is defined on line 2080, but no explicit reference was found in the text == Unused Reference: 'Layman' is defined on line 2080, but no explicit reference was found in the text == Outdated reference: A later version (-11) exists of draft-ietf-calsch-ical-00 ** Obsolete normative reference: RFC 1766 (ref. '1995') (Obsoleted by RFC 3066, RFC 3282) -- Possible downref: Non-RFC (?) normative reference: ref. '1998' -- Possible downref: Non-RFC (?) normative reference: ref. 'Bray' -- Possible downref: Non-RFC (?) normative reference: ref. 'Paoli' -- Possible downref: Non-RFC (?) normative reference: ref. 'Sperberg-McQueen' -- Possible downref: Non-RFC (?) normative reference: ref. 'ISO-639' -- Possible downref: Non-RFC (?) normative reference: ref. 'ISO-8601' -- Possible downref: Non-RFC (?) normative reference: ref. 'Leach' -- Possible downref: Non-RFC (?) normative reference: ref. 'Salz' ** Obsolete normative reference: RFC 2279 (ref. 'Yergeau') (Obsoleted by RFC 3629) -- Duplicate reference: RFC2026, mentioned in '1996', was also mentioned in 'Bradner'. -- Possible downref: Non-RFC (?) normative reference: ref. 'Hollander' -- Possible downref: Non-RFC (?) normative reference: ref. 'Layman' Summary: 13 errors (**), 0 flaws (~~), 26 warnings (==), 13 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 CALSCH Working Group Surendra Reddy 3 Internet Draft Oracle Corporation 4 draft-reddy-scap-00.txt April 27, 1998 5 Expires October 27, 1998 7 Web based Simple Calendar Access Protocol - SCAP 9 Status of this Memo 11 This document is an Internet-Draft. Internet-Drafts are working docu- 12 ments of the Internet Engineering Task Force (IETF), its areas, and 13 its working groups. Note that other groups may also distribute work- 14 ing documents as Internet-Drafts. 16 Internet-Drafts are draft documents valid for a maximum of six months 17 and may be updated, replaced, or made obsolete by other documents at 18 any time. It is inappropriate to use Internet-Drafts as reference 19 material or to cite them other than as "work in progress". 21 To view the entire list of current Internet-Drafts, please check the 22 "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow 23 Directories on ftp.is.co.za (Africa), ftp.nordu.net (Northern 24 Europe), ftp.nis.garr.it (Southern Europe), munnari.oz.au (Pacific 25 Rim), ftp.ietf.org (US East Coast), or ftp.isi.edu (US West Coast). 27 Distribution of this document is unlimited. Please send comments to 28 the CALSCH working group at ietf-calendar@imc.org, which may be 29 joined by sending a message with subject "subscribe" to ietf- 30 calendar-request@imc.org. 32 Abstract 34 Distributed calendaring is gradually becoming more demanding than 35 standalone calendaring and scheduling. The use of calendaring and 36 scheduling has grown exponentially and enterprise and inter- 37 enterprise business has become so dependent on group scheudling 38 applications. But there is no Internet standard to provide 39 interoperability among various calendaring applications. 40 Consequently, user need to install different conduit programs to 41 access these calendaring stores. This memo proposes a HTTP based 42 simple calendaring access protocol which allows web, email and any 43 HTTP compliant clients to access and manipulate calendar store. 45 The motivation for this proposal is the expanded scope and diversity 46 of the World Wide Web. The World Wide Web provides a simple and 47 effective means for users to search, browse, retrieve, and publish 48 information of their own available for others. Now that Web browsers 49 and servers are ubiquitous on the Internet, it is worthwhile to use 50 HTTP as transport protocol and XML to encode calendar objects. The 51 power and extensibility of XML allows us to represent calendar data 52 objects as well-formed XML documents. 54 Simple Calendar Access Protocol(SCAP) allows exchanging calendaring 55 information between scheduling systems using the Hypertext Transfer 56 Protocol (HTTP). This allows users to schedule meetings with anyone 57 else, no matter what scheduling software they use. 59 This document specifies a set of methods, headers, and content-types 60 ancillary to HTTP/1.1 for the management of calender properties, 61 creation and management of calendar objects, and namespace 62 manipulation. 64 Table of Contents 66 i. Status of this Memo .......................................... 1 67 ii. Abstract .................................................... 1 68 1. Introduction ................................................ 4 69 2. Notational Conventions ...................................... 4 70 3. Calendar Object Model ....................................... 5 71 3.1 The Calendar Property Model ............................. 5 72 3.2 Property Values ......................................... 5 73 3.3 Property Names .......................................... 5 74 3.4 Calendar Names and User Names ........................... 5 75 4. HTTP Methods of Calendar Access ............................. 5 76 4.1 CSOP Method ............................................. 6 77 4.1.1 Create Calendar Store ............................. 6 78 4.1.2 Example: Create Calendar Store .................... 6 79 4.1.3 Example - Select Calendar Store ................... 7 80 4.1.4 Delete Calendar Store ............................. 8 81 4.1.5 Example: Delete Calendar Store .................... 8 82 4.1.6 Copy and Move Calendar Stores ..................... 9 83 4.1.7 Example: Rename Calendar Store .................... 9 84 4.1.8 List Calendar Store ............................... 10 85 4.1.9 Examples: List Calendar Store ..................... 10 86 4.1.10 Set Calendar View by Range ....................... 11 87 4.1.11 Example: Calendar View by Range .................. 11 88 4.2 MKCSOBJ ................................................. 12 89 4.2.1 Examples: ........................................ 12 90 4.3 CSPROP Method ........................................... 13 91 4.3.1 Example:Get Freebusy time ......................... 14 92 5. Calendar XML Element Definitions ............................ 15 93 5.1 Calendar Message ........................................ 15 94 5.2 vevent XML element ...................................... 16 95 5.2.1 Example: vevent ................................... 16 96 5.3 vtodo XML element ....................................... 17 97 5.3.1 Example: vtodo .................................... 18 98 5.4 vjournal XML element ................................... 18 99 5.4.1 Example: vjournal ................................ 19 100 5.5 vfreebusy XML element ................................... 19 101 5.5.1 Example: vfreebusy ................................ 20 102 5.5 vtimezone XML element ................................... 21 103 5.6.1 Example: vtimezone ................................ 22 104 5.6 valarm XML element ...................................... 23 105 5.6.1 Example: valarm ................................... 24 106 6. Calendar Properties ......................................... 25 107 6.1 attach Property ......................................... 25 108 6.2 categories Property ..................................... 26 109 6.3 class Property .......................................... 26 110 6.4 comment Property ........................................ 26 111 6.5 description Property .................................... 27 112 6.6 location Property ....................................... 27 113 6.7 percentcomplete Property ................................ 27 114 6.8 priority Property ....................................... 28 115 6.9 resources Property ...................................... 28 116 6.10 status Property ........................................ 28 117 6.11 summary Property ....................................... 29 118 6.12 completed property ..................................... 29 119 6.13 dtend Property ......................................... 29 120 6.14 due Property ........................................... 30 121 6.15 dtstart Property ....................................... 30 122 6.16 duration Property ...................................... 31 123 6.17 freebusy Property ...................................... 31 124 6.18 attendee Property ...................................... 32 125 6.19 contact Property ....................................... 33 126 6.20 organizer Property ..................................... 33 127 6.21 recurid Property ....................................... 34 128 6.22 relatedto Property ..................................... 35 129 6.23 url property ........................................... 35 130 6.24 uid Property ........................................... 35 131 6.25 exdate Property ........................................ 36 132 6.26 exrule Property ........................................ 36 133 6.27 rdate Property ......................................... 36 134 6.28 rrule Property ......................................... 37 135 6.29 trigger Property ....................................... 37 136 6.30 created Property ....................................... 38 137 6.31 dtstamp Property ....................................... 38 138 6.32 lastmodified Property .................................. 38 139 6.33 sequence Property ...................................... 39 140 6.34 requeststatus Property ................................. 39 141 7. Security Considerations ..................................... 40 142 8. Calendar Object Specification - XML DTD ..................... 40 143 8. References .................................................. 44 144 9. Author's Address ............................................ 45 146 1. Introduction 148 This document describes an extension to the HTTP/1.1 protocol that 149 allows clients to perform remote calendaring operations. This 150 extension provides a coherent set of methods, headers, request 151 entity body formats, and response entity body formats that provide 152 operations for: 154 Properties: The ability to create, remove, and query information 155 about Calendar resources, such as their freetime, todo etc. 157 Namespace Operations: The ability to instruct the server to copy and 158 move calendar objects. 160 SCAP, encodes method parameter information either in an Extensible 161 Markup Language (XML) [Bray, Paoli, Sperberg-McQueen, 1998] request 162 entity body, or in an HTTP header. The use of XML to encode method 163 parameters was motivated by the ability to add extra XML elements to 164 existing structures, providing extensibility, and by XML's ability 165 to encode information in ISO 10646 character sets, providing 166 internationalization support. As a rule of thumb, parameters are 167 encoded in XML entity bodies when they have unbounded length, or 168 when they may be shown to a human user and hence require encoding in 169 an ISO 10646 character set. Otherwise, parameters are encoded 170 within HTTP headers. 172 In addition to encoding method parameters, XML is used in SCAP to 173 encode the responses from methods, providing the extensibility and 174 internationalization advantages of XML for method output, as well as 175 input. 177 2. Notational Conventions 178 Since this document describes a set of extensions to the HTTP/1.1 179 protocol, the augmented BNF used herein to describe protocol 180 elements is exactly the same as described in section 2.1 of 181 [Fielding et al., 1997]. Since this augmented BNF uses the basic 182 production rules provided in section 2.2 of [Fielding et al., 1997], 183 these rules apply to this document as well. 185 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 186 "SHOULD", SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 187 document are to be interpreted as described in RFC 2119 [Bradner, 188 1997]. 190 3. Calendar Object Model 192 3.1. The Calendar Property Model 193 Properties are pieces of data that describe the state of Calendar 194 objects. Properties are data about data. [Refer iCalendar] 196 The SCAP property model consists of name/value pairs. The name of a 197 property identifies the property's syntax and semantics, and 198 provides an address by which to refer to its syntax and semantics. 200 3.2. Property Values 201 The value of a property is, at minimum, well formed XML. 203 XML has been chosen because it is a flexible, self-describing, 204 structured data format that supports rich schema definitions, and 205 because of its support for multiple character sets. XML's self- 206 describing nature allows any property's value to be extended by 207 adding new elements. Older clients will not break when they 208 encounter extensions because they will still have the data specified 209 in the original schema and will ignore elements they do not 210 understand. XML's support for multiple character sets allows any 211 human-readable property to be encoded and read in a character set 212 familiar to the user. 214 3.3. Property Names 215 A property name is a universally unique identifier that is 216 associated with a schema that provides information about the syntax 217 and semantics of the property. 219 Because a property's name is universally unique, clients can depend 220 upon consistent behavior for a particular property across multiple 221 resources, so long as that property is "live" on the resources in 222 question. 224 The XML namespace mechanism, which is based on URIs, is used to name 225 properties because it prevents namespace collisions and provides for 226 varying degrees of administrative control. 228 3.4. Calendar Names and User Names 229 The name parameter can be the name of a Calendar and optionally a 230 user name. 232 4. HTTP Methods of Calendar Access 233 The following new HTTP methods use XML as a request and response 234 format. All SCAP compliant clients and resources MUST use XML 235 parsers that are complaint with [Bray, Paoli, Sperberg-McQueen, 236 1998]. All XML used in either requests or responses MUST be, at 237 minimum, well formed. If a server receives ill-formed XML in a 238 request it MUST reject the entire request with a 400 Bad Request. 239 If a client receives ill-formed XML in response then it SHOULD treat 240 the server as malfunctioning. 242 4.1. CSOP Method 243 The Calendar Store Operation(CSOP) method processes instructions 244 specified in the request body. All SCAP compliant servers MUST 245 support CSOP and MUST process instructions that are specified using 246 csoperation XML element of SCAP schema. The request message body of 247 a CSOP MUST contain at least one csoperation XML element. 249 A client MUST submit csoperation XML element in the body of the 250 request method decribing what action is being requested on the 251 Request-URI. All SCAP complaiance servers MUST support returing a 252 response of content type text/xml that contains a multistatus XML 253 element that describes the results of the attempts to perform the 254 various actions. 256 If any requested operation is resulted in an error then the error 257 result MUST be included in the response XML element. 259 4.1.1. Create Calendar Store 260 Creates a new Calendar store with the given name. Calendar store 261 names must begin with an alphabetic character and consist of 262 alphanumeric characters. Calendar names are not case sensitive. It 263 is illegal to create more than one Calendar store with the same 264 name. "create" does not automatically select the Calendar store 265 created. 267 SCAP servers are NOT required to support hierarchical names. If a 268 client attempts to create a Calendar Store with a hierarchical name 269 on a server which does not support hierarchical names, the server 270 MUST return an error response of to the "create" action request. 272 If the Calendar name is suffixed with the hierarchy separator "/", 273 this is a declaration that the client intends to create Calendar 274 names under this name in the hierarchy. Server implementations that 275 do not require this declaration MUST ignore it. 277 4.1.2. Example: Create Calendar Store 278 >>Request 280 CSOP HTTP/1.1 281 HOST: www.foo.com 282 Content-Type: text/xml 283 Content-Length: xxxx 285 286 287 288 Projects/ 289 Projects 290 292 >>Response 294 HTTP/1.1 207 MULTI-STATUS 295 Content-Type: text/xml 296 Content-Length: xxxx 298 299 300 302 303 HTTP/1.1 415 Unsupported 304 305 306 HTTP/1.1 201 OK 307 309 310 The above example creates two Calendar stores for the default user. First 311 operation failed as creating hierarchical Calendar store is not supported, 312 hence server responded with a response code 415. 314 4.2. Example - Select Calendar Store 315 >>Request 317 CSOP HTTP/1.1 318 HOST: www.foo.com 319 Content-Type: text/xml 320 Content-Length: xxxx 322 323 324 325 Bob 327