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.

Feature: Calendar Sync

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>

Relationships

Dependents (1)

Components that depend on this component