Calendar Sync
Feature Detail
Description
Calendar Sync allows peer mentors and coordinators to connect their device calendar (iOS Calendar / Google Calendar) so that activities and events created in Meander are automatically reflected as calendar entries, and optionally so that existing calendar appointments can be used to pre-fill activity registrations. The feature is surfaced via a dedicated Calendar Sync Screen where the user grants calendar permission and configures sync preferences. This reduces double-entry burden for users who already track their activities in a personal calendar and supports the follow-up reminder use case raised by HLF.
Analysis
HLF noted that poor follow-up of peer mentors was a key dissatisfier in their internal survey, with 40% of respondents unsatisfied. Calendar integration reduces the risk of missed follow-ups by surfacing Meander commitments inside the tool users already rely on for scheduling. For peer mentors managing high volumes (one HLF mentor logged 380 individual registrations in a year), pre-filling from calendar entries removes significant manual re-entry. This feature also improves retention by making Meander a natural part of existing daily workflows rather than a separate obligation.
Uses the Flutter device_calendar plugin (or equivalent) to interact with iOS EventKit and Android CalendarProvider via platform channels. The Calendar Integration Service handles OAuth consent for Google Calendar on Android and system permission prompts on iOS. Calendar entries created by Meander are tagged with a source identifier so they can be updated or deleted without affecting user-created events. Privacy implications are significant - the sync must be opt-in, must clearly state what data is read and written, and must not transmit raw calendar data to the backend. Only the activity metadata (title, date, duration) derived from a calendar import is sent to the API. WCAG 2.2 AA applies to the Calendar Sync Screen including permission prompt flows.
Components (43)
Shared Components
These components are reused across multiple features
User Interface (9)
Service Layer (15)
Data Layer (8)
Infrastructure (7)
User Stories
No user stories have been generated for this feature yet.