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. |