How obsidian-full-calendar-remastered/plugin-full-calendar works
Full Calendar (Remastered) is an Obsidian plugin for keeping events, tasks, and notes together in a calendar. The main workflow is plugin initialization, source registration and synchronization, centralized event storage and time-aware filtering, then calendar display and interaction. Separate branches cover the documented calendar/task integrations, Chrono Analyser insights, and supporting features such as recurring events and notifications. Source excerpts are partial; documented capabilities are included, while uncertain internal wiring is omitted.
Main entry points: EventCache.ts Event cache · main.ts Plugin lifecycle · providers Calendar providers · AnalysisController.ts Analysis controller
Components 28
Plugin runtime
- Plugin lifecycle
src/main.ts - Shared plugin state
src/core/PluginState.ts - Settings
src/types/settings.ts - Plugin API
src/api/PublicAPI.ts
Calendar core
- Event cache
src/core/EventCache.ts - Event store
src/core/EventStore.ts - Filter and sort
src/core/EventFilterSortEngine.ts - Time engine
src/core/TimeEngine.ts - Calendar view
src/ui/view.ts - Event interactions
src/ui/calendar/ViewEventInteractionHandler.ts
Calendar sources
- Provider registry
src/providers/ProviderRegistry.ts - Calendar providers
src/providers - Vault sources
src/providers - Remote sources
src/providers - Task integrations
src/providers
Product features
- Recurring events
src/features/recur_events/RecurringEventManager.ts - Reminders
src/features/notifications/NotificationManager.ts - ActivityWatch sync
src/features/activitywatch/sync.ts - Availability sharing
src/features/availability/AvailabilityService.ts - Workspaces
src/features/workspaces/WorkspaceManager.ts - Natural language commands
src/features/nlp/engine.ts
Chrono Analyser
- Analysis controller
src/chrono_analyser/AnalysisController.ts - Analysis data manager
src/chrono_analyser/data/DataManager.ts - Insights engine
src/chrono_analyser/data/InsightsEngine.ts - Analysis UI
src/chrono_analyser/ui/UIService.ts - Insights renderer
src/chrono_analyser/ui/components/InsightsRenderer.ts
Other components
- Obsidian user
- Obsidian host
Connections 31
- Obsidian user → Obsidian host: uses
README.md - Obsidian host → Plugin lifecycle: loads plugin
src/main.ts - Plugin lifecycle → Shared plugin state: initializes
src/main.ts - Plugin lifecycle → Provider registry: configures sources
src/main.ts - Plugin lifecycle → Event cache: creates
src/main.ts - Plugin lifecycle → Settings: loads settings
src/main.ts - Provider registry → Calendar providers: selects providers
- Calendar providers → Vault sources: reads vault events
README.md - Calendar providers → Remote sources: syncs calendars
README.md - Calendar providers → Task integrations: syncs tasks
README.md - Event cache → Calendar providers: fetches and mutates
src/core/EventCache.ts - Event cache → Event store: stores events
src/core/EventCache.ts - Event cache → Filter and sort: queries events
src/core/EventCache.ts - Event cache → Time engine: builds time state
src/core/EventCache.ts - Calendar view → Event cache: displays calendar data
- Obsidian user → Calendar view: views calendar
README.md - Calendar view → Event interactions: handles event actions
src/ui/calendar/ViewEventInteractionHandler.ts - Event interactions → Event cache: edits events
src/ui/calendar/ViewEventInteractionHandler.ts - Event cache → Recurring events: delegates recurring logic
src/core/EventCache.ts - Plugin lifecycle → Reminders: initializes reminders
src/main.ts - Obsidian user → ActivityWatch sync: connects integration
README.md - Obsidian user → Availability sharing: shares availability
- Obsidian user → Workspaces: switches workspaces
- Obsidian user → Natural language commands: issues commands
- Plugin lifecycle → Natural language commands: registers command
src/main.ts - Obsidian user → Analysis controller: runs analysis
- Analysis controller → Analysis data manager: loads records
src/chrono_analyser/AnalysisController.ts - Analysis controller → Insights engine: generates insights
src/chrono_analyser/AnalysisController.ts - Analysis controller → Analysis UI: controls analysis UI
src/chrono_analyser/AnalysisController.ts - Analysis UI → Insights renderer: renders insights
src/chrono_analyser/ui/UIService.ts - Obsidian user → Plugin API: requests plugin access
README.md