high complexity extracted Activity Registration Confidence: 100%
12
Components
106
Shared
0
User Stories
Yes
Analyzed

Description

This feature enables peer mentors and coordinators to connect their device calendar (iOS Calendar / Google Calendar) to Meander, allowing planned activities and events to appear as calendar entries and enabling import of calendar events as activity registrations. The integration works bidirectionally: activities registered in Meander can be pushed to the device calendar, and upcoming calendar events can be surfaced as prompts to log an activity. This reduces duplicate effort for users who already plan their peer mentor work in a personal calendar.

User Flow

Calendar Sync user flow
Click to expand

Analysis

Business Value

HLF specifically identified calendar synchronization as a follow-up mechanism for improving peer mentor engagement — coordinators need confidence that scheduled activities actually happen, and calendar integration creates a natural accountability loop. For peer mentors who are already disciplined calendar users, syncing removes the cognitive overhead of maintaining two separate records of the same appointment. This feature also supports the notification scenarios area: a calendar event approaching without a corresponding activity registration can trigger a gentle reminder, increasing overall reporting completeness without requiring coordinators to manually chase up individual peer mentors.

Implementation Notes

Implemented using the flutter_local_notifications and device_calendar Flutter packages. iOS requires NSCalendarsUsageDescription permission; Android requires READ_CALENDAR and WRITE_CALENDAR permissions, both requested at runtime with clear rationale dialogs. The CalendarSyncService mediates between the device calendar API and the Meander REST API. A CalendarIntegrationAdapter abstracts platform differences between iOS EventKit and Android CalendarProvider. Bidirectional sync is implemented as a background job (see Background Sync feature) that runs on a configurable interval. Conflict resolution favors the Meander record as the source of truth. OAuth-based Google Calendar integration is handled separately from device calendar and requires a Google Cloud project with Calendar API enabled. Sync state is persisted locally to avoid redundant API calls.

Components (118)

User Interface (3)

Service Layer (3)

Data Layer (2)

Infrastructure (4)

Shared Components

These components are reused across multiple features

Service Layer (34)

Data Layer (22)

Infrastructure (38)

infrastructure Keychain/Keystore Adapter low Shared infrastructure JWT Claims Extractor low Shared infrastructure Organization Labels Adapter low Shared infrastructure Keychain/Keystore Adapter low Shared infrastructure Auth API Client medium Shared infrastructure REST API Client medium Shared infrastructure WCAG Accessibility Adapter low Shared infrastructure Registration API Client low Shared infrastructure Accounting API Client high Shared infrastructure PDF Renderer Adapter medium Shared infrastructure File Share Adapter low Shared infrastructure FCM/APNs Adapter high Shared infrastructure Share Sheet Adapter low Shared infrastructure Share Plus Adapter low Shared infrastructure Platform Accessibility Bridge medium Shared infrastructure Semantics Override Adapter high Shared infrastructure URL Launcher Adapter low Shared infrastructure Markdown Content Renderer low Shared infrastructure Network Connectivity Monitor low Shared infrastructure Expense Receipt Storage Adapter low Shared infrastructure Audit Log Writer low Shared infrastructure Feature Flag Checker low Shared infrastructure Logo Upload Adapter low Shared infrastructure Terminology Constants Registry low Shared infrastructure Feature Flag Cache Adapter low Shared infrastructure Org Scope JWT Resolver medium Shared infrastructure Association Audit Logger low Shared infrastructure Token Blocklist medium Shared infrastructure Analytics Tracker low Shared infrastructure SEO Metadata Config low Shared infrastructure Analytics Tracker low Shared infrastructure Analytics Tracker low Shared infrastructure Sales Analytics Tracker low Shared infrastructure Email Provider Adapter low Shared infrastructure Terms of Service Content Provider low Shared infrastructure Legal PDF Asset Provider low Shared infrastructure Consent-Gated Script Loader low Shared infrastructure Legal Page Layout low Shared

User Stories

No user stories have been generated for this feature yet.