diff options
| author | Craig Jennings <c@cjennings.net> | 2026-07-18 12:57:32 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-07-18 12:57:32 -0500 |
| commit | b426cd089503053fd203a034f3cbbe173252d5c3 (patch) | |
| tree | 583c679fb3daa94445efd818313ce0805c6abdbc /modules/calendar-sync-source.el | |
| parent | b5a7ac309217a1aeece1c043cf29002cfea6c9ef (diff) | |
| download | dotemacs-b426cd089503053fd203a034f3cbbe173252d5c3.tar.gz dotemacs-b426cd089503053fd203a034f3cbbe173252d5c3.zip | |
fix(calendar-sync): honor BYDAY rules and drop cancelled events
The expander ignored BYDAY on monthly and yearly rules and stepped DTSTART's day-of-month instead, so a "2nd Wednesday" series rendered on the 12th of every month, the wrong weekday most months. It now resolves nth-weekday entries (2WE, -1TU), bare weekdays with BYSETPOS, and yearly BYMONTH+BYDAY, so each occurrence lands on the day the rule names.
Nothing read the VEVENT STATUS property, so cancelled events rendered as normal meetings: a cancelled instance of a series reappeared at its original time, and standalone cancelled events stayed on the agenda. parse-event now drops STATUS:CANCELLED events, which also kills cancelled series masters. A cancelled RECURRENCE-ID override removes its occurrence instead of overriding it.
The fixes are coupled: until BYDAY generates the right dates, a cancelled override can't match the occurrence it removes.
Diffstat (limited to 'modules/calendar-sync-source.el')
0 files changed, 0 insertions, 0 deletions
