Technically, the iCalendar spec requires repeating events and todos
(i.e. having an RRULE
property) to have a starting time (DTSTART
in iCalendar, equivalent to SCHEDULED
in Org TODOs). This means
that, a TODO with a repeating DEADLINE
but without a SCHEDULED
property, such as below, is not allowed by the iCalendar spec:
* TODO An example todo with a repeating deadline and no start time DEADLINE: <2024-09-15 Sun +1w>
This is a clear shortcoming of the iCalendar spec, because it does allow tasks to have a standalone deadline without a starting time, but doesn’t allow such tasks to repeat.
By default, ox-icalendar
follows the iCalendar spec, and when
exporting a TODO with a repeating DEADLINE
but no SCHEDULED
timestamp, will add a start time based on
org-deadline-warning-days
. On future syncs, this start time will be
inserted into Org as a SCHEDULED
timestamp.
However, in practice, many iCalendar implementations ignore this
limitation, and allow Todos with DEADLINE
(DUE
) times to have
repeaters (RRULE
), even if they are missing SCHEDULED
(DTSTART
)
times. If your CalDav server allows this, then you may set the
variable org-icalendar-todo-unscheduled-start
to nil
. This will
prevent ox-icalendar
from adding a start time to such TODOs, thus
preventing the SCHEDULED
timestamp from being inserted on future
syncs.
See Repeating events and todos for more details about how org-caldav handles repeating events and todos.