device_calendar_plus 0.3.5
device_calendar_plus: ^0.3.5 copied to clipboard
A modern, maintained Flutter plugin for reading and writing device calendar events on Android and iOS.
0.3.5 - 2026-04-20 #
Added #
listSources()to discover calendar accounts/sources — based on @magic-fit (#14)- Source selection on
createCalendar— iOS viaCreateCalendarOptionsIos(sourceId:), Android via optionalaccountType supportsCalendarCreationonCalendarSourceavailabilityparameter onupdateEvent()— thanks @SuperKrallan (#29)urlfield on events (iOS:EKEvent.url, Android:CUSTOM_APP_URI) — thanks @magic-fit (#32)showCreateEventModal()with optional pre-fill (title, dates, location, description)- Read-only
attendeeson events (name, email, role, status)
Fixed #
- Android: all-day events appearing in wrong day's query in non-UTC timezones (#20)
- Android:
hasPermissions()now works from background services without an Activity (#31) - Android: calendar/event queries use application context for background compatibility — thanks @vitalii-vov (#26)
- Android:
notDeterminedpermission status correctly distinguished fromdenied— thanks @Albert221 (#12) - iOS: calendar source lookup fallback when default source is unavailable — thanks @zaqwery (#13)
- iOS:
createCalendardefault fallback now picks iCloud over Gmail CalDAV (#33)
0.3.3 - 2025-12-21 #
Fixed #
- Fixed parsing of
instanceIdfor events with@in their event ID (e.g., Google Calendar IDs likeabc123@google.com)
0.3.2 - 2025-12-19 #
Added #
- Android:
CreateCalendarOptionsAndroidfor specifying custom account name when creating calendars createCalendar()now accepts optionalplatformOptionsparameter for platform-specific configuration
0.3.1 - 2025-11-07 #
Fixed #
showEventModal()now properly awaits until the modal is dismissed (iOS and Android)
0.3.0 - 2024-11-05 #
Changed #
- BREAKING:
deleteEvent()now requires named parametereventIdand always deletes entire series for recurring events - BREAKING:
updateEvent()now uses named parametereventId(renamed frominstanceId) and always updates entire series for recurring events - BREAKING: Removed
deleteAllInstancesandupdateAllInstancesparameters - operations on recurring events now always affect the entire series - Renamed
getEvent()andshowEventModal()parameter frominstanceIdtoidto clarify that both event IDs and instance IDs are accepted
Removed #
- BREAKING:
NOT_SUPPORTEDerror code (no longer needed)
0.2.0 - 2024-11-05 #
0.1.0 - 2024-11-04 #
Initial release.
Added #
- Calendar permissions management (request/check)
- List device calendars with metadata (name, color, read-only status, primary flag)
- Query events by date range with optional calendar filtering
- Get single event by ID with support for recurring event instances
- Create events with full metadata support
- Update events including single-instance and all-instance updates for recurring events
- Delete events (single or all instances)
- Show native event modal
- All-day event support with floating date behavior
- Timezone handling for timed events
- Typed exception model with
DeviceCalendarExceptionandDeviceCalendarErrorenum - Federated plugin architecture (Android + iOS)
- Support for Android API 24+ (target/compile 35)
- Support for iOS 13+