Jack Kamm <jackk...@gmail.com> writes:

> Ihor Radchenko <yanta...@posteo.net> writes:
>> Another scenario we may need to consider is when schedule has a repeater
>> while deadline does not, and vice versa. The former scenario is probably
>> valid - a VTODO with limited number of occurrences.
> That is an interesting idea; and we can use the UNTIL or COUNT keywords
> in RRULE to implement it.
> However, it doesn't seem completely faithful to the way the TODO ends up
> in the Org Agenda (or does Org have some option to use DEADLINE to bound
> a repeating SCHEDULED in this way?)

DUE in iCalendar and DEADLINE in Org are not exactly the same. So, of
course, there is a room for ambiguity.

The question is: does iCalendar allow something like


and repeats past DUE?

If not, we have to choose when exporting from Org source - either to
keep DUE or not.

> I think the most faithful way to represent different SCHEDULED and
> DEADLINE repeaters is to export 2 separate VTODOs, each with different
> RRULE. Then the exported iCalendar will look just like the Org
> Agenda. It is also in line with how ox-icalendar exports multiple
> timestamps to separate VEVENTs.

If we want to leave as many options as possible to the users, we can (1)
Implement ICALENAR_DUE property that will set DUE explicitly on export;
(2) ICALENDAR_DUE may allow special values that will indicate how to
treat Org DEADLINEs - make them into DUE, use Org DEADLINE as a
bound for SCHEDULED repeater, or ignore DEADLINE completely.

> That said, I am not really happy with this solution either. The fact
> that ox-icalendar can create multiple VEVENT per entry already creates
> headaches for any setup doing bidirectional sync between Org and
> iCalendar, such as with org-caldav, ical2org.awk, or ical2orgpy. And I
> am hesitant to make this problem worse, by making it happen for VTODO as
> well.

Is there any reason for this? May we instead export to a single VEVENT
with appropriate RDATE list?

Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>

Reply via email to