Ihor Radchenko <yanta...@posteo.net> writes: >> So technically, a standalone DEADLINE + repeater isn't allowed -- a >> repeating task must always have a start date. > > May we then use org-deadline-warning-days/timestamp warntime spec as DTSTART? > VALARM component is not fitting for warning days anyway. > >> But still, maybe we should stick to the requirement, and only export >> repeater on SCHEDULED. That would simplify the implementation. The >> downside is that repeating deadlines won't show up in iCalendar, which >> seems undesirable. > > Agree. We should better stick to the spec.
I took a closer look into how other programs handle RRULE, DTSTART, DUE. I tried the following CalDav servers: Nextcloud, radicale And the following clients: Tasks.org, Thunderbird, Evolution. (I did not use Nextcloud client because it doesn't support repeating tasks, even though the Nextcloud server does). Thunderbird and Evolution clients do not allow creating repeating tasks without start date -- if you try to do so, they will force you to specify one. Tasks.org client does allow repeating tasks with only a deadline (no start date). Nextcloud and radicale servers happily accept the repeating deadline from Tasks.org without start date. When I download the ICS file from the server, the VTODO contains RRULE and DUE, but not DTSTART. When I validate the ICS file with icalendar.org [1], it accepts the ICS as valid, even though it seemingly violates the spec by missing DTSTART. So, it seems there is some inconsistency about this in the iCalendar ecosystem. I have not yet reached a firm conclusion on the best solution, but am leaning towards your suggestion to use org-deadline-warning-days for DTSTART in this case. I'll try to have a more concrete, updated patch on this ready in a couple weeks or so. [1] https://icalendar.org/validator.html