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>