diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-30 15:12:12 -0400 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-30 15:12:12 -0400 |
| commit | 582ed54ed9a3c600e7e1e68beeea8b16ce1ed613 (patch) | |
| tree | 0f148b549dee9de8fc57b72e0b2c8f54ddd1fbd2 /modules/prog-python.el | |
| parent | 0801bf7fd35d4d37d2cba3c984622022cc1528fc (diff) | |
| download | dotemacs-582ed54ed9a3c600e7e1e68beeea8b16ce1ed613.tar.gz dotemacs-582ed54ed9a3c600e7e1e68beeea8b16ce1ed613.zip | |
fix(calendar-sync): drop singly-declined recurring occurrences
Declining one occurrence of a recurring meeting left it on the agenda. Google emits that decline as a RECURRENCE-ID override carrying the user's PARTSTAT=DECLINED. But calendar-sync--parse-exception-event never read the override's attendee block, so the occurrence kept the series' inherited "accepted" status and the declined filter never dropped it. The apply side already re-derives status from an override's attendees. The parse side just wasn't supplying them.
The fix parses the override's ATTENDEE lines into :attendees, the same way parse-event does. A unit test covers the extraction. An integration test runs the full parse/apply/filter chain on a declined week.
Diffstat (limited to 'modules/prog-python.el')
0 files changed, 0 insertions, 0 deletions
