| rfc9253.original | rfc9253.txt | |||
|---|---|---|---|---|
| Network Working Group M. Douglass | Internet Engineering Task Force (IETF) M. Douglass | |||
| Internet-Draft Bedework | Request for Comments: 9253 Bedework | |||
| Updates: 5545 (if approved) 22 March 2022 | Updates: 5545 July 2022 | |||
| Intended status: Standards Track | Category: Standards Track | |||
| Expires: 23 September 2022 | ISSN: 2070-1721 | |||
| Support for iCalendar Relationships | Support for iCalendar Relationships | |||
| draft-ietf-calext-ical-relations-11 | ||||
| Abstract | Abstract | |||
| This specification updates the iCalendar RELATED-TO property defined | This specification updates the iCalendar RELATED-TO property defined | |||
| in RFC5545 by adding new relation types and introduces new iCalendar | in RFC 5545 by adding new relation types and introduces new iCalendar | |||
| properties LINK, CONCEPT and REFID to allow better linking and | properties (LINK, CONCEPT, and REFID) to allow better linking and | |||
| grouping of iCalendar components and related data. | grouping of iCalendar components and related data. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
| provisions of BCP 78 and BCP 79. | ||||
| Internet-Drafts are working documents of the Internet Engineering | ||||
| Task Force (IETF). Note that other groups may also distribute | ||||
| working documents as Internet-Drafts. The list of current Internet- | ||||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
| Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
| and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
| time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
| material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on 23 September 2022. | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | ||||
| https://www.rfc-editor.org/info/rfc9253. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2022 IETF Trust and the persons identified as the | Copyright (c) 2022 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
| license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
| and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
| extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
| described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
| provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
| in the Revised BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
| 1.1. Structured iCalendar relationships . . . . . . . . . . . 3 | 1.1. Structured iCalendar Relationships | |||
| 1.2. Grouped iCalendar relationships . . . . . . . . . . . . . 3 | 1.2. Grouped iCalendar Relationships | |||
| 1.3. Concept relationships . . . . . . . . . . . . . . . . . . 3 | 1.3. Concept Relationships | |||
| 1.4. Linked relationships . . . . . . . . . . . . . . . . . . 4 | 1.4. Linked Relationships | |||
| 1.5. Caching and offline use . . . . . . . . . . . . . . . . . 5 | 1.5. Caching and Offline Use | |||
| 1.6. Conventions Used in This Document . . . . . . . . . . . . 5 | 1.6. Conventions Used in This Document | |||
| 2. LINK Property Reference Types . . . . . . . . . . . . . . . . 5 | 2. LINK Property Reference Types | |||
| 3. Link Relation Types . . . . . . . . . . . . . . . . . . . . . 6 | 3. Link Relation Types | |||
| 4. New temporal RELTYPE Parameter values . . . . . . . . . . . . 6 | 4. New Temporal RELTYPE Parameter Values | |||
| 5. Additional New RELTYPE Parameter Values . . . . . . . . . . . 8 | 5. Additional New RELTYPE Parameter Values | |||
| 6. New Property Parameters . . . . . . . . . . . . . . . . . . . 8 | 6. New Property Parameters | |||
| 6.1. Link Relation . . . . . . . . . . . . . . . . . . . . . . 9 | 6.1. Link Relation | |||
| 6.2. Gap . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 6.2. Gap | |||
| 7. New Value Data Types . . . . . . . . . . . . . . . . . . . . 10 | 7. New Value Data Types | |||
| 8. New Properties . . . . . . . . . . . . . . . . . . . . . . . 11 | 8. New Properties | |||
| 8.1. Concept . . . . . . . . . . . . . . . . . . . . . . . . . 11 | 8.1. Concept | |||
| 8.2. Link . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 8.2. Link | |||
| 8.3. Refid . . . . . . . . . . . . . . . . . . . . . . . . . . 14 | 8.3. Refid | |||
| 9. Updates to RFC 5545 . . . . . . . . . . . . . . . . . . . . . 14 | 9. Updates to RFC 5545 | |||
| 9.1. RELATED-TO . . . . . . . . . . . . . . . . . . . . . . . 15 | 9.1. RELATED-TO | |||
| 10. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | 10. Security Considerations | |||
| 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 | 11. IANA Considerations | |||
| 11.1. iCalendar Property Registrations . . . . . . . . . . . . 17 | 11.1. iCalendar Property Registrations | |||
| 11.2. iCalendar Property Parameter Registrations . . . . . . . 18 | 11.2. iCalendar Property Parameter Registrations | |||
| 11.3. iCalendar Value Data Type Registrations . . . . . . . . 18 | 11.3. iCalendar Value Data Type Registrations | |||
| 11.4. iCalendar RELTYPE Value Registrations . . . . . . . . . 19 | 11.4. iCalendar RELTYPE Value Registrations | |||
| 11.5. New Reference Type Registration . . . . . . . . . . . . 19 | 12. References | |||
| 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 20 | 12.1. Normative References | |||
| 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 | 12.2. Informative References | |||
| 13.1. Informative References . . . . . . . . . . . . . . . . . 20 | Acknowledgements | |||
| 13.2. Normative References . . . . . . . . . . . . . . . . . . 20 | Author's Address | |||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 21 | ||||
| 1. Introduction | 1. Introduction | |||
| iCalendar entities defined in [RFC5545] often need to be related to | iCalendar entities defined in [RFC5545] often need to be related to | |||
| each other or to associated meta-data. The specifications below | each other or to associated metadata. The specifications below | |||
| support relationships of the following forms: | support relationships of the following forms: | |||
| Structured iCalendar: iCalendar entities can be related to each | Structured iCalendar: iCalendar entities can be related to each | |||
| other in some structured way, for example as parent, sibling, | other in some structured way, for example, as parent, sibling, | |||
| before, after. | before, or after. | |||
| Grouped iCalendar: iCalendar entities can be related to each other | Grouped iCalendar: iCalendar entities can be related to each other | |||
| as a group. CATEGORIES are often used for this purpose but are | as a group. CATEGORIES are often used for this purpose but are | |||
| problematic for application developers due to their lack of | problematic for application developers due to their lack of | |||
| consistency and use as a free-form tag. | consistency and use as a free-form tag. | |||
| Linked: Entities can be linked to other entities such as vcards | Linked: Entities can be linked to other entities, such as vCards, | |||
| through a URI and associated REL and FMTTYPE parameters. | through a URI and associated REL and FMTTYPE parameters. | |||
| 1.1. Structured iCalendar relationships | 1.1. Structured iCalendar Relationships | |||
| The iCalendar [RFC5545] RELATED-TO property has no support for | The iCalendar [RFC5545] RELATED-TO property has no support for | |||
| temporal relationships as used by project management tools. | temporal relationships as used by project management tools. | |||
| The RELTYPE parameter is extended to take new values defining | The RELTYPE parameter is extended to take new values defining | |||
| temporal relationships, a GAP parameter is defined to provide lead | temporal relationships, a GAP parameter is defined to provide lead | |||
| and lag values, and RELATED-TO is extended to allow URI values. | and lag values, and RELATED-TO is extended to allow URI values. | |||
| These changes allow the RELATED-TO property to define a richer set of | These changes allow the RELATED-TO property to define a richer set of | |||
| relationships useful for project management. | relationships useful for project management. | |||
| 1.2. Grouped iCalendar relationships | 1.2. Grouped iCalendar Relationships | |||
| This specification defines a new REFID property which allows | This specification defines a new REFID property, which allows | |||
| arbitrary groups of entities to be associated with the same key | arbitrary groups of entities to be associated with the same key | |||
| value. | value. | |||
| REFID is used to identify a key allowing the association of | REFID is used to identify a key allowing the association of | |||
| components that are all related to the referring, aggregating | components that are all related to the referring, aggregating | |||
| component and the retrieval of components based on this key. For | component and the retrieval of components based on this key. For | |||
| example, this may be used to identify the tasks associated with a | example, this may be used to identify the tasks associated with a | |||
| given project without having to communicate the task structure of the | given project without having to communicate the task structure of the | |||
| project. A further example is the grouping of all sub-tasks | project. A further example is the grouping of all sub-tasks | |||
| associated with the delivery of a specific package in a package | associated with the delivery of a specific package in a package | |||
| delivery system. | delivery system. | |||
| As such, the presence of a REFID property imparts no meaning to the | As such, the presence of a REFID property imparts no meaning to the | |||
| component. It is merely a key to allow retrieval. This is distinct | component. It is merely a key to allow retrieval. This is distinct | |||
| from categorisation which, while allowing grouping also adds meaning | from categorization, which, while allowing grouping, also adds | |||
| to the component to which it is attached. | meaning to the component to which it is attached. | |||
| 1.3. Concept relationships | 1.3. Concept Relationships | |||
| The name CONCEPT is used by the Simple Knowledge Organization System | The name CONCEPT is used by the Simple Knowledge Organization System, | |||
| defined in [W3C.REC-skos-reference-20090818]. The term "concept" | as defined in [W3C.REC-skos-reference-20090818]. The term "concept" | |||
| more accurately defines what we often mean by a category. It's not | more accurately defines what we often mean by a category. It's not | |||
| the text string that is important but the meaning attached to it. | the text string that is important but the meaning attached to it. | |||
| For example, the term "football" can mean very different sports. | For example, the term "football" can mean very different sports. | |||
| The introduction of CONCEPT allows a more structured approach to | The introduction of CONCEPT allows a more structured approach to | |||
| categorization, with the possibility of namespaced and path-like | categorization, with the possibility of namespaced and path-like | |||
| values. Unlike REFID the CONCEPT property imparts some meaning. It | values. Unlike REFID, the CONCEPT property imparts some meaning. It | |||
| is assumed that the value of this property will reference a well | is assumed that the value of this property will reference a well- | |||
| defined category. | defined category. | |||
| The current [RFC5545] CATEGORY property is used as a free form | The current CATEGORIES property defined in [RFC5545] is used as a | |||
| 'tagging' field. These values have some meaning to those who apply | free-form 'tagging' field. These values have some meaning to those | |||
| them but not necessarily to any consumer. As such it is difficult to | who apply them but not necessarily to any consumer. As such, it is | |||
| establish formal relationships between components based on their | difficult to establish formal relationships between components based | |||
| category. | on their category. | |||
| Rather than attempt to add semantics to the CATEGORY property it | Rather than attempt to add semantics to the CATEGORIES property, it | |||
| seems best to continue its usage as an informal tag and establish a | seems best to continue its usage as an informal tag and establish a | |||
| new CONCEPT property with more constraints. | new CONCEPT property with more constraints. | |||
| 1.4. Linked relationships | 1.4. Linked Relationships | |||
| The currently existing iCalendar standard [RFC5545] lacks a general | The currently existing iCalendar standard [RFC5545] lacks a general | |||
| purpose method for referencing additional, external information | purpose method for referencing additional, external information | |||
| relating to calendar components. | relating to calendar components. | |||
| This document proposes a method for referencing typed external | This document proposes a method for referencing typed external | |||
| information that can provide additional information about an | information that can provide additional information about an | |||
| iCalendar component. This new LINK property is closely aligned to | iCalendar component. This new LINK property is closely aligned to | |||
| [RFC8288] which defines the generic concept of Web Linking as well as | [RFC8288], which defines the generic concept of Web Linking, as well | |||
| its expression in the HTTP LINK header field. | as its expression in the HTTP LINK header field. | |||
| The LINK property defines a typed reference or relation to external | The LINK property defines a typed reference or relation to external | |||
| meta-data or related resources. By providing type and format | metadata or related resources. By providing type and format | |||
| information as parameters, clients and servers are able to discover | information as parameters, clients and servers are able to discover | |||
| interesting references and make use of them, perhaps for indexing or | interesting references and make use of them, perhaps for indexing or | |||
| the presentation of interesting links for the user. | the presentation of interesting links for the user. | |||
| Calendar components are often grouped into collections to represent a | Calendar components are often grouped into collections to represent a | |||
| calendar or a series of tasks, for example [RFC4791]' (CalDAV) | calendar or a series of tasks, for example, Calendaring Extensions to | |||
| calendar collections. | WebDAV (CalDAV) calendar collections [RFC4791]. | |||
| It is also often necessary to reference calendar components in other | It is also often necessary to reference calendar components in other | |||
| collections. For example, a VEVENT might refer to a VTODO from which | collections. For example, a VEVENT might refer to a VTODO from which | |||
| it was derived. The PARENT, SIBLING and CHILD relationships defined | it was derived. The PARENT, SIBLING, and CHILD relationships defined | |||
| for the RELATED-TO property only allow for a UID which is inadequate | for the RELATED-TO property only allow for a unique identifier (UID), | |||
| for many purposes. Allowing other value types for those | which is inadequate for many purposes. Allowing other value types | |||
| relationships may help but would cause backward compatibility issues. | for those relationships may help but would cause backward- | |||
| The LINK property can link components in different collections or | compatibility issues. The LINK property can link components in | |||
| even on different servers. | different collections or even on different servers. | |||
| When publishing events it is useful to be able to refer back to the | When publishing events, it is useful to be able to refer back to the | |||
| source of that information. The actual event may have been consumed | source of that information. The actual event may have been consumed | |||
| from a feed or an ics file on a web site. A LINK property can | from a feed or an ics file on a website. A LINK property can provide | |||
| provide a reference to the originator of the event. | a reference to the originator of the event. | |||
| Beyond the need to relate elements temporally, project management | Beyond the need to relate elements temporally, project management | |||
| tools often need to be able to specify the relationships between the | tools often need to be able to specify the relationships between the | |||
| various events and tasks which make up a project. The LINK property | various events and tasks that make up a project. The LINK property | |||
| provides such a mechanism. | provides such a mechanism. | |||
| The LINK property MUST NOT be treated as just another attachment. | The LINK property MUST NOT be treated as just another attachment. | |||
| The ATTACH property defined in [RFC5545] has been extended by | The ATTACH property defined in [RFC5545] has been extended by | |||
| [RFC8607] to handle server-side management and stripping of inline | [RFC8607] to handle server-side management and stripping of inline | |||
| data and to provide additional data about the attachment (size, | data and to provide additional data about the attachment (size, | |||
| filename etc). | filename, etc.). | |||
| Additionally clients may choose to handle attachments differently | Additionally, clients may choose to handle attachments differently | |||
| from the LINK property as attachments are often an integral part of | from the LINK property, as attachments are often an integral part of | |||
| the message - for example, the agenda. | the message, for example, the agenda. | |||
| 1.5. Caching and offline use | 1.5. Caching and Offline Use | |||
| In general, the calendar entity should be self explanatory without | In general, the calendar entity should be self explanatory without | |||
| the need to download referenced meta-data such as a web page. | the need to download referenced metadata, such as a web page. | |||
| However, to facilitate offline display the link type may identify | However, to facilitate offline display, the link type may identify | |||
| important pieces of data which should be downloaded in advance. | important pieces of data that should be downloaded in advance. | |||
| 1.6. Conventions Used in This Document | 1.6. Conventions Used in This Document | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| The notation used in this memo to (re-)define iCalendar elements is | The notation used in this memo to (re-)define iCalendar elements is | |||
| the ABNF notation of [RFC5234] as used by [RFC5545]. Any syntax | the ABNF notation of [RFC5234], as used by [RFC5545]. Any syntax | |||
| elements shown below that are not explicitly defined in this | elements shown below that are not explicitly defined in this | |||
| specification come from iCalendar [RFC5545]. | specification come from iCalendar [RFC5545]. | |||
| 2. LINK Property Reference Types | 2. LINK Property Reference Types | |||
| The reference value in the LINK property defined below can take three | The reference value in the LINK property defined below can take three | |||
| forms specified by the VALUE parameter: | forms specified by the VALUE parameter: | |||
| URI: This is a URI referring to the target. | URI: This is a URI referring to the target. | |||
| UID: This allows for linking within a single collection of calendar | UID: This allows for linking within a single collection of calendar | |||
| components and the value MUST refer to another component within | components, and the value MUST refer to another component within | |||
| the same collection. | the same collection. | |||
| XML-REFERENCE: In an XML environment it may be necessary to refer to | XML-REFERENCE: In an XML environment, it may be necessary to refer | |||
| a fragment of an external XML artifact. This value is a URI with | to a fragment of an external XML artifact. This value is a URI | |||
| an XPointer anchor value. The XPointer is defined in | with an XPointer anchor value. The XPointer is defined in | |||
| [W3C.WD-xptr-xpointer-20021219] and its use as an anchor is | [W3C.WD-xptr-xpointer-20021219], and its use as an anchor is | |||
| defined in [W3C.REC-xptr-framework-20030325] | defined in [W3C.REC-xptr-framework-20030325]. | |||
| Note that UID references may need updating on import. An example, is | Note that UID references may need updating on import. An example is | |||
| data to be imported from a file containing VTODO and VEVENT | data to be imported from a file containing VTODO and VEVENT | |||
| components with a VTODO referring to VEVENT components by UID. When | components, with a VTODO referring to VEVENT components by UID. When | |||
| imported into a CalDAV system, the VTODO components are typically | imported into a CalDAV system, the VTODO components are typically | |||
| placed in a different collection from the VEVENT components. This | placed in a different collection from the VEVENT components. This | |||
| would require the UID reference to be replaced with a URI. | would require the UID reference to be replaced with a URI. | |||
| 3. Link Relation Types | 3. Link Relation Types | |||
| [RFC8288] defines two forms of relation type: registered and | Two forms of relation types are defined in [RFC8288]: registered and | |||
| extension. Registered relation types are added to the Link Relations | extension. Registered relation types are added to the "Link | |||
| registry as specified in Section 2.1.1 of [RFC8288]. Extension | Relations" registry, as specified in Section 2.1.1 of [RFC8288]. | |||
| relation types, defined in Section 2.1.2 of [RFC8288], are specified | Extension relation types, defined in Section 2.1.2 of [RFC8288], are | |||
| as unique URIs that are not registered in the registry. | specified as unique URIs that are not registered in the registry. | |||
| The relation types defined in Section 6.1 will be registered with | The relation types defined in Section 6.1 will be registered with | |||
| IANA in accordance with the specifications in [RFC8288]. | IANA in accordance with the specifications in [RFC8288]. | |||
| 4. New temporal RELTYPE Parameter values | 4. New Temporal RELTYPE Parameter Values | |||
| This section defines the usual temporal relationships for use with | This section defines the usual temporal relationships for use with | |||
| the RELTYPE parameter defined in Section 3.2.15 of [RFC5545]: | the RELTYPE parameter defined in Section 3.2.15 of [RFC5545]: | |||
| FINISHTOSTART, FINISHTOFINISH, STARTTOFINISH or STARTTOSTART. | FINISHTOSTART, FINISHTOFINISH, STARTTOFINISH, or STARTTOSTART. | |||
| The [RFC5545] RELATED-TO property with one or more of these temporal | The [RFC5545] RELATED-TO property with one or more of these temporal | |||
| relationships will be present in the predecessor entity and will | relationships will be present in the predecessor entity and will | |||
| refer to the successor entity. | refer to the successor entity. | |||
| The GAP parameter (see Section 6.2) specifies the lead (a negative | The GAP parameter (see Section 6.2) specifies the lead (a negative | |||
| value) or lag (a positive value) time between the predecessor and the | value) or lag (a positive value) time between the predecessor and the | |||
| successor. | successor. | |||
| In the description of each temporal relationship below we refer to | In the description of each temporal relationship below, we refer to | |||
| Task-A, which contains and controls the relationship, and Task-B the | Task-A, which contains and controls the relationship, and Task-B, | |||
| target of the relationship. This is indicated by the direction of | which is the target of the relationship. This is indicated by the | |||
| the arrow in the diagrams below. | direction of the arrows in the diagrams below. | |||
| Also each relationship may be modified by the addition of a GAP | Also, each relationship may be modified by the addition of a GAP | |||
| parameter to the relationship which applies to the targeted | parameter to the relationship that applies to the targeted component. | |||
| component. | ||||
| RELTYPE=FINISHTOSTART: Task-B cannot start until Task-A finishes. | RELTYPE=FINISHTOSTART: Task-B cannot start until Task-A finishes. | |||
| For example, when painting is complete, carpet-laying can begin. | For example, when painting is complete, carpet laying can begin. | |||
| ============ | ============ | |||
| | Task-A | | | Task-A | | |||
| ============ | ============ | |||
| | | | | |||
| V | V | |||
| ============ | ============ | |||
| | Task-B | | | Task-B | | |||
| ============ | ============ | |||
| Figure 1: Finish to start relationship | Figure 1: Finish-to-Start Relationship | |||
| RELTYPE=FINISHTOFINISH: Task-B can only be completed after Task-A is | RELTYPE=FINISHTOFINISH: Task-B can only be completed after Task-A is | |||
| finished. The related tasks may run in parallel before | finished. The related tasks may run in parallel before | |||
| completion. | completion. | |||
| For example, in the development of two related pieces of software, | For example, in the development of two related pieces of software | |||
| e.g. the api and the implementation, the design of the | (e.g., the API and the implementation), the design of the | |||
| implementation (B) cannot be completed until the design of the api | implementation (Task-B) cannot be completed until the design of | |||
| (A) has been completed. | the API (Task-A) has been completed. | |||
| ================== | ================== | |||
| | Task-A |--+ | | Task-A |--+ | |||
| ================== | | ================== | | |||
| | | | | |||
| ============ | | ============ | | |||
| | Task-B |<-+ | | Task-B |<-+ | |||
| ============ | ============ | |||
| Figure 2: Finish to finish relationship | Figure 2: Finish-to-Finish Relationship | |||
| RELTYPE=STARTTOFINISH: The start of Task-A (which occurs after Task- | RELTYPE=STARTTOFINISH: The start of Task-A (which occurs after Task- | |||
| B) controls the finish of Task-B. For example, ticket sales | B) controls the finish of Task-B. For example, ticket sales | |||
| (Task-B) end after the game starts (Task-A). | (Task-B) end after the game starts (Task-A). | |||
| ============ | ============ | |||
| +--| Task-A | | +--| Task-A | | |||
| | ============ | | ============ | |||
| +---------+ | +---------+ | |||
| ============ | | ============ | | |||
| | Task-B |<-+ | | Task-B |<-+ | |||
| ============ | ============ | |||
| Figure 3: Start to finish relationship | Figure 3: Start-to-Finish Relationship | |||
| RELTYPE=STARTTOSTART: The start of Task-A triggers the start of | RELTYPE=STARTTOSTART: The start of Task-A triggers the start of | |||
| Task-B, that is Task-B can start anytime after Task-A starts. | Task-B, that is, Task-B can start anytime after Task-A starts. | |||
| ============ | ============ | |||
| +--| Task-A | | +--| Task-A | | |||
| | ============ | | ============ | |||
| | | | | |||
| | ============ | | ============ | |||
| +->| Task-B | | +->| Task-B | | |||
| ============ | ============ | |||
| Figure 4: Start to start relationship | Figure 4: Start-to-Start Relationship | |||
| 5. Additional New RELTYPE Parameter Values | 5. Additional New RELTYPE Parameter Values | |||
| This section defines the additional relationships below: | This section defines the additional relationships below: | |||
| RELTYPE=FIRST: Indicates that the referenced calendar component is | RELTYPE=FIRST: This indicates that the referenced calendar component | |||
| the first in a series the referencing calendar component is part | is the first in a series the referencing calendar component is | |||
| of. | part of. | |||
| RELTYPE=NEXT: Indicates that the referenced calendar component is | RELTYPE=NEXT: This indicates that the referenced calendar component | |||
| the next in a series the referencing calendar component is part | is the next in a series the referencing calendar component is part | |||
| of. | of. | |||
| RELTYPE=DEPENDS-ON: Indicates that the current calendar component | RELTYPE=DEPENDS-ON: This indicates that the current calendar | |||
| depends on the referenced calendar component in some manner. For | component depends on the referenced calendar component in some | |||
| example a task may be blocked waiting on the other, referenced, | manner. For example, a task may be blocked waiting on the other, | |||
| task. | referenced, task. | |||
| RELTYPE=REFID: Establishes a reference from the current component to | RELTYPE=REFID: This establishes a reference from the current | |||
| components with a REFID property which matches the value given in | component to components with a REFID property that matches the | |||
| the associated RELATED-TO property. | value given in the associated RELATED-TO property. | |||
| RELTYPE=CONCEPT: Establishes a reference from the current component | RELTYPE=CONCEPT: This establishes a reference from the current | |||
| to components with a CONCEPT property which matches the value | component to components with a CONCEPT property that matches the | |||
| given in the associated RELATED-TO property. | value given in the associated RELATED-TO property. | |||
| Note that the relationship types of PARENT, CHILD and SIBLING | Note that the relationship types of PARENT, CHILD, and SIBLING | |||
| establish a hierarchical relationship. The new types of FIRST and | establish a hierarchical relationship. The new types of FIRST and | |||
| NEXT are an ordering relationship. | NEXT are an ordering relationship. | |||
| 6. New Property Parameters | 6. New Property Parameters | |||
| 6.1. Link Relation | 6.1. Link Relation | |||
| Parameter name: LINKREL | Parameter name: LINKREL | |||
| Purpose: To specify the relationship of data referenced by a LINK | Purpose: This property specifies the relationship of data referenced | |||
| property. | by a LINK property. | |||
| Format Definition: This parameter is defined by the following | Format Definition: This parameter is defined by the following | |||
| notation: | notation: | |||
| linkrelparam = "LINKREL" "=" | linkrelparam = "LINKREL" "=" | |||
| ("SOURCE" ; Link to source of this component | (DQUOTE uri DQUOTE | |||
| / DQUOTE uri DQUOTE | / iana-token) ; Other IANA registered type | |||
| / iana-token) ; Other IANA registered type | ||||
| Description: This parameter MUST be specified on all LINK | ||||
| properties, and defines the type of reference. This allows | ||||
| programs consuming this data to automatically scan for references | ||||
| they support. There is no default relation type. | ||||
| In addition to the value defined here any link relation in the | Description: This parameter MUST be specified on all LINK properties | |||
| link registry established by [RFC8288], or new link relations, may | and define the type of reference. This allows programs consuming | |||
| be used. | this data to automatically scan for references they support. | |||
| There is no default relation type. | ||||
| It is expected that link relation types seeing significant usage | Any link relation in the link registry established by [RFC8288], | |||
| in calendaring will have the calendaring usage described in an | or new link relations, may be used. It is expected that link | |||
| RFC. | relation types seeing significant usage in calendaring will have | |||
| the calendaring usage described in an RFC. | ||||
| LINKREL=SOURCE: identifies the source of the event information. | LINKREL=latest-version: This identifies the latest version of the | |||
| event information. | ||||
| Registration: These relation types are registered in [RFC8288] | Registration: These relation types are registered in [RFC8288]. | |||
| 6.2. Gap | 6.2. Gap | |||
| Parameter name: GAP | Parameter name: GAP | |||
| Purpose: To specify the length of the gap, positive or negative, | Purpose: This property specifies the length of the gap, positive or | |||
| between two components with a temporal relationship. | negative, between two components with a temporal relationship. | |||
| Format Definition: This parameter is defined by the following | Format Definition: This parameter is defined by the following | |||
| notation where dur-value is defined in section 3.3.6 of [RFC5545]. | notation, where dur-value is defined in Section 3.3.6 of | |||
| : | [RFC5545]. : | |||
| gapparam = "GAP" "=" dur-value | gapparam = "GAP" "=" dur-value | |||
| Description: This parameter MAY be specified on the RELATED-TO | Description: This parameter MAY be specified on the RELATED-TO | |||
| property, and defines the duration of time between the predecessor | property and defines the duration of time between the predecessor | |||
| and successor in an interval. When positive it defines the lag | and successor in an interval. When positive, it defines the lag | |||
| time between a task and its logical successor. When negative it | time between a task and its logical successor. When negative, it | |||
| defines the lead time. | defines the lead time. | |||
| An example of lag time might be if task A is "paint the room" and | An example of lag time might be if Task-A is "paint the room" and | |||
| task B is "lay the carpets" then task A may be related to task B | Task-B is "lay the carpets". Then, Task-A may be related to | |||
| with RELTYPE=FINISHTOSTART with a gap of 1 day - long enough for | Task-B with RELTYPE=FINISHTOSTART with a gap of 1 day -- long | |||
| the paint to dry. | enough for the paint to dry. | |||
| ==================== | ==================== | |||
| | Paint the room |--+ | | paint the room |--+ | |||
| ==================== | | ==================== | | |||
| |(lag of one day) | |(lag of one day) | |||
| | | | | |||
| | =============== | | =================== | |||
| +->| lay carpet | | +->| lay the carpet | | |||
| =============== | =================== | |||
| Figure 5: Finish to start relationship with lag | Figure 5: Finish-to-Start Relationship with Lag | |||
| For an example of lead time, in constructing a two storey building | For an example of lead time, in constructing a two-story building, | |||
| the electrical work must be done before painting. However the | the electrical work must be done before painting. However, the | |||
| painter can move in to the first floor as the electricians move | painter can move in to the first floor as the electricians move | |||
| upstairs. | upstairs. | |||
| ===================== | ===================== | |||
| | Electrical work |--+ | | electrical work |--+ | |||
| ===================== | | ===================== | | |||
| +-------------+ | +-------------+ | |||
| |(lead of estimated time) | |(lead of estimated time) | |||
| | ================== | | ================== | |||
| +->| Painting | | +->| painting | | |||
| ================== | ================== | |||
| Figure 6: Finish to start relationship with lead | Figure 6: Finish-to-Start Relationship with Lead | |||
| 7. New Value Data Types | 7. New Value Data Types | |||
| This specification defines the following new value types to be used | This specification defines the following new value types to be used | |||
| with the VALUE property parameter: | with the VALUE property parameter: | |||
| UID VALUE=UID indicates that the associated value is the UID for a | UID: VALUE=UID indicates that the associated value is the UID for a | |||
| component. | component. | |||
| XML-REFERENCE VALUE=XML-REFERENCE indicates that the associated | XML-REFERENCE: VALUE=XML-REFERENCE indicates that the associated | |||
| value references an associated XML artifact and is a URI with an | value references an associated XML artifact and is a URI with an | |||
| XPointer anchor value. The XPointer is defined in | XPointer anchor value. The XPointer is defined in | |||
| [W3C.WD-xptr-xpointer-20021219] and its use as an anchor is | [W3C.WD-xptr-xpointer-20021219], and its use as an anchor is | |||
| defined in [W3C.REC-xptr-framework-20030325]. | defined in [W3C.REC-xptr-framework-20030325]. | |||
| 8. New Properties | 8. New Properties | |||
| 8.1. Concept | 8.1. Concept | |||
| Property name: CONCEPT | Property name: CONCEPT | |||
| Purpose: This property defines the formal categories for a calendar | Purpose: This property defines the formal categories for a calendar | |||
| component. | component. | |||
| Value type: URI | Value type: URI | |||
| Property Parameters: IANA, and non-standard parameters can be | Property Parameters: IANA and non-standard parameters can be | |||
| specified on this property. | specified on this property. | |||
| Conformance: This property can be specified zero or more times in | Conformance: This property can be specified zero or more times in | |||
| any iCalendar component. | any iCalendar component. | |||
| Description: This property is used to specify formal categories or | Description: This property is used to specify formal categories or | |||
| classifications of the calendar component. The values are useful | classifications of the calendar component. The values are useful | |||
| in searching for a calendar component of a particular type and | in searching for a calendar component of a particular type and | |||
| category. | category. | |||
| This categorization is distinct from the more informal "tagging" | This categorization is distinct from the more informal "tagging" | |||
| of components provided by the existing CATEGORIES property. It is | of components provided by the existing CATEGORIES property. It is | |||
| expected that the value of the CONCEPT property will reference an | expected that the value of the CONCEPT property will reference an | |||
| external resource which provides information about the | external resource that provides information about the | |||
| categorization. | categorization. | |||
| In addition, a structured URI value allows for hierarchical | In addition, a structured URI value allows for hierarchical | |||
| categorization of events. | categorization of events. | |||
| Possible category resources are the various proprietary systems, | Possible category resources are the various proprietary systems, | |||
| for example Library of Congress, or an open source of | for example, the Library of Congress, or an open source of | |||
| categorisation data. | categorization data. | |||
| Format Definition: This property is defined by the following | Format Definition: This property is defined by the following | |||
| notation: | notation: | |||
| concept = "CONCEPT" conceptparam ":" | concept = "CONCEPT" conceptparam ":" | |||
| uri CRLF | uri CRLF | |||
| conceptparam = *(";" other-param) | conceptparam = *(";" other-param) | |||
| Example: The following is an example of this property. It points to | Example: The following is an example of this property. It points to | |||
| skipping to change at page 12, line 17 ¶ | skipping to change at line 523 ¶ | |||
| CONCEPT:https://example.com/event-types/arts/music | CONCEPT:https://example.com/event-types/arts/music | |||
| 8.2. Link | 8.2. Link | |||
| Property name: LINK | Property name: LINK | |||
| Purpose: This property provides a reference to external information | Purpose: This property provides a reference to external information | |||
| related to a component. | related to a component. | |||
| Value type: URI, UID or XML-REFERENCE | Value type: URI, UID, or XML-REFERENCE | |||
| Property Parameters: The VALUE parameter is required. Non-standard, | Property Parameters: The VALUE parameter is required. Non-standard, | |||
| link relation type, format type, label and language parameters can | link relation type, format type, label, and language parameters | |||
| also be specified on this property. The LABEL parameter is | can also be specified on this property. The LABEL parameter is | |||
| defined in [RFC7986]. | defined in [RFC7986]. | |||
| Conformance: This property can be specified zero or more times in | Conformance: This property can be specified zero or more times in | |||
| any iCalendar component. | any iCalendar component. | |||
| Description: When used in a component the value of this property | Description: When used in a component, the value of this property | |||
| points to additional information related to the component. For | points to additional information related to the component. For | |||
| example, it may reference the originating web server. | example, it may reference the originating web server. | |||
| Format Definition: This property is defined by the following | Format Definition: This property is defined by the following | |||
| notation: | notation: | |||
| link = "LINK" linkparam ":" | link = "LINK" linkparam ":" | |||
| ( uri / ; for VALUE=XML-REFERENCE | ( uri / ; for VALUE=XML-REFERENCE | |||
| uri / ; for VALUE=URI | uri / ; for VALUE=URI | |||
| text ) ; for VALUE=UID | text ) ; for VALUE=UID | |||
| CRLF | CRLF | |||
| linkparam = ; the elements herein may appear in any order, | linkparam = (";" "VALUE" "=" ("XML-REFERENCE" / | |||
| ; and the order is not significant. | "URI" / | |||
| "UID")) | ||||
| (";" "VALUE" "=" ("XML-REFERENCE" / | ||||
| "URI" / | ||||
| "UID")) | ||||
| 1*(";" linkrelparam) | 1*(";" linkrelparam) | |||
| 1*(";" fmttypeparam) | 1*(";" fmttypeparam) | |||
| 1*(";" labelparam) | 1*(";" labelparam) | |||
| 1*(";" languageparam) | 1*(";" languageparam) | |||
| *(";" other-param) | *(";" other-param) | |||
| ; the elements herein may appear in any order, | ||||
| ; and the order is not significant. | ||||
| This property is a serialisation of the model in [RFC8288], where | This property is a serialization of the model in [RFC8288], where | |||
| the link target is carried in the property value, the link context | the link target is carried in the property value, the link context | |||
| is the containing calendar entity, and the link relation type and | is the containing calendar entity, and the link relation type and | |||
| any target attributes are carried in iCalendar property | any target attributes are carried in iCalendar property | |||
| parameters. | parameters. | |||
| The LINK property parameters map to [RFC8288] attributes as | The LINK property parameters map to [RFC8288] attributes as | |||
| follows: | follows: | |||
| LABEL: Maps to the "title" attribute defined in section 3.4.1 of | LABEL: This parameter maps to the "title" attribute defined in | |||
| [RFC8288]. | Section 3.4.1 of [RFC8288]. | |||
| LANGUAGE: Maps to the "hreflang" attribute defined in section | LANGUAGE: This parameter maps to the "hreflang" attribute defined | |||
| 3.4.1 of [RFC8288]. | in Section 3.4.1 of [RFC8288]. | |||
| LINKREL: Maps to the link relation type defined in section 2.1 of | LINKREL: This parameter maps to the link relation type defined in | |||
| [RFC8288]. | Section 2.1 of [RFC8288]. | |||
| FMTTYPE: Maps to the "type" attribute defined in section 3.4.1 of | FMTTYPE: This parameter maps to the "type" attribute defined in | |||
| [RFC8288]. | Section 3.4.1 of [RFC8288]. | |||
| There is no mapping for [RFC8288] "title*", "anchor", "rev" or | There is no mapping for "title*", "anchor", "rev", or "media" | |||
| "media". | [RFC8288]. | |||
| Example: The following is an example of this property which provides | Example: The following is an example of this property, which | |||
| a reference to the source for the calendar object. | provides a reference to the source for the calendar object. | |||
| LINK;LINKREL=SOURCE;LABEL=Venue;VALUE=URI: | LINK;LINKREL=SOURCE;LABEL=Venue;VALUE=URI: | |||
| https://example.com/events | https://example.com/events | |||
| Example: The following is an example of this property which provides | Example: The following is an example of this property, which | |||
| a reference to an entity from which this one was derived. The | provides a reference to an entity from which this one was derived. | |||
| link relation is a vendor defined value. | The link relation is a vendor-defined value. | |||
| LINK;LINKREL="https://example.com/linkrel/derivedFrom"; | LINK;LINKREL="https://example.com/linkrel/derivedFrom"; | |||
| VALUE=URI: | VALUE=URI: | |||
| https://example.com/tasks/01234567-abcd1234.ics | https://example.com/tasks/01234567-abcd1234.ics | |||
| Example: The following is an example of this property which provides | Example: The following is an example of this property, which | |||
| a reference to a fragment of an XML document. The link relation | provides a reference to a fragment of an XML document. The link | |||
| is a vendor defined value. | relation is a vendor-defined value. | |||
| LINK;LINKREL="https://example.com/linkrel/costStructure"; | LINK;LINKREL="https://example.com/linkrel/costStructure"; | |||
| VALUE=XML-REFERENCE: | VALUE=XML-REFERENCE: | |||
| https://example.com/xmlDocs/bidFramework.xml | https://example.com/xmlDocs/bidFramework.xml | |||
| #xpointer(descendant::CostStruc/range-to( | #xpointer(descendant::CostStruc/range-to( | |||
| following::CostStrucEND[1])) | following::CostStrucEND[1])) | |||
| 8.3. Refid | 8.3. Refid | |||
| Property name: REFID | Property name: REFID | |||
| skipping to change at page 14, line 34 ¶ | skipping to change at line 634 ¶ | |||
| the events in a travel itinerary would have the same REFID value, | the events in a travel itinerary would have the same REFID value, | |||
| so as to be grouped together. | so as to be grouped together. | |||
| Format Definition: This property is defined by the following | Format Definition: This property is defined by the following | |||
| notation: | notation: | |||
| refid = "REFID" refidparam ":" text CRLF | refid = "REFID" refidparam ":" text CRLF | |||
| refidparam = *(";" other-param) | refidparam = *(";" other-param) | |||
| The current link registry | ||||
| Example: The following is an example of this property. | Example: The following is an example of this property. | |||
| REFID:itinerary-2014-11-17 | REFID:itinerary-2014-11-17 | |||
| 9. Updates to RFC 5545 | 9. Updates to RFC 5545 | |||
| This specification updates the RELATED-TO property defined in | This specification updates the RELATED-TO property defined in | |||
| Section 3.8.4.5 of [RFC5545]. The contents of Section 9.1 replace | Section 3.8.4.5 of [RFC5545]. The contents of Section 9.1 replace | |||
| that section. | that section. | |||
| The RELTYPE parameter is extended to take new values defining | The RELTYPE parameter is extended to take new values defining | |||
| temporal relationships, a GAP parameter is defined to provide lead | temporal relationships, a GAP parameter is defined to provide lead | |||
| and lag values, and RELATED-TO is extended to allow URI values. | and lag values, and RELATED-TO is extended to allow URI values. | |||
| These changes allow the RELATED-TO property to define a richer set of | These changes allow the RELATED-TO property to define a richer set of | |||
| relationships useful for project management. | relationships useful for project management. | |||
| 9.1. RELATED-TO | 9.1. RELATED-TO | |||
| Property Name: RELATED-TO | Property name: RELATED-TO | |||
| Purpose: This property is used to represent a relationship or | Purpose: This property is used to represent a relationship or | |||
| reference between one calendar component and another. The | reference between one calendar component and another. The | |||
| definition here extends the definition in Section 3.8.4.5 of | definition here extends the definition in Section 3.8.4.5 of | |||
| [RFC5545] by allowing URI or UID values and a GAP parameter. | [RFC5545] by allowing URI or UID values and a GAP parameter. | |||
| Value Type: URI, UID or TEXT | Value Type: URI, UID, or TEXT | |||
| Property Parameters: Relationship type, IANA and non-standard | Property Parameters: Relationship type, IANA, and non-standard | |||
| property parameters can be specified on this property. | property parameters can be specified on this property. | |||
| Conformance: This property MAY be specified in any iCalendar | Conformance: This property MAY be specified in any iCalendar | |||
| component. | component. | |||
| Description: By default or when VALUE=UID is specified, the property | Description: By default or when VALUE=UID is specified, the property | |||
| value consists of the persistent, globally unique identifier of | value consists of the persistent, globally unique identifier of | |||
| another calendar component. This value would be represented in a | another calendar component. This value would be represented in a | |||
| calendar component by the "UID" property. | calendar component by the UID property. | |||
| By default, the property value points to another calendar | By default, the property value points to another calendar | |||
| component that has a PARENT relationship to the referencing | component that has a PARENT relationship to the referencing | |||
| object. The "RELTYPE" property parameter is used to either | object. The RELTYPE property parameter is used to either | |||
| explicitly state the default PARENT relationship type to the | explicitly state the default PARENT relationship type to the | |||
| referenced calendar component or to override the default PARENT | referenced calendar component or to override the default PARENT | |||
| relationship type and specify either a CHILD or SIBLING | relationship type and specify either a CHILD or SIBLING | |||
| relationship or a temporal relationship. | relationship or a temporal relationship. | |||
| The PARENT relationship indicates that the calendar component is a | The PARENT relationship indicates that the calendar component is a | |||
| subordinate of the referenced calendar component. The CHILD | subordinate of the referenced calendar component. The CHILD | |||
| relationship indicates that the calendar component is a superior | relationship indicates that the calendar component is a superior | |||
| of the referenced calendar component. The SIBLING relationship | of the referenced calendar component. The SIBLING relationship | |||
| indicates that the calendar component is a peer of the referenced | indicates that the calendar component is a peer of the referenced | |||
| calendar component. | calendar component. | |||
| To preserve backwards compatibility the value type MUST be UID | To preserve backwards compatibility, the value type MUST be UID | |||
| when the PARENT, SIBLING or CHILD relationships are specified. | when the PARENT, SIBLING, or CHILD relationships are specified. | |||
| The FINISHTOSTART, FINISHTOFINISH, STARTTOFINISH or STARTTOSTART | The FINISHTOSTART, FINISHTOFINISH, STARTTOFINISH, or STARTTOSTART | |||
| relationships define temporal relationships as specified in the | relationships define temporal relationships, as specified in the | |||
| reltype parameter definition. | RELTYPE parameter definition. | |||
| The FIRST and NEXT define ordering relationships between calendar | The FIRST and NEXT define ordering relationships between calendar | |||
| components. | components. | |||
| The DEPENDS-ON relationship indicates that the current calendar | The DEPENDS-ON relationship indicates that the current calendar | |||
| component depends on the referenced calendar component in some | component depends on the referenced calendar component in some | |||
| manner. For example a task may be blocked waiting on the other, | manner. For example, a task may be blocked waiting on the other, | |||
| referenced, task. | referenced, task. | |||
| The REFID and CONCEPT relationships establish a reference from the | The REFID and CONCEPT relationships establish a reference from the | |||
| current component to the referenced component. | current component to the referenced component. | |||
| Changes to a calendar component referenced by this property can | Changes to a calendar component referenced by this property can | |||
| have an implicit impact on the related calendar component. For | have an implicit impact on the related calendar component. For | |||
| example, if a group event changes its start or end date or time, | example, if a group event changes its start or end date or time, | |||
| then the related, dependent events will need to have their start | then the related, dependent events will need to have their start | |||
| and end dates changed in a corresponding way. Similarly, if a | and end dates and times changed in a corresponding way. | |||
| PARENT calendar component is cancelled or deleted, then there is | Similarly, if a PARENT calendar component is canceled or deleted, | |||
| an implied impact to the related CHILD calendar components. This | then there is an implied impact to the related CHILD calendar | |||
| property is intended only to provide information on the | components. This property is intended only to provide information | |||
| relationship of calendar components. | on the relationship of calendar components. | |||
| Deletion of the target component, for example the target of a | Deletion of the target component, for example, the target of a | |||
| FIRST, NEXT or temporal relationship can result in broken links. | FIRST, NEXT, or temporal relationship, can result in broken links. | |||
| It is up to the target calendar system to maintain any property | It is up to the target calendar system to maintain any property | |||
| implications of these relationships. | implications of these relationships. | |||
| Format Definition: This property is defined by the following | Format Definition: This property is defined by the following | |||
| notation: | notation: | |||
| related = "RELATED-TO" relparam ":" | related = "RELATED-TO" relparam ":" | |||
| ( text / ; for VALUE=UID | ( text / ; for VALUE=UID | |||
| uri / ; for VALUE=URI | uri / ; for VALUE=URI | |||
| skipping to change at page 17, line 15 ¶ | skipping to change at line 751 ¶ | |||
| RELATED-TO:jsmith.part7.19960817T083000.xyzMail@example.com | RELATED-TO:jsmith.part7.19960817T083000.xyzMail@example.com | |||
| RELATED-TO:19960401-080045-4000F192713-0052@example.com | RELATED-TO:19960401-080045-4000F192713-0052@example.com | |||
| RELATED-TO;VALUE=URI;RELTYPE=STARTTOFINISH: | RELATED-TO;VALUE=URI;RELTYPE=STARTTOFINISH: | |||
| https://example.com/caldav/user/jb/cal/ | https://example.com/caldav/user/jb/cal/ | |||
| 19960401-080045-4000F192713.ics | 19960401-080045-4000F192713.ics | |||
| 10. Security Considerations | 10. Security Considerations | |||
| All of the security considerations of section 7 pf [RFC5545] apply to | All of the security considerations of Section 7 of [RFC5545] apply to | |||
| this specification. | this specification. | |||
| Applications using the LINK property need to be aware of the risks | Applications using the LINK property need to be aware of the risks | |||
| entailed in using the URIs provided as values. See section 7 of | entailed in using the URIs provided as values. See Section 7 of | |||
| [RFC3986] for a discussion of the security considerations relating to | [RFC3986] for a discussion of the security considerations relating to | |||
| URIs. | URIs. | |||
| In particular note section 7.1 "Reliability and Consistency" of | In particular, note Section 7.1 (Reliability and Consistency) of | |||
| [RFC3986] which points out the lack of a stability guarantee for | [RFC3986], which points out the lack of a stability guarantee for | |||
| referenced resources. | referenced resources. | |||
| When the value is an XML-REFERENCE type the targeted data is an XML | When the value is an XML-REFERENCE type, the targeted data is an XML | |||
| document or portion thereof. Consumers need to be aware of the | document or portion thereof. Consumers need to be aware of the | |||
| security issues related to XML processing - in particular those | security issues related to XML processing -- in particular, those | |||
| related to XML entities. See [RFC4918] - Section 20.6. Additionally | related to XML entities. See Section 20.6 of [RFC4918]. | |||
| note that the reference may be invalid or become so over time. | Additionally, note that the reference may be invalid or become so | |||
| over time. | ||||
| The CONCEPT and redefined RELATED-TO property have the same issues in | The CONCEPT and redefined RELATED-TO properties have the same issues | |||
| that values may be URIs. | in that values may be URIs. | |||
| Extremely large values for the GAP parameter may lead to unexpected | Extremely large values for the GAP parameter may lead to unexpected | |||
| behavior. | behavior. | |||
| 11. IANA Considerations | 11. IANA Considerations | |||
| 11.1. iCalendar Property Registrations | 11.1. iCalendar Property Registrations | |||
| The following iCalendar property names have been added to the | The following iCalendar property names have been added to the | |||
| iCalendar Properties Registry defined in Section 8.3.2 of [RFC5545]. | iCalendar "Properties" registry defined in Section 8.3.2 of | |||
| IANA has also added a reference to this document where the properties | [RFC5545]. IANA has also added a reference to this document, where | |||
| originally defined in [RFC5545] have been updated by this document. | the properties originally defined in [RFC5545] have been updated by | |||
| this document. | ||||
| +============+=========+========================+ | +============+=========+=============================+ | |||
| | Property | Status | Reference | | | Property | Status | Reference | | |||
| +============+=========+========================+ | +============+=========+=============================+ | |||
| | CONCEPT | Current | Section 8.1 | | | CONCEPT | Current | Section 8.1 | | |||
| +------------+---------+------------------------+ | +------------+---------+-----------------------------+ | |||
| | LINK | Current | Section 8.2 | | | LINK | Current | Section 8.2 | | |||
| +------------+---------+------------------------+ | +------------+---------+-----------------------------+ | |||
| | REFID | Current | Section 8.3 | | | REFID | Current | Section 8.3 | | |||
| +------------+---------+------------------------+ | +------------+---------+-----------------------------+ | |||
| | RELATED-TO | Current | [RFC5545], Section 9.1 | | | RELATED-TO | Current | [RFC5545], Section 3.8.4.5; | | |||
| +------------+---------+------------------------+ | | | | RFC 9253, Section 9.1 | | |||
| +------------+---------+-----------------------------+ | ||||
| Table 1 | Table 1 | |||
| 11.2. iCalendar Property Parameter Registrations | 11.2. iCalendar Property Parameter Registrations | |||
| The following iCalendar property parameter names have been added to | The following iCalendar property parameter names have been added to | |||
| the iCalendar Parameters Registry defined in Section 8.3.3 of | the iCalendar "Parameters" registry defined in Section 8.3.3 of | |||
| [RFC5545]. | [RFC5545]. | |||
| +===========+=========+=============+ | +===========+=========+=============+ | |||
| | Parameter | Status | Reference | | | Parameter | Status | Reference | | |||
| +===========+=========+=============+ | +===========+=========+=============+ | |||
| | GAP | Current | Section 6.2 | | | GAP | Current | Section 6.2 | | |||
| +-----------+---------+-------------+ | +-----------+---------+-------------+ | |||
| | LINKREL | Current | Section 6.1 | | | LINKREL | Current | Section 6.1 | | |||
| +-----------+---------+-------------+ | +-----------+---------+-------------+ | |||
| Table 2 | Table 2 | |||
| 11.3. iCalendar Value Data Type Registrations | 11.3. iCalendar Value Data Type Registrations | |||
| The following iCalendar property parameter names have been added to | The following iCalendar property parameter names have been added to | |||
| the iCalendar Value Data Types Registry defined in Section 8.3.4 of | the iCalendar "Value Data Types" registry defined in Section 8.3.4 of | |||
| [RFC5545]. | [RFC5545]. | |||
| +=================+=========+===========+ | +=================+=========+===========+ | |||
| | Value Data Type | Status | Reference | | | Value Data Type | Status | Reference | | |||
| +=================+=========+===========+ | +=================+=========+===========+ | |||
| | XML-REFERENCE | Current | Section 7 | | | XML-REFERENCE | Current | Section 7 | | |||
| +-----------------+---------+-----------+ | +-----------------+---------+-----------+ | |||
| | UID | Current | Section 7 | | | UID | Current | Section 7 | | |||
| +-----------------+---------+-----------+ | +-----------------+---------+-----------+ | |||
| Table 3 | Table 3 | |||
| 11.4. iCalendar RELTYPE Value Registrations | 11.4. iCalendar RELTYPE Value Registrations | |||
| The following iCalendar "RELTYPE" values have been added to the | The following iCalendar "RELTYPE" values have been added to the | |||
| iCalendar Relationship Types Registry defined in Section 8.3.8 of | iCalendar "Relationship Types" registry defined in Section 8.3.8 of | |||
| [RFC5545]. | [RFC5545]. | |||
| +===================+=========+===========+ | +===================+=========+===========+ | |||
| | Relationship Type | Status | Reference | | | Relationship Type | Status | Reference | | |||
| +===================+=========+===========+ | +===================+=========+===========+ | |||
| | CONCEPT | Current | Section 5 | | | CONCEPT | Current | Section 5 | | |||
| +-------------------+---------+-----------+ | +-------------------+---------+-----------+ | |||
| | DEPENDS-ON | Current | Section 5 | | | DEPENDS-ON | Current | Section 5 | | |||
| +-------------------+---------+-----------+ | +-------------------+---------+-----------+ | |||
| | FINISHTOFINISH | Current | Section 4 | | | FINISHTOFINISH | Current | Section 4 | | |||
| skipping to change at page 19, line 35 ¶ | skipping to change at line 863 ¶ | |||
| +-------------------+---------+-----------+ | +-------------------+---------+-----------+ | |||
| | REFID | Current | Section 5 | | | REFID | Current | Section 5 | | |||
| +-------------------+---------+-----------+ | +-------------------+---------+-----------+ | |||
| | STARTTOFINISH | Current | Section 4 | | | STARTTOFINISH | Current | Section 4 | | |||
| +-------------------+---------+-----------+ | +-------------------+---------+-----------+ | |||
| | STARTTOSTART | Current | Section 4 | | | STARTTOSTART | Current | Section 4 | | |||
| +-------------------+---------+-----------+ | +-------------------+---------+-----------+ | |||
| Table 4 | Table 4 | |||
| 11.5. New Reference Type Registration | 12. References | |||
| The following link relation values have been added to the Reference | ||||
| Types Registry defined in Section 6.2.2 of [RFC8288]. | ||||
| +========+=========+=============+ | ||||
| | Name | Status | Reference | | ||||
| +========+=========+=============+ | ||||
| | SOURCE | Current | Section 6.1 | | ||||
| +--------+---------+-------------+ | ||||
| Table 5 | ||||
| 12. Acknowledgements | ||||
| The author would like to thank the members of CalConnect, the | ||||
| Calendaring and Scheduling Consortium technical committees and the | ||||
| following individuals for contributing their ideas, support and | ||||
| comments: | ||||
| Adrian Apthorp, Cyrus Daboo, Marten Gajda, Ken Murchison | ||||
| The author would also like to thank CalConnect, the Calendaring and | ||||
| Scheduling Consortium for advice with this specification. | ||||
| 13. References | ||||
| 13.1. Informative References | ||||
| [RFC4791] Daboo, C., Desruisseaux, B., and L. Dusseault, | ||||
| "Calendaring Extensions to WebDAV (CalDAV)", RFC 4791, | ||||
| DOI 10.17487/RFC4791, March 2007, | ||||
| <https://www.rfc-editor.org/info/rfc4791>. | ||||
| [RFC8607] Daboo, C., Quillaud, A., and K. Murchison, Ed., | ||||
| "Calendaring Extensions to WebDAV (CalDAV): Managed | ||||
| Attachments", RFC 8607, DOI 10.17487/RFC8607, June 2019, | ||||
| <https://www.rfc-editor.org/info/rfc8607>. | ||||
| 13.2. Normative References | 12.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | |||
| Resource Identifier (URI): Generic Syntax", STD 66, | Resource Identifier (URI): Generic Syntax", STD 66, | |||
| RFC 3986, DOI 10.17487/RFC3986, January 2005, | RFC 3986, DOI 10.17487/RFC3986, January 2005, | |||
| <https://www.rfc-editor.org/info/rfc3986>. | <https://www.rfc-editor.org/info/rfc3986>. | |||
| skipping to change at page 21, line 24 ¶ | skipping to change at line 906 ¶ | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC8288] Nottingham, M., "Web Linking", RFC 8288, | [RFC8288] Nottingham, M., "Web Linking", RFC 8288, | |||
| DOI 10.17487/RFC8288, October 2017, | DOI 10.17487/RFC8288, October 2017, | |||
| <https://www.rfc-editor.org/info/rfc8288>. | <https://www.rfc-editor.org/info/rfc8288>. | |||
| [W3C.REC-skos-reference-20090818] | [W3C.REC-skos-reference-20090818] | |||
| Miles, A. and S. Bechhofer, "SKOS Simple Knowledge | Miles, A. and S. Bechhofer, "SKOS Simple Knowledge | |||
| Organization System Reference", World Wide Web Consortium | Organization System Reference", W3C Recommendation REC- | |||
| Recommendation REC-skos-reference-20090818, 18 August | skos-reference-20090818, 18 August 2009, | |||
| 2009, | ||||
| <https://www.w3.org/TR/2009/REC-skos-reference-20090818>. | <https://www.w3.org/TR/2009/REC-skos-reference-20090818>. | |||
| [W3C.REC-xptr-framework-20030325] | [W3C.REC-xptr-framework-20030325] | |||
| Grosso, P., Maler, E., Marsh, J., and N. Walsh, "XPointer | Grosso, P., Maler, E., Marsh, J., and N. Walsh, "XPointer | |||
| Framework", World Wide Web Consortium Recommendation REC- | Framework", W3C Recommendation REC-xptr-framework- | |||
| xptr-framework-20030325, 25 March 2003, | 20030325, 25 March 2003, | |||
| <https://www.w3.org/TR/2003/REC-xptr-framework-20030325>. | <https://www.w3.org/TR/2003/REC-xptr-framework-20030325>. | |||
| [W3C.WD-xptr-xpointer-20021219] | [W3C.WD-xptr-xpointer-20021219] | |||
| DeRose, S., Daniel, R., and E. Maler, "XPointer xpointer() | DeRose, S., Maler, E., and R. Daniel, "XPointer xpointer() | |||
| Scheme", World Wide Web Consortium WD WD-xptr-xpointer- | Scheme", W3C WD WD-xptr-xpointer-20021219, 19 December | |||
| 20021219, 19 December 2002, | 2002, | |||
| <http://www.w3.org/TR/2002/WD-xptr-xpointer-20021219>. | <http://www.w3.org/TR/2002/WD-xptr-xpointer-20021219>. | |||
| 12.2. Informative References | ||||
| [RFC4791] Daboo, C., Desruisseaux, B., and L. Dusseault, | ||||
| "Calendaring Extensions to WebDAV (CalDAV)", RFC 4791, | ||||
| DOI 10.17487/RFC4791, March 2007, | ||||
| <https://www.rfc-editor.org/info/rfc4791>. | ||||
| [RFC8607] Daboo, C., Quillaud, A., and K. Murchison, Ed., | ||||
| "Calendaring Extensions to WebDAV (CalDAV): Managed | ||||
| Attachments", RFC 8607, DOI 10.17487/RFC8607, June 2019, | ||||
| <https://www.rfc-editor.org/info/rfc8607>. | ||||
| Acknowledgements | ||||
| The author would like to thank the members of CalConnect, the | ||||
| Calendaring and Scheduling Consortium technical committees, and the | ||||
| following individuals for contributing their ideas, support, and | ||||
| comments: | ||||
| Adrian Apthorp, Cyrus Daboo, Marten Gajda, and Ken Murchison | ||||
| The author would also like to thank CalConnect and the Calendaring | ||||
| and Scheduling Consortium for advice with this specification. | ||||
| Author's Address | Author's Address | |||
| Michael Douglass | Michael Douglass | |||
| Bedework | Bedework | |||
| 226 3rd Street | 226 3rd Street | |||
| Troy, NY 12180 | Troy, NY 12180 | |||
| United States of America | United States of America | |||
| Email: mdouglass@bedework.com | Email: mdouglass@bedework.com | |||
| URI: https://bedework.com | URI: https://bedework.com | |||
| End of changes. 124 change blocks. | ||||
| 327 lines changed or deleted | 306 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||