How kud3n013/kalendar works
Kalendar is a local-first Linux calendar and task planner. The user edits events and tasks in the desktop UI; the app keeps them in its local data model and files, while optional calendar feeds and account sync provide external calendar data. The map includes the documented planning, task, calendar, settings, and sync capabilities. Several modules are only identified by the source index or README, so their internal behavior and unshown call paths are not expanded.
Main entry points: main.rs App orchestration · model.rs Events and tasks · mod.rs Sync coordination · ics.rs iCalendar feeds
Components 24
Desktop experience
- App orchestration
src/main.rs - Calendar and task views
src/views.rs - Editing and commands
src/dialogs.rs - Settings UI
src/settings.rs - Icon glyphs
src/icons.rs - Font setup
src/fonts.rs
Calendar and planning
- Events and tasks
src/model.rs - Frames and planner
src/model.rs - Time zones
src/tz.rs
Local data and feeds
- Local JSON data
src/model.rs - iCalendar feeds
src/ics.rs
Account synchronization
- Sync coordination
src/sync/mod.rs - CalDAV and Nextcloud
src/sync/caldav.rs - Google Calendar
src/sync/google.rs - Microsoft Graph
src/sync/graph.rs - OAuth sign-in
src/sync/oauth.rs - Proton Calendar
src/sync/proton.rs
Credentials and crypto
- Secret storage
src/secrets.rs - Proton key handling
src/sync/proton_keys.rs - Proton SRP
src/sync/proton_srp.rs
Other components
- Calendar user
- Web browser
- Calendar services
- Subscribed feed hosts
Connections 36
- Calendar user → App orchestration: uses
README.md - App orchestration → Calendar and task views: draws
src/main.rs - App orchestration → Editing and commands: opens
src/main.rs - App orchestration → Settings UI: opens
src/main.rs - App orchestration → Events and tasks: updates
src/main.rs - Calendar and task views → Events and tasks: reads and edits
src/views.rs - Editing and commands → Events and tasks: edits
src/dialogs.rs - Settings UI → Events and tasks: configures
src/settings.rs - Calendar and task views → Icon glyphs: uses
src/views.rs - Settings UI → Icon glyphs: uses
src/settings.rs - App orchestration → Font setup: configures
src/main.rs - App orchestration → Local JSON data: loads and saves
README.md - Events and tasks → Local JSON data: persists
README.md - Events and tasks → iCalendar feeds: parses calendar data
src/model.rs - Calendar and task views → Frames and planner: presents planning
README.md - App orchestration → Time zones: uses
src/main.rs - App orchestration → iCalendar feeds: fetches feeds
src/main.rs - Subscribed feed hosts → iCalendar feeds: serves feeds
README.md - App orchestration → Sync coordination: coordinates sync
src/main.rs - Sync coordination → CalDAV and Nextcloud: dispatches
src/sync/mod.rs - Sync coordination → Google Calendar: dispatches
src/sync/mod.rs - Sync coordination → Microsoft Graph: dispatches
src/sync/mod.rs - Sync coordination → Proton Calendar: dispatches
src/sync/mod.rs - CalDAV and Nextcloud → iCalendar feeds: parses calendar data
src/sync/caldav.rs - Microsoft Graph → iCalendar feeds: uses event format
src/sync/graph.rs - Google Calendar → OAuth sign-in: uses sign-in
src/sync/google.rs - Microsoft Graph → OAuth sign-in: uses sign-in
src/sync/graph.rs - OAuth sign-in → Web browser: opens sign-in
src/sync/oauth.rs - OAuth sign-in → Calendar services: requests tokens
src/sync/oauth.rs - CalDAV and Nextcloud → Calendar services: syncs calendars
src/sync/caldav.rs - Microsoft Graph → Calendar services: syncs calendars
src/sync/graph.rs - Proton Calendar → Calendar services: syncs calendars
src/sync/proton.rs - App orchestration → Secret storage: stores feed secrets
src/main.rs - Proton Calendar → Proton key handling: uses keys
src/sync/proton.rs - Proton Calendar → Proton SRP: proves sign-in
src/sync/proton.rs - Proton key handling → Proton SRP: uses crypto
src/sync/proton_keys.rs