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

> So the RRULE applies to both DTSTART and DUE, and the repeats continue
> past DUE.
>
> But, another thing to note from the definition of DTSTART [2]:
>
>       This property [DTSTART] is REQUIRED in all types of recurring
>       calendar components that specify the "RRULE" property.
>
> 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.

>> 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.
>
> A couple of these behaviors can already be achieved by customizing
> `org-icalendar-use-deadline' (making DUE or ignoring). For using
> DEADLINE as a bound, we could potentially add another option for that.

Yup. That's what I meant.

>> Is there any reason for this? May we instead export to a single VEVENT
>> with appropriate RDATE list?
>
> I guess if there are multiple timestamps with repeaters, it's easier to
> export these as separate VEVENT, because it's not possible to have
> multiple RRULE in one VEVENT.
>
> But, your suggestion earlier in thread could also solve this: in case of
> different repeaters, we can use RDATE to generate occurrences manually
> sufficiently far into future (with defcustom for "how far").

RDATE is exactly what I had in mind here.

-- 
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