device_calendar_plus_android 0.7.0
device_calendar_plus_android: ^0.7.0 copied to clipboard
Android implementation of the device_calendar_plus plugin.
0.7.0 - 2026-06-17 #
Added #
- Write-only access: a
writeOnlyrequest asks forWRITE_CALENDARonly.READ_CALENDARandWRITE_CALENDARshare theCALENDARgroup, so a later full request escalates to read access with no dialog (#89). createEventwith nocalendarIdresolves a default calendar — the primary writable calendar, falling back to the first writable one (#88).- Event reminders via
CalendarContract.Remindersrows andEvents.HAS_ALARM(#87).
Fixed #
- Permanent-denial detection keys off
WRITE_CALENDAR, and a cancelled permission dialog no longer reportsdenied(#108). createEventwith nocalendarIdreportspermissionDeniedrather than "no writable calendar" when it can't read the calendar list to resolve a default (#112).
0.6.0 - 2026-06-16 #
Changed #
- Breaking:
updateRecurringtakes the anchored occurrence's new start (newStartMillis) instead ofstartMinuteOfDay.shiftDatetranslates the series anchor by the wall-clock delta (calendar-day count + time-of-day) in the event'sEVENT_TIMEZONE, so a move can change the day and time together and stays correct across DST (#103).
Fixed #
- A time-only
allEventsedit now re-writes the unchanged RRULE so the CalendarProvider re-expands the Instances cache; without it a moved DTSTART could read back as a single occurrence.
Behaviour #
updateRecurringrejects astartthat moves the day of a series whose RRULE pins it (BYDAY/BYMONTHDAY/BYMONTH) unless a new rule is also supplied (dayMoveConflictsWithRule).
0.5.2 - 2026-06-15 #
Fixed #
listEventsnow returns a zero-duration (instantaneous) event that sits exactly on the query's start time; the half-open overlap check previously excluded it (#416)
0.5.1 - 2026-06-15 #
- No functional changes; version aligned with the rest of the suite for the 0.5.1 release
0.5.0 - 2026-06-11 #
Changed #
- Breaking: recurring-edit split —
updateRecurring/deleteRecurringaccept onlyallEventsandthisAndFollowing; single occurrences go throughupdateEvent/deleteEventwith an occurrence timestamp (detached exception rows; deletes viaSTATUS_CANCELEDexceptions) updateRecurringtime changes preserve each occurrence's date, replacing only the time-of-day;thisAndFollowingtruncates the master withUNTILto match iOS'sEKSpan.futureEventssplit
Fixed #
- Calendar Provider work now runs on a background thread. Method-channel handlers were doing blocking provider queries on the main thread, which could ANR on large calendars (#73). Thanks @mauriziopinotti for the report and a working proof-of-fix.
- A NULL
STATUScolumn reads back asnone; it was defaulted to0, which isSTATUS_TENTATIVE, so status-less events came back tentative (#70) — thanks @mauriziopinotti
0.4.0 - 2026-05-25 #
Added #
updateRecurring()— series-level recurring-event edits withEventSpan(allEvents / thisAndFollowing / thisInstance).thisAndFollowingtruncates the master withUNTILand starts a new series;thisInstancewrites a detached exception event.deleteRecurring()—allEventsdeletes the master;thisAndFollowingtruncates viaUNTIL;thisInstanceappends to the master'sEXDATEcolumn (no separate exception event needed).urlfield on events viaEvents.CUSTOM_APP_URIPatch<T>support inupdateEvent()— null leaves a field unchanged,Patch.setwrites,Patch.clearwrites the empty string to removeeditflag onshowEvent()— firesIntent.ACTION_EDITinstead ofACTION_VIEW
Fixed #
- Event deletion now uses sync-adapter context so EventKit-equivalent listEvents calls stop returning the deleted row immediately
Changed #
- Extracted all-day date-conversion helpers; no behaviour change
0.3.5 - 2026-04-20 #
Fixed #
- All-day events appearing in wrong day's query in non-UTC timezones (#20)
PermissionServiceacceptsContext—hasPermissions()works without an Activity (#31)
0.3.4 - 2026-02-08 #
Version sync with other packages. No functional changes.
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 #
CreateCalendarOptionsAndroidfor specifying custom account name when creating calendarscreateCalendar()now accepts optionalaccountNameparameter via platform options
0.3.1 - 2025-11-07 #
Fixed #
showEvent()now usesstartActivityForResult()to properly await until the calendar activity is dismissed
0.3.0 - 2024-11-05 #
Changed #
- BREAKING:
deleteEvent()now always deletes entire series for recurring events (removeddeleteAllInstancesparameter) - BREAKING:
updateEvent()now always updates entire series for recurring events (removedupdateAllInstancesparameter) - Native code now extracts event ID from instance ID format automatically
Removed #
- BREAKING:
NOT_SUPPORTEDerror code (no longer needed as single-instance operations are not attempted)
0.2.0 - 2024-11-05 #
0.1.1 - 2024-11-04 #
Added #
- ProGuard/R8 rules to prevent code stripping in release builds
- Automatic consumer ProGuard rules configuration
0.1.0 - 2024-11-04 #
Initial release.