| < draft-ietf-calext-ical-relations-08.txt | draft-ietf-calext-ical-relations-09.txt > | |||
|---|---|---|---|---|
| Network Working Group M. Douglass | Network Working Group M. Douglass | |||
| Internet-Draft Bedework | Internet-Draft Bedework | |||
| Updates: 5545 (if approved) October 13, 2021 | Updates: 5545 (if approved) 23 January 2022 | |||
| Intended status: Standards Track | Intended status: Standards Track | |||
| Expires: April 16, 2022 | Expires: 27 July 2022 | |||
| Support for iCalendar Relationships | Support for iCalendar Relationships | |||
| draft-ietf-calext-ical-relations-08 | draft-ietf-calext-ical-relations-09 | |||
| Abstract | Abstract | |||
| This specification updates RELATED-TO defined in iCalendar (RFC5545) | This specification updates the iCalendar RELATED-TO property by | |||
| and introduces new iCalendar properties LINK, CONCEPT and REFID to | adding new relation types and introduces new iCalendar properties | |||
| allow better linking and grouping of iCalendar components and related | LINK, CONCEPT and REFID to allow better linking and grouping of | |||
| data. | iCalendar components and related data. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on April 16, 2022. | This Internet-Draft will expire on 27 July 2022. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2021 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 | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | license-info) in effect on the date of publication of this document. | |||
| publication of this document. Please review these documents | Please review these documents carefully, as they describe your rights | |||
| carefully, as they describe your rights and restrictions with respect | and restrictions with respect to this document. Code Components | |||
| to this document. Code Components extracted from this document must | extracted from this document must include Revised BSD License text as | |||
| include Simplified BSD License text as described in Section 4.e of | described in Section 4.e of the Trust Legal Provisions and are | |||
| the Trust Legal Provisions and are provided without warranty as | provided without warranty as described in the Revised BSD License. | |||
| described in the Simplified BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 1.1. Structured iCalendar relationships . . . . . . . . . . . 3 | 1.1. Structured iCalendar relationships . . . . . . . . . . . 3 | |||
| 1.2. Grouped iCalendar relationships . . . . . . . . . . . . . 3 | 1.2. Grouped iCalendar relationships . . . . . . . . . . . . . 3 | |||
| 1.3. Concept relationships . . . . . . . . . . . . . . . . . . 3 | 1.3. Concept relationships . . . . . . . . . . . . . . . . . . 3 | |||
| 1.4. Linked relationships . . . . . . . . . . . . . . . . . . 4 | 1.4. Linked relationships . . . . . . . . . . . . . . . . . . 4 | |||
| 1.5. Caching and offline use . . . . . . . . . . . . . . . . . 5 | 1.5. Caching and offline use . . . . . . . . . . . . . . . . . 5 | |||
| 1.6. Conventions Used in This Document . . . . . . . . . . . . 5 | 1.6. Conventions Used in This Document . . . . . . . . . . . . 5 | |||
| 2. Reference Types . . . . . . . . . . . . . . . . . . . . . . . 5 | 2. Reference Types . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3. Link Relation Types . . . . . . . . . . . . . . . . . . . . . 5 | 3. Link Relation Types . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4. New temporal RELTYPE Parameter values . . . . . . . . . . . . 6 | 4. New temporal RELTYPE Parameter values . . . . . . . . . . . . 6 | |||
| 5. Additional New RELTYPE Parameter Values . . . . . . . . . . . 7 | 5. Additional New RELTYPE Parameter Values . . . . . . . . . . . 7 | |||
| 6. New Property Parameters . . . . . . . . . . . . . . . . . . . 8 | 6. New Property Parameters . . . . . . . . . . . . . . . . . . . 8 | |||
| 6.1. Link Relation . . . . . . . . . . . . . . . . . . . . . . 8 | 6.1. Link Relation . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 6.2. Gap . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 6.2. Gap . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 7. New Value Data Types . . . . . . . . . . . . . . . . . . . . 9 | 7. New Value Data Types . . . . . . . . . . . . . . . . . . . . 9 | |||
| 8. New Properties . . . . . . . . . . . . . . . . . . . . . . . 9 | 8. New Properties . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 8.1. Concept . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 8.1. Concept . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 8.2. Link . . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 8.2. Link . . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 8.3. Refid . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 8.3. Refid . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 9. Redefined RELATED-TO Property . . . . . . . . . . . . . . . . 12 | 9. Updates to RFC 5545 . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 9.1. RELATED-TO . . . . . . . . . . . . . . . . . . . . . . . 12 | 9.1. RELATED-TO . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 10. Security Considerations . . . . . . . . . . . . . . . . . . . 14 | 10. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | |||
| 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 | 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 11.1. iCalendar Property Registrations . . . . . . . . . . . . 14 | 11.1. iCalendar Property Registrations . . . . . . . . . . . . 16 | |||
| 11.2. iCalendar Property Parameter Registrations . . . . . . . 15 | 11.2. iCalendar Property Parameter Registrations . . . . . . . 16 | |||
| 11.3. iCalendar Value Data Type Registrations . . . . . . . . 15 | 11.3. iCalendar Value Data Type Registrations . . . . . . . . 16 | |||
| 11.4. iCalendar RELTYPE Value Registrations . . . . . . . . . 15 | 11.4. iCalendar RELTYPE Value Registrations . . . . . . . . . 17 | |||
| 11.5. New Reference Type Registration . . . . . . . . . . . . 16 | 11.5. New Reference Type Registration . . . . . . . . . . . . 17 | |||
| 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 16 | 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 | 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 13.1. Informative References . . . . . . . . . . . . . . . . . 16 | 13.1. Informative References . . . . . . . . . . . . . . . . . 18 | |||
| 13.2. Normative References . . . . . . . . . . . . . . . . . . 17 | 13.2. Normative References . . . . . . . . . . . . . . . . . . 18 | |||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 17 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 1. Introduction | 1. Introduction | |||
| iCalendar entities often need to be related to each other or to | iCalendar entities defined in [RFC5545] often need to be related to | |||
| associated meta-data. The specifications below support relationships | each other or to associated meta-data. The specifications below | |||
| 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, 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 currently existing iCalendar [RFC5545] RELATED-TO property has no | The iCalendar [RFC5545] RELATED-TO property has no support for | |||
| support for temporal relationships as used by standard project | temporal relationships as used by standard project management tools. | |||
| 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 | |||
| skipping to change at page 5, line 40 ¶ | skipping to change at page 5, line 45 ¶ | |||
| 2. Reference Types | 2. Reference Types | |||
| The actual reference value can take three forms specified by the type | The actual reference value can take three forms specified by the type | |||
| parameter | parameter | |||
| URI: The default type. This is a URI referring to the target. | URI: The default type. This is a URI referring to the target. | |||
| UID: This allows for linking within a single collection and the | UID: This allows for linking within a single collection and the | |||
| value MUST be another component within that collection. | value MUST be another component within that collection. | |||
| REFERENCE: An XPointer. In an XML environment it may be necessary | REFERENCE: In an XML environment it may be necessary to refer to a | |||
| to refer to an external XML artifact. The XPointer is defined in | fragment of an external XML artifact. This value is a URI with an | |||
| [W3C.WD-xptr-xpointer-20021219] and allows addressing portions of | XPointer anchor value. The XPointer is defined in | |||
| XML documents. | [W3C.WD-xptr-xpointer-20021219] and it's use as an anchor is | |||
| defined in [W3C.REC-xptr-framework-20030325] | ||||
| 3. Link Relation Types | 3. Link Relation Types | |||
| [RFC8288] defines two forms of relation type: registered and | [RFC8288] defines two forms of relation type: registered and | |||
| extension. Registered relation types are added to the Link Relations | extension. Registered relation types are added to the Link Relations | |||
| registry as specified in Section 2.1.1 of [RFC8288]. Extension | registry as specified in Section 2.1.1 of [RFC8288]. Extension | |||
| relation types, defined in Section 2.1.2 of [RFC8288], are specified | relation types, defined in Section 2.1.2 of [RFC8288], are specified | |||
| as unique URIs that are not registered in the registry. | 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 | |||
| skipping to change at page 6, line 27 ¶ | skipping to change at page 6, line 35 ¶ | |||
| The GAP parameter (see Section 6.2) specifies the lead or lag time | The GAP parameter (see Section 6.2) specifies the lead or lag time | |||
| between the predecessor and the successor. In the description of | between the predecessor and the successor. In the description of | |||
| each temporal relationship below we refer to Task-A, which contains | each temporal relationship below we refer to Task-A, which contains | |||
| and controls the relationship, and Task-B the target of the | and controls the relationship, and Task-B the target of the | |||
| relationship. | relationship. | |||
| RELTYPE=FINISHTOSTART: Task-B cannot start until Task-A finishes. | RELTYPE=FINISHTOSTART: Task-B cannot start until Task-A finishes. | |||
| For example, when sanding is complete, painting can begin. | For example, when sanding is complete, painting 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, if the goal is to prepare a meal, we start the | For example, if the goal is to prepare a meal, we start the | |||
| potatoes, then the meat then the peas but they should all be | potatoes, then the meat then the peas but they should all be | |||
| cooked at the same time. | cooked at the same time. | |||
| ================== | ================== | |||
| | 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 when the game starts (Task-A). | (Task-B) end when 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: Indicates that the referenced calendar component is | |||
| the first in a series the referenced calendar component is part | the first in a series the referenced calendar component is part | |||
| of. | of. | |||
| RELTYPE=DEPENDS-ON: Indicates that the current calendar component | RELTYPE=DEPENDS-ON: Indicates that the current calendar component | |||
| skipping to change at page 8, line 27 ¶ | skipping to change at page 8, line 25 ¶ | |||
| 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: To specify the relationship of data referenced by a LINK | |||
| property. | property. | |||
| Format Definition: | Format Definition: This parameter is defined by the following | |||
| notation: | ||||
| This parameter is defined by the following notation: | ||||
| linkrelparam = "REL" "=" | linkrelparam = "LINKREL" "=" | |||
| ("SOURCE" ; Link to source of this component | ("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 | Description: This parameter MUST be specified on all LINK | |||
| properties, and defines the type of reference. This allows | properties, and defines the type of reference. This allows | |||
| programs consuming this data to automatically scan for references | programs consuming this data to automatically scan for references | |||
| they support. In addition to the values defined here any value | they support. There is no default relation type. | |||
| defined in [RFC8288] may be used. There is no default relation | ||||
| type. | ||||
| REL=SOURCE: identifies the source of the event information. | In addition to the values defined here any value defined in | |||
| [RFC8288] may be used. However these uses SHOULD be documented in | ||||
| an RFC updating both [RFC5545] and [RFC8288] | ||||
| LINKREL=SOURCE: identifies the source 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: To specify the length of the gap, positive or negative, | |||
| between two temporaly related components. | between two temporaly related components. | |||
| Format Definition: | Format Definition: This parameter is defined by the following | |||
| notation: | ||||
| This parameter is defined by the following notation: | ||||
| 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 "hang the drapes" then task A may be related to task B | task B is "hang the drapes" then task A may be related to task B | |||
| with RELTYPE=FINISHTOSTART with a gap long enough for the paint to | with RELTYPE=FINISHTOSTART with a gap long enough for the paint to | |||
| skipping to change at page 9, line 34 ¶ | skipping to change at page 9, line 33 ¶ | |||
| week so they finish at the same time. | week so they finish at the same time. | |||
| 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. | |||
| REFERENCE VALUE=REFERENCE indicates that the associated value is an | REFERENCE VALUE=REFERENCE indicates that the associated value | |||
| XPointer referencing an associated XML artifact. | references an associated XML artifact and is a URI with an | |||
| XPointer anchor value. The XPointer is defined in | ||||
| [W3C.WD-xptr-xpointer-20021219] and it's use as an anchor is | ||||
| 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. | |||
| skipping to change at page 10, line 27 ¶ | skipping to change at page 10, line 30 ¶ | |||
| external resource which provides information about the | external resource which 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 Library of Congress, or an open source of | |||
| categorisation data. | categorisation data. | |||
| Format Definition: | Format Definition: This property is defined by the following | |||
| notation: | ||||
| This property is defined by the following notation: | ||||
| concept = "CONCEPT" conceptparam ":" | ||||
| uri CRLF | ||||
| conceptparam = *(";" other-param) | concept = "CONCEPT" conceptparam ":" | |||
| uri CRLF | ||||
| Example: | conceptparam = *(";" other-param) | |||
| The following is an example of this property. It points to a server | Example: The following is an example of this property. It points to | |||
| acting as the source for the calendar object. | a server acting as the source for the calendar object. | |||
| CONCEPT:http://example.com/event-types/arts/music | CONCEPT:http://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 | |||
| about a component. | related to a component. | |||
| Value type: URI, TEXT or REFERENCE | Value type: URI, TEXT or REFERENCE | |||
| Property Parameters: The VALUE parameter is required. Non-standard, | Property Parameters: The VALUE parameter is required. Non-standard, | |||
| reference type or format type parameters can also be specified on | reference type or format type parameters can also be specified on | |||
| this property. The LABEL parameter is defined in [RFC7986] | this property. The LABEL parameter is 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: | Format Definition: This property is defined by the following | |||
| notation: | ||||
| This property is defined by the following notation: | link = "LINK" linkparam ":" | |||
| ( uri / ; for VALUE=REFERENCE | ||||
| uri / ; for VALUE=URI | ||||
| text ) ; for VALUE=TEXT | ||||
| CRLF | ||||
| link = "LINK" linkparam ":" | linkparam = ; the elements herein may appear in any order, | |||
| ( text / ; for VALUE=REFERENCE | ; and the order is not significant. | |||
| uri / ; for VALUE=URI | ||||
| text ) ; for VALUE=TEXT | ||||
| CRLF | ||||
| linkparam = ; the elements herein may appear in any order, | (";" "VALUE" "=" ("REFERENCE" / | |||
| ; and the order is not significant. | "URI" / | |||
| "TEXT")) | ||||
| 1*(";" linkrelparam) | ||||
| (";" fmttypeparam) | ||||
| (";" labelparam) | ||||
| (";" langparam) | ||||
| *(";" other-param) | ||||
| (";" "VALUE" "=" ("UID" / | This property is a serialisation of the model in [RFC8288], where | |||
| "URI" / | the link target is carried in the property value, the link context | |||
| "TEXT")) | is the containing calendar entity, and the link relation type and | |||
| 1*(";" linkrelparam) | any target attributes are carried in iCalendar property | |||
| (";" fmttypeparam) | parameters. | |||
| (";" labelparam) | ||||
| *(";" other-param) | ||||
| Example: | The LINK property parameters map to [RFC8288] attributes as | |||
| follows: | ||||
| The following is an example of this property which provides a | LABEL: Maps to the "title" attribute defined in section 3.4.1 of | |||
| reference to the source for the calendar object. | [RFC8288]. | |||
| LINK;LINKREL=SOURCE;LABEL=Venue;VALUE=URI:http://example.com/events | LANG: Maps to the "hreflang" attribute defined in section 3.4.1 | |||
| of [RFC8288]. | ||||
| Example: | LINKREL: Maps to the link relation type defined in section 2.1 of | |||
| [RFC8288]. | ||||
| The following is an example of this property which provides a | FMTTYPE: Maps to the "type" attribute defined in section 3.4.1 of | |||
| reference to an entity from which this one was derived. The link | [RFC8288]. | |||
| relation is a vendor defined value | ||||
| LINK;LINKREL="https://example.com/linkrel/derivedFrom";VALUE=URI: | There is no mapping for [RFC8288] "title*", "anchor", "rev" or | |||
| http://example.com/tasks/01234567-abcd1234.ics | "media". | |||
| Example: The following is an example of this property which provides | ||||
| a reference to the source for the calendar object. | ||||
| LINK;LINKREL=SOURCE;LABEL=Venue;VALUE=URI:http://example.com/events | ||||
| Example: The following is an example of this property which provides | ||||
| a reference to an entity from which this one was derived. The | ||||
| link relation is a vendor defined value | ||||
| LINK;LINKREL="https://example.com/linkrel/derivedFrom";VALUE=URI: | ||||
| http://example.com/tasks/01234567-abcd1234.ics | ||||
| Example: The following is an example of this property which provides | ||||
| a reference to a fragment of an XML document. The link relation | ||||
| is a vendor defined value | ||||
| LINK;LINKREL="https://example.com/linkrel/costStructure"; | ||||
| VALUE=REFERENCE: | ||||
| http://example.com/xmlDocs/bidFramework.xml | ||||
| #xpointer(descendant::CostStruc/range-to(following::CostStrucEND[1])) | ||||
| 8.3. Refid | 8.3. Refid | |||
| Property name: REFID | Property name: REFID | |||
| Purpose: This property value acts as a key for associated iCalendar | Purpose: This property value acts as a key for associated iCalendar | |||
| entities. | entities. | |||
| Value type: TEXT | Value type: TEXT | |||
| skipping to change at page 12, line 27 ¶ | skipping to change at page 13, line 10 ¶ | |||
| 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: The value of this property is free-form text that | Description: The value of this property is free-form text that | |||
| creates an identifier for associated components. All components | creates an identifier for associated components. All components | |||
| that use the same REFID value are associated through that value | that use the same REFID value are associated through that value | |||
| and can be located or retrieved as a group. For example, all of | and can be located or retrieved as a group. For example, all of | |||
| 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: | Format Definition: This property is defined by the following | |||
| notation: | ||||
| This property is defined by the following notation: | refid = "REFID" refidparam ":" text CRLF | |||
| refid = "REFID" refidparam ":" text CRLF | refidparam = *(";" other-param) | |||
| refidparam = *(";" other-param) | The current link registry | |||
| Example: | Example: The following is an example of this property. | |||
| The following is an example of this property. | REFID:itinerary-2014-11-17 | |||
| REFID:itinerary-2014-11-17 | 9. Updates to RFC 5545 | |||
| 9. Redefined RELATED-TO Property | This specification updates the RELATED-TO property defined in | |||
| Section 3.8.4.5 of [RFC5545]. | ||||
| The RELTYPE parameter is extended to take new values defining | ||||
| temporal relationships, a GAP parameter is defined to provide lead | ||||
| 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 | ||||
| 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. | |||
| skipping to change at page 13, line 52 ¶ | skipping to change at page 14, line 44 ¶ | |||
| 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 changed in a corresponding way. Similarly, if a | |||
| PARENT calendar component is cancelled or deleted, then there is | PARENT calendar component is cancelled or deleted, then there is | |||
| an implied impact to the related CHILD calendar components. This | an implied impact to the related CHILD calendar components. This | |||
| property is intended only to provide information on the | property is intended only to provide information on the | |||
| relationship of calendar components. It is up to the target | relationship of calendar components. It is up to the target | |||
| calendar system to maintain any property implications of this | calendar system to maintain any property implications of this | |||
| relationship. | relationship. | |||
| Format Definition: | Format Definition: This property is defined by the following | |||
| notation: | ||||
| This property is defined by the following notation: | ||||
| related = "RELATED-TO" relparam ":" | ||||
| ( uid / ; for VALUE=UID | ||||
| uri / ; for VALUE=URI | ||||
| text ) ; for VALUE=TEXT or default | ||||
| CRLF | ||||
| relparam = ; the elements herein may appear in any order, | related = "RELATED-TO" relparam ":" | |||
| ; and the order is not significant. | ( uid / ; for VALUE=UID | |||
| [";" "VALUE" "=" ("UID" / | uri / ; for VALUE=URI | |||
| "URI" / | text ) ; for VALUE=TEXT or default | |||
| "TEXT")] | CRLF | |||
| [";" reltypeparam] | ||||
| [";" gapparam] | ||||
| *(";" other-param) | ||||
| Example: | relparam = ; the elements herein may appear in any order, | |||
| ; and the order is not significant. | ||||
| [";" "VALUE" "=" ("UID" / | ||||
| "URI" / | ||||
| "TEXT")] | ||||
| [";" reltypeparam] | ||||
| [";" gapparam] | ||||
| *(";" other-param) | ||||
| The following are examples of this property. | Example: The following are examples of this property. | |||
| 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: | |||
| http://example.com/caldav/user/jb/cal/ | http://example.com/caldav/user/jb/cal/ | |||
| 19960401-080045-4000F192713.ics | 19960401-080045-4000F192713.ics | |||
| 10. Security Considerations | 10. Security Considerations | |||
| 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 [RFC3986] for a | entailed in using the URIs provided as values. See section 7 of | |||
| discussion of the security considerations relating to URIs. | [RFC3986] for a discussion of the security considerations relating to | |||
| URIs. | ||||
| In particular note section 7.1 "Reliability and Consistency" of | ||||
| [RFC3986] which points out the lack of a stability guarantee for | ||||
| referenced resources. | ||||
| When the value is a REFERENCE type the targeted data is an XML | ||||
| document or portion thereof. Consumers need to be aware of the | ||||
| security issues related to XML processing - in particular those | ||||
| related to XML entities. See [RFC4918] - Section 20.6. 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 property have the same issues in | |||
| that values may be URIs. | that values may be URIs. | |||
| 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 [RFC5545] | |||
| IANA has also added a reference to this document where the properties | IANA has also added a reference to this document where the properties | |||
| originally defined in [RFC5545] have been updated by this document. | 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 | | +------------+---------+------------------------+ | |||
| | REFID | Current | Section 8.3 | | | LINK | Current | Section 8.2 | | |||
| | RELATED-TO | Current | [RFC5545], Section 9 | | +------------+---------+------------------------+ | |||
| +------------+---------+----------------------+ | | REFID | Current | Section 8.3 | | |||
| +------------+---------+------------------------+ | ||||
| | RELATED-TO | Current | [RFC5545], Section 9.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 | | |||
| | REL | Current | Section 6.1 | | ||||
| +-----------+---------+-------------+ | +-----------+---------+-------------+ | |||
| | LINKREL | Current | Section 6.1 | | ||||
| +-----------+---------+-------------+ | ||||
| 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 | | |||
| +-----------------+---------+-----------+ | +=================+=========+===========+ | |||
| | REFERENCE | Current | Section 7 | | | REFERENCE | Current | Section 7 | | |||
| +-----------------+---------+-----------+ | ||||
| | UID | Current | Section 7 | | | UID | Current | Section 7 | | |||
| +-----------------+---------+-----------+ | +-----------------+---------+-----------+ | |||
| 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 | | |||
| +-------------------+---------+-----------+ | ||||
| | FINISHTOSTART | Current | Section 4 | | | FINISHTOSTART | Current | Section 4 | | |||
| +-------------------+---------+-----------+ | ||||
| | FIRST | Current | Section 5 | | | FIRST | Current | Section 5 | | |||
| +-------------------+---------+-----------+ | ||||
| | 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 | ||||
| 11.5. New Reference Type Registration | 11.5. New Reference Type Registration | |||
| The following link relation values have been added to the Reference | The following link relation values have been added to the Reference | |||
| Types Registry defined in Section 6.2.2 of [RFC8288] | Types Registry defined in Section 6.2.2 of [RFC8288] | |||
| +========+=========+=============+ | ||||
| +--------+---------+-------------+ | ||||
| | Name | Status | Reference | | | Name | Status | Reference | | |||
| +--------+---------+-------------+ | +========+=========+=============+ | |||
| | SOURCE | Current | Section 6.1 | | | SOURCE | Current | Section 6.1 | | |||
| +--------+---------+-------------+ | +--------+---------+-------------+ | |||
| Table 5 | ||||
| 12. Acknowledgements | 12. Acknowledgements | |||
| The author would like to thank the members of the Calendaring and | The author would like to thank the members of the Calendaring and | |||
| Scheduling Consortium technical committees and the following | Scheduling Consortium technical committees and the following | |||
| individuals for contributing their ideas, support and comments: | individuals for contributing their ideas, support and comments: | |||
| Adrian Apthorp, Cyrus Daboo, Marten Gajda, Ken Murchison | Adrian Apthorp, Cyrus Daboo, Marten Gajda, Ken Murchison | |||
| The author would also like to thank CalConnect, the Calendaring and | The author would also like to thank CalConnect, the Calendaring and | |||
| Scheduling Consortium for advice with this specification. | Scheduling Consortium for advice with this specification. | |||
| skipping to change at page 17, line 12 ¶ | skipping to change at page 18, line 39 ¶ | |||
| Attachments", RFC 8607, DOI 10.17487/RFC8607, June 2019, | Attachments", RFC 8607, DOI 10.17487/RFC8607, June 2019, | |||
| <https://www.rfc-editor.org/info/rfc8607>. | <https://www.rfc-editor.org/info/rfc8607>. | |||
| 13.2. Normative References | 13.2. 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 | ||||
| Resource Identifier (URI): Generic Syntax", STD 66, | ||||
| RFC 3986, DOI 10.17487/RFC3986, January 2005, | ||||
| <https://www.rfc-editor.org/info/rfc3986>. | ||||
| [RFC4918] Dusseault, L., Ed., "HTTP Extensions for Web Distributed | ||||
| Authoring and Versioning (WebDAV)", RFC 4918, | ||||
| DOI 10.17487/RFC4918, June 2007, | ||||
| <https://www.rfc-editor.org/info/rfc4918>. | ||||
| [RFC5545] Desruisseaux, B., Ed., "Internet Calendaring and | [RFC5545] Desruisseaux, B., Ed., "Internet Calendaring and | |||
| Scheduling Core Object Specification (iCalendar)", | Scheduling Core Object Specification (iCalendar)", | |||
| RFC 5545, DOI 10.17487/RFC5545, September 2009, | RFC 5545, DOI 10.17487/RFC5545, September 2009, | |||
| <https://www.rfc-editor.org/info/rfc5545>. | <https://www.rfc-editor.org/info/rfc5545>. | |||
| [RFC7986] Daboo, C., "New Properties for iCalendar", RFC 7986, | [RFC7986] Daboo, C., "New Properties for iCalendar", RFC 7986, | |||
| DOI 10.17487/RFC7986, October 2016, | DOI 10.17487/RFC7986, October 2016, | |||
| <https://www.rfc-editor.org/info/rfc7986>. | <https://www.rfc-editor.org/info/rfc7986>. | |||
| [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", World Wide Web Consortium | |||
| Recommendation REC-skos-reference-20090818, August 2009, | Recommendation REC-skos-reference-20090818, 18 August | |||
| 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] | ||||
| Grosso, P., Maler, E., Marsh, J., and N. Walsh, "XPointer | ||||
| Framework", World Wide Web Consortium Recommendation REC- | ||||
| xptr-framework-20030325, 25 March 2003, | ||||
| <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., Daniel, R., and E. Maler, "XPointer xpointer() | |||
| Scheme", World Wide Web Consortium WD WD-xptr-xpointer- | Scheme", World Wide Web Consortium WD WD-xptr-xpointer- | |||
| 20021219, December 2002, | 20021219, 19 December 2002, | |||
| <http://www.w3.org/TR/2002/WD-xptr-xpointer-20021219>. | <http://www.w3.org/TR/2002/WD-xptr-xpointer-20021219>. | |||
| Author's Address | Author's Address | |||
| Michael Douglass | Michael Douglass | |||
| Bedework | Bedework | |||
| 226 3rd Street | 226 3rd Street | |||
| Troy, NY 12180 | Troy, NY 12180 | |||
| USA | United States of America | |||
| Email: mdouglass@bedework.com | Email: mdouglass@bedework.com | |||
| URI: http://bedework.com | URI: http://bedework.com | |||
| End of changes. 87 change blocks. | ||||
| 187 lines changed or deleted | 269 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||