<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotemacs.git/tests/test-integration-calendar-sync-exdate.el, branch v0.7.2</title>
<subtitle>my Emacs configuration
</subtitle>
<id>https://git.cjennings.net/dotemacs.git/atom?h=v0.7.2</id>
<link rel='self' href='https://git.cjennings.net/dotemacs.git/atom?h=v0.7.2'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs.git/'/>
<updated>2026-02-03T14:09:30+00:00</updated>
<entry>
<title>feat(calendar-sync): add EXDATE support for excluded recurring event dates</title>
<updated>2026-02-03T14:09:30+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-03T14:09:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs.git/commit/?id=09cfcfd6826f9bc8b379dde88e1d9ca719c1bdb2'/>
<id>urn:sha1:09cfcfd6826f9bc8b379dde88e1d9ca719c1bdb2</id>
<content type='text'>
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.
</content>
</entry>
</feed>
