summaryrefslogtreecommitdiff
path: root/modules/org-agenda-config.el
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-02-03 07:39:50 -0600
committerCraig Jennings <c@cjennings.net>2026-02-03 07:39:50 -0600
commit84a02097bf842e96f7f4dd4e4ac39e78faf64989 (patch)
treea3a87b6b3d75ae4179924a62c318b05fa0bd0751 /modules/org-agenda-config.el
parent089a4313660cb8af1eca3829ffbdbae70f72333a (diff)
feat(calendar-sync): add RECURRENCE-ID exception handling for recurring events
Handle rescheduled instances of recurring calendar events by processing RECURRENCE-ID properties from ICS files. When someone reschedules a single instance of a recurring meeting in Google Calendar, the calendar-sync module now shows the rescheduled time instead of the original RRULE time. New functions: - calendar-sync--get-recurrence-id: Extract RECURRENCE-ID from event - calendar-sync--get-recurrence-id-line: Get full line with TZID params - calendar-sync--parse-recurrence-id: Parse into (year month day hour minute) - calendar-sync--collect-recurrence-exceptions: Collect all exceptions by UID - calendar-sync--occurrence-matches-exception-p: Match occurrences to exceptions - calendar-sync--apply-single-exception: Apply exception data to occurrence - calendar-sync--apply-recurrence-exceptions: Apply all exceptions to occurrences Also adds DeepSat calendar configuration (dcal-file) to user-constants, init.el, and org-agenda-config. 48 unit and integration tests added covering normal, boundary, and error cases.
Diffstat (limited to 'modules/org-agenda-config.el')
-rw-r--r--modules/org-agenda-config.el4
1 files changed, 2 insertions, 2 deletions
diff --git a/modules/org-agenda-config.el b/modules/org-agenda-config.el
index 4be4db9e..df95f31e 100644
--- a/modules/org-agenda-config.el
+++ b/modules/org-agenda-config.el
@@ -142,7 +142,7 @@ improves performance from several seconds to instant."
(setq cj/org-agenda-files-building t)
(let ((start-time (current-time)))
;; Reset org-agenda-files to base files
- (setq org-agenda-files (list inbox-file schedule-file gcal-file pcal-file))
+ (setq org-agenda-files (list inbox-file schedule-file gcal-file pcal-file dcal-file))
;; Check all projects for scheduled tasks
(cj/add-files-to-org-agenda-files-list projects-dir)
@@ -335,7 +335,7 @@ This allows a line to show in an agenda without being scheduled or a deadline."
:init
;; Initialize org-agenda-files with base files before chime loads
;; The full list will be built asynchronously later
- (setq org-agenda-files (list inbox-file schedule-file gcal-file pcal-file))
+ (setq org-agenda-files (list inbox-file schedule-file gcal-file pcal-file dcal-file))
;; Debug mode (keep set to nil, but available for troubleshooting)
(setq chime-debug nil)