Calendar Integration Adapter
Component Detail
Infrastructure
high complexity
mobile
0
Dependencies
1
Dependents
0
Entities
0
Integrations
Description
Platform abstraction layer that normalizes differences between iOS EventKit and Android CalendarProvider APIs. Handles runtime permission requests with clear rationale dialogs (NSCalendarsUsageDescription on iOS, READ_CALENDAR/WRITE_CALENDAR on Android). Also provides OAuth-based Google Calendar API integration as a separate code path.
calendar-integration-adapter
Responsibilities
- Abstract platform-specific calendar APIs behind a unified interface
- Request and manage calendar permissions with rationale dialogs
- Handle iOS EventKit and Android CalendarProvider differences
- Provide OAuth flow for Google Calendar API integration
- Convert between platform-specific event formats and Meander models
Interfaces
requestCalendarPermission(): Future<PermissionStatus>
getAvailableCalendars(): Future<List<DeviceCalendar>>
getEvents(calendarId: String, start: DateTime, end: DateTime): Future<List<CalendarEvent>>
createEvent(calendarId: String, event: CalendarEvent): Future<String>
updateEvent(calendarId: String, eventId: String, event: CalendarEvent): Future<void>
deleteEvent(calendarId: String, eventId: String): Future<void>
isPermissionGranted(): Future<bool>
authenticateGoogleCalendar(): Future<OAuthToken>
getGoogleCalendarEvents(token: OAuthToken, dateRange: DateRange): Future<List<CalendarEvent>>
pushToGoogleCalendar(token: OAuthToken, event: CalendarEvent): Future<String>