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.