diff options
| author | Craig Jennings <c@cjennings.net> | 2026-02-03 08:09:30 -0600 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-02-03 08:09:30 -0600 |
| commit | ef8f13751967d5b577cb9d98b87870daee9f9940 (patch) | |
| tree | 6f062ccc52cf5c334380340ca04d280da3b1df28 /init.el | |
| parent | 8278503b8a33005aaa2197680e243033ae23e275 (diff) | |
| download | dotemacs-ef8f13751967d5b577cb9d98b87870daee9f9940.tar.gz dotemacs-ef8f13751967d5b577cb9d98b87870daee9f9940.zip | |
feat(calendar-sync): add EXDATE support for excluded recurring event dates
When someone deletes a single instance of a recurring meeting in Google
Calendar, the calendar exports an EXDATE property marking that date as
excluded. Previously, calendar-sync expanded the RRULE without filtering
out these excluded dates, causing deleted instances to appear in org output.
New functions:
- calendar-sync--get-exdates: Extract all EXDATE values from event
- calendar-sync--get-exdate-line: Get full EXDATE line with parameters
- calendar-sync--parse-exdate: Parse EXDATE into datetime list
- calendar-sync--collect-exdates: Collect excluded dates with TZ conversion
- calendar-sync--exdate-matches-p: Check if occurrence matches an EXDATE
- calendar-sync--filter-exdates: Filter out excluded dates from occurrences
Modified calendar-sync--expand-recurring-event to collect and filter
EXDATEs after RRULE expansion.
Includes 47 new tests covering extraction, parsing, collection, filtering,
and integration with RECURRENCE-ID exceptions.
Diffstat (limited to 'init.el')
0 files changed, 0 insertions, 0 deletions
