Open wichmannpas opened 6 years ago
Strictly looking at the spec, I get the impression that VALUE=DATETIME
should be interpreted as the optional otherparam
, which the spec says should be ignored by clients.
FWIW though, I do agree that it would be cleaner if we omitted that (since it's of no real value). I'll have to look at our serialisation library though, and see if that's possible.
Quite related though, it does seem evident that specifying a timezone is not okay (since the actual value must be UTC-time). I don't think we ever do that, but I'd really prefer to double check that as well.
The format definition for the COMPLETED attribute is as follows:
completed = "COMPLETED" compparam ":" date-time CRLF
compparam = *(";" other-param)
Whereas for example the DTEND definition which allows to specify an alternative format is as follows:
dtend = "DTEND" dtendparam ":" dtendval CRLF
dtendparam = *(
;
; The following are OPTIONAL,
; but MUST NOT occur more than once.
;
(";" "VALUE" "=" ("DATE-TIME" / "DATE")) /
(";" tzidparam) /
;
; The following is OPTIONAL,
; and MAY occur more than once.
;
(";" other-param)
;
)
dtendval = date-time / date
;Value MUST match value type
todoman produces the COMPLETED attribute like this:
However, the RFC defines the COMPLETED attribute to always be of type DATE-TIME, thus not allowing VALUE=DATE-TIME to be explicitly specified.
This causes issues when using other clients which do not parse RFC-incompliant COMPLETED attributes, such as DAVdroid (cf. this issue).