Skip to content

Commit

Permalink
Update in response to comments from Robert
Browse files Browse the repository at this point in the history
  • Loading branch information
douglm committed Jul 30, 2024
1 parent bebca35 commit 41a5361
Show file tree
Hide file tree
Showing 7 changed files with 80 additions and 69 deletions.
4 changes: 2 additions & 2 deletions ical-tasks/sources/draft-ietf-calext-ical-tasks.adoc
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
= Task Extensions to iCalendar
:doctype: internet-draft
:docnumber: draft-ietf-calext-ical-tasks-09
:docnumber: draft-ietf-calext-ical-tasks-10
:status: standard
:ipr: trust200902
:consensus: true
:updates: RFC5545
:submission-type: IETF
:area: Internet
:intended-series: full-standard
:revdate: 2024-04-18
:revdate: 2024-07-30
:fullname: Adrian Apthorp
:lastname: Apthorp
:forename_initials: A.
Expand Down
6 changes: 3 additions & 3 deletions ical-tasks/sources/sections-ietf/02-conventions.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ quoted-strings of text, followed by the word "property". For
example, "ATTENDEE" property refers to the iCalendar property used to
convey the calendar address of a "Calendar User".

Property parameters defined by this specification are referred to
with capitalized, quoted-strings of text, followed by the word
"parameter". For example, "VALUE" parameter refers to the iCalendar
Property parameters defined by <<RFC5545>> and updating specifications are referred to
with lowercase, quoted-strings of text, followed by the word
"parameter". For example, "value" parameter refers to the iCalendar
property parameter used to override the default data type for a
property value.

Expand Down
8 changes: 5 additions & 3 deletions ical-tasks/sources/sections/00-abstract.adoc
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@

[abstract]
== Abstract
This document updates and defines extensions to the
Internet Calendaring and Scheduling Core Object Specification (iCalendar) (RFC5545)
to provide improved status tracking, scheduling and specification of tasks.
The Internet Calendaring and Scheduling Core Object Specification (iCalendar) (RFC5545) VTODO calendar component has been seen
as the poor relation of VEVENT - useful only for personal reminders and to-do lists.

This document updates and defines extensions to VTODO
to provide improved status tracking, scheduling and specification of tasks to allow its use in pther contexts, such as process control and project management.

It also defines how Calendaring Extensions to
WebDAV (CalDAV) (RFC 4791) servers can be extended to
Expand Down
58 changes: 30 additions & 28 deletions ical-tasks/sources/sections/11-status-reporting.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,6 @@ information on why (REASON) and when (DTSTAMP) a status has changed.
In addition, new status values are specified to
provide for task suspension, failure and preparation.

Note that while the "VSTATUS" component is intended to allow multiple date-stamped
status changes to be stored it is not intended to be used as a history
of changes to a tasks properties.

=== Relating reason and comments to "ATTENDEE" property status changes.

The <<RFC9073>> "PARTICIPANT" calendar component can be used to provide additional
information about why an "ATTENDEE" property participation status has changed.
The "COMMENT" property can also
be used to include additional human-readable information about why the
associated "STATUS" or "ATTENDEE" property changed. For example, if a driver
failed to deliver a package
because of a puncture it might be expressed as

[source]
----
BEGIN:VSTATUS
Expand All @@ -34,22 +20,13 @@ SUBSTATE:ERROR
DTSTAMP:20130212T120000Z
COMMENT:Breakdown
END:VSTATUS
ATTENDEE;PARTSTAT=FAILED:mailto:[email protected]
...
BEGIN:PARTICIPANT
CALENDAR-ADDRESS:mailto:[email protected]
DTSTAMP:20130226T1104510Z
REASON:https://example.com/reason/van-break-down
COMMENT:Puncture
END:PARTICIPANT
----

=== Comments associated to reasons and status changes

Multiple comments and reasons may have the same status. As situations
change further VSTATUS components can be added to provide additional
information..
information.

[source]
----
Expand All @@ -74,15 +51,40 @@ DTSTAMP:20220212T180451Z
END:VSTATUS
----

Note that the "VSTATUS" calendar component not intended to be used as a history
of changes to a tasks properties. The purpose of "VSTATUS" calendar component is only to document changes related to fulfilling the tasks

=== Relating reason and comments to "ATTENDEE" property status changes.

The <<RFC9073>> "PARTICIPANT" calendar component can be used to provide additional
information about why an "ATTENDEE" property participation status has changed.
The "COMMENT" property can also
be used to include additional human-readable information about why the
associated "STATUS" or "ATTENDEE" property changed. For example, if a driver
failed to deliver a package
because of a puncture it might be expressed as

[source]
----
ATTENDEE;PARTSTAT=FAILED:mailto:[email protected]
...
BEGIN:PARTICIPANT
CALENDAR-ADDRESS:mailto:[email protected]
DTSTAMP:20130226T1104510Z
REASON:https://example.com/reason/van-break-down
COMMENT:Puncture
END:PARTICIPANT
----

=== Task Alerts and Notifications

Different needs to alert or notify task actors of pending or actual
task status changes are recognized:

Alarms:: Alarms ("VALARM" calendar components) operate in the calendar user agent
Alarms:: "VALARM" calendar components operate in the calendar user agent
space to notify the task actor of a pending task state for a task they
are assigned to or are interested in.

+
Current standards (see <<RFC9074>>) indicate "VALARM" calendar components SHOULD be removed
from incoming data and many systems in fact do so. In a task assignment
scenario it may be appropriate for the organizer to be able to set alarms
Expand All @@ -93,11 +95,11 @@ them being removed. This issue is not addressed by this specification.
Escalations:: An escalation or notification to the "Attendee", "Organizer",
or other task actor may be required if a deadline associated with a
task is exceeded or for some other reason. Process Logic identifying
when and who to propagate escalations to is the responsibility of the
when and who to propagate escalations is the responsibility of the
Task Generating System, e.g., a BPMS.

Notifications:: Task actors (observers) not directly involved in
performing a task but with a known interest in a given task's status
performing a task, but with a known interest in a given task's status,
can be identified by the "PARTICIPANT" calendar component <<RFC9073>> against certain
components e.g. the "VALARM" calendar component, to identify which task events the
stakeholder/party is interested in. Notifications on shared calendars
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
== Modifications to Calendar Components

The following changes to the syntax defined in iCalendar <<RFC5545>>
and Event Publishing Extensions to iCalendar <<RFC9073>>
are made here. New elements are defined in subsequent sections.

[source,bnf]
Expand Down
66 changes: 36 additions & 30 deletions ical-tasks/sources/sections/52-new-properties.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -145,22 +145,20 @@ Value Type:: TEXT

Property Parameters:: IANA and non-standard property parameters can be specified on this property.

Conformance:: This property can be specified zero or more times in a "VTODO" calendar component.
Conformance:: This property can be specified zero or once in a "VTODO" calendar component.

Format Definition:: This property is defined by the following notation:

[source,bnf]
----
task-mode = "TASK-MODE taskmodeparam ":" taskvalue
*("," taskvalue) CRLF
taskvalue = "AUTOMATIC-COMPLETION" ; set STATUS completed
;if all attendees have completed
/ "AUTOMATIC-FAILURE"
/ "SERVER"
/ "CLIENT"
/ iana-token
/ x-name
task-mode = "TASK-MODE taskmodeparam ":"
("AUTOMATIC-COMPLETION"
/ "AUTOMATIC-FAILURE"
/ "AUTOMATIC"
/ "SERVER"
/ "CLIENT"
/ iana-token
/ x-name) CRLF
taskmodeparam = *(";" other-param)
----
Expand All @@ -172,27 +170,22 @@ the server can automatically set the overall task status to COMPLETED
when every attendee has marked their own status (PARTSTAT) as COMPLETED,
or the server could mark the task as FAILED if its DUE date passes
without it being completed. TASK-MODE processing is performed on the organizer's copy of the task.

+
To set the status, add a VSTATUS component as specified in <<vstatus>>.

The property value is a list of one or more IANA registered tokens that defines modes to be used for the task. This specification defines three modes which are described in the following subsections.

Examples::

[source]
----
TASK-MODE:AUTOMATIC-COMPLETION,AUTOMATIC-FAILURE
TASK-MODE:SERVER
TASK-MODE:AUTOMATIC-FAILURE
----
+
The property value is an IANA registered token that defines the mode to be used for the task. The modes are described in the following subsections.
+
If the "TASK-MODE" property is absent then the "CLIENT" value is assumed.

[[task-mode-automatic-completion]]
AUTOMATIC-COMPLETION Task Mode::

The task mode value "AUTOMATIC-COMPLETION" indicates to the server
that it can change the "VTODO" calendar component's status to "COMPLETED" as
soon as all attendees in the task have replied with a "PARTSTAT"
parameter set to "COMPLETED".
that it can change the "VTODO" calendar component's status to
"COMPLETED" as soon as all attendees in the task have replied with a
"partstat" parameter set to "COMPLETED".
+
Failing the task MUST be handled by a client.

[[task-mode-automatic-failure]]
AUTOMATIC-FAILURE Task Mode::
Expand All @@ -203,10 +196,16 @@ it SHOULD change the "VTODO" calendar component's status to "FAILED" if either:
. the PARTSTAT of one "ATTENDEE" property is set to FAILED; or

. the current time is past the effective due date of the component and the task has not yet been completed.

+
NOTE: The effective due date is either the "DUE" property value or the
combination of the "DTSTART" and "DURATION" property values.
+
Completing the task MUST be handled by a client.

[[task-mode-automatic]]
AUTOMATIC Task Mode::

This mode handles both "AUTOMATIC-COMPLETION" and "AUTOMATIC-FAILURE".

[[task-mode-client]]
CLIENT Task Mode::
Expand All @@ -221,7 +220,14 @@ The task mode value "SERVER" indicates to the server that it can change
the "VTODO" calendar component's status to an appropriate value, based on
implementation defined "business rules", as attendee responses are
processed or as deadlines related to the task pass.
+
The server can add this property to a "VTODO" calendar component to indicate to
the client that it will be managing the status.


Examples::

[source]
----
TASK-MODE:AUTOMATIC-COMPLETION
TASK-MODE:AUTOMATIC-FAILURE
TASK-MODE:SERVER
----

6 changes: 3 additions & 3 deletions ical-tasks/sources/sections/53-property-extensions.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
== Property Extensions and Clarifications

[[prop-ext-duration]]
=== Updated DURATION Property definition
=== Updated DURATION Property definition for VTODO

<<RFC5545>> section 3.6.2 introduced a constraint on the duration property requiring
that a DURATION MUST be accompanied by a DTSTART.
<<RFC5545>> section 3.6.2 introduced a constraint on the use of the "DURATION" property in the "VTODO" calendar component, requiring
that a "DURATION" property MUST be accompanied by a "DTSTART" property.
This constraint is dropped reverting to the situation as specified
previously.

Expand Down

0 comments on commit 41a5361

Please sign in to comment.