diff --git a/Sources/CalendarService.swift b/Sources/CalendarService.swift index bddef8a..0f5cbf4 100644 --- a/Sources/CalendarService.swift +++ b/Sources/CalendarService.swift @@ -12,6 +12,27 @@ class CalendarService: ObservableObject { Task { await requestAccess() } + setupNotificationObserver() + } + + deinit { + NotificationCenter.default.removeObserver(self) + } + + private func setupNotificationObserver() { + NotificationCenter.default.addObserver( + forName: .EKEventStoreChanged, + object: eventStore, + queue: .main + ) { [weak self] _ in + self?.handleEventStoreChanged() + } + } + + @MainActor + private func handleEventStoreChanged() { + loadCalendars() + loadEvents() } @MainActor