Understand the MeetingBar Architecture and Data Flow
masterMeetingBar is a macOS menu-bar app (AppKit/SwiftUI) that synchronizes calendar data (Apple Calendar via EventKit and Google Calendar via OAuth2) to display upcoming events in the system status bar.
Top-level Data Flow
- Calendar Providers:
EKEventStore(Apple) andGCEventStore(Google) fetch data. - CalendarSync: A
@MainActor ObservableObjectthat uses a Combine pipeline to merge triggers (Defaults changes, a 3-minute timer, and manual refreshes). It throttles updates and publishes[MBCalendar],[MBEvent], andProviderHealth. - AppModel: An
@MainActor ObservableObjectthat holds theAppState(events, calendars, active provider) driven byAppActionviaAppEnvironment. - Consumers:
StatusBarItemController&MenuBuilder: Render the menu bar based onStatusBarMenuState.NotificationScheduler: Manages event-based notifications and delayed tasks.