diff options
| author | Craig Jennings <c@cjennings.net> | 2026-03-09 23:40:26 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-03-09 23:40:26 -0500 |
| commit | 4080daf948b23d0b6b59394623e12983f0a9cfad (patch) | |
| tree | 88a190369d5ecf29ecc03ad94c0808137224c370 /modules/calendar-sync.el | |
| parent | 3b120b35fff1e21114c7ff189def31b538c7a2ac (diff) | |
fix(calendar-sync): handle variable-length date lists in RRULE UNTIL
date-to-time used (reverse date) which broke when RRULE UNTIL values
were parsed as 5-element lists (year month day hour minute) from UTC
timestamps. This caused recurring events with UTC UNTIL dates to
expand to 0 occurrences, producing stale calendar entries.
Diffstat (limited to 'modules/calendar-sync.el')
| -rw-r--r-- | modules/calendar-sync.el | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/modules/calendar-sync.el b/modules/calendar-sync.el index 106c87f7..610281d2 100644 --- a/modules/calendar-sync.el +++ b/modules/calendar-sync.el @@ -894,9 +894,13 @@ Returns string like '<2025-11-16 Sun 14:00-15:00>' or '<2025-11-16 Sun>'." ;;; Helper Functions (defun calendar-sync--date-to-time (date) - "Convert DATE (year month day) to time value for comparison. -DATE should be a list like (year month day)." - (apply #'encode-time 0 0 0 (reverse date))) + "Convert DATE to time value for comparison. +DATE should be a list starting with (year month day ...). +Only the first three elements are used; extra elements (hour, minute) are ignored." + (let ((day (nth 2 date)) + (month (nth 1 date)) + (year (nth 0 date))) + (encode-time 0 0 0 day month year))) (defun calendar-sync--before-date-p (date1 date2) "Return t if DATE1 is before DATE2. |
