Hello, Toke Høiland-Jørgensen <t...@toke.dk> writes:
> I've been wanting to have support for exporting recurring events to iCal > while limiting the number of repetitions, as well as excluding dates. > The patch below is my attempt to add this functionality. However, I'm in > doubt as to whether or not this is the right way to go about it (parsing > dates stored in the property drawer), or if there's a better way? > > A sample headline supporting this might look like this: > > * Test > :PROPERTIES: > :END_DATE: [2013-07-21 Sun] > :EXCLUDE: [2013-07-14 Sun] > :ID: b376f8e3-f1a7-4ed6-ab9b-a255938af8c0 > :END: > <2013-07-07 Sun +1w> > > > If this is a reasonable way to go about it, I'll be happy to resubmit it > as a proper patch (i.e. from `git format-patch`) for inclusion. :) Thanks for your patch. I think EXCLUDE property is a good idea, but I may be renamed to ICALENDAR_EXCLUDE until it is also handled by Org Agenda, if it ever happens. It also needs to be documented in the manual. On the other hand, I'm not sure about the END_DATE property. Couldn't DEADLINE be used for that matter? For example, `repeater-end-date' could be added to `org-icalendar-use-deadline' possible values. When this symbol belongs to variable's value and current entry has a deadline, any timestamps with a repeater get deadline's value as its END DATE property. What do you think? > +(defun org-icalendar-zero-convert-timestamp (timestamp &optional format) > + "Parse and format an org-formatted timestamp, zeroing the time component." > + (let ((time (org-parse-time-string timestamp)) > + (fmt (or format "%Y%m%dT%H%M%SZ"))) > + (format-time-string fmt (encode-time 0 0 0 (nth 3 time) (nth 4 time) > (nth 5 time))))) Can't `org-icalendar-convert-timestamp' be used instead? Regards, -- Nicolas Goaziou