PackageTrack
Sign in Get early access

device_calendar_plus_android

Android implementation of the device_calendar_plus plugin.

0.7.1 7.9K downloads/mo #3245 most downloaded on pub.dev bullet-to/device_calendar_plus

What this package is like to depend on

Last release 1 months ago

23 Jul 2026

Ships fairly regularly

a new release about every 6 weeks

Nearly every release is documented

notes for 16 of 16 stable releases

Nothing withdrawn

no release was ever pulled

9 months old

16 releases · first in 2025

16 releases in the last 12 months

see the full history below

Release timeline

16 releases · Nov 2025 to Jul 2026
2026
Release Pre-release

Releases

latest 16
  1. 0.7.1 23 Jul 2026
    Release notes

    Docs + packaging polish. No code or behaviour changes.

    Changed

    • Added the device pub.dev topic (dropped federated to stay within the five-topic limit).

    Docs

    • Slimmed the README to an overview plus a getting-started snippet, with the worked examples moved into focused topic guides under doc/.
    • Trimmed the public API doc comments to the consumer-facing contract and removed native-API implementation details.
    Open source →
    Release notes

    Added

    • Event maps include colorHex read from Events.EVENT_COLOR when the event has a custom color; absent otherwise (#117).
    Open source →
  2. 0.7.0 17 Jun 2026
    Release notes

    Feature release. App-facing API is additive; device_calendar_plus_platform_interface has breaking signature changes for platform implementers.

    Added

    • Write-only accessrequestPermissions(level: CalendarAccessLevel.writeOnly) for the gentler add-only prompt (#89).
    • Automatic permissionsDeviceCalendar.instance.autoPermissions = AutoPermissionMode.asNeeded | .full; methods request access on first use (#90).
    • Optional calendarId — omit it on createEvent to write to the default calendar (#88).
    • Event remindersreminders: List<Duration> on create, Patch<List<Duration>> on update, Event.reminders read back; minute-granular relative offsets (#87).

    Fixed

    • Android: honest permissionDenied (not "no writable calendar") when a default can't be resolved (#112); tighter denial reporting (#108).
    • Docs: iOS write-only re-prompts and upgrades in-app (#109).

    All four packages bumped 0.6.0 → 0.7.0 in lockstep.

    Open source →
    Release notes

    Added

    • Write-only access: a writeOnly request asks for WRITE_CALENDAR only. READ_CALENDAR and WRITE_CALENDAR share the CALENDAR group, so a later full request escalates to read access with no dialog (#89).
    • createEvent with no calendarId resolves a default calendar — the primary writable calendar, falling back to the first writable one (#88).
    • Event reminders via CalendarContract.Reminders rows and Events.HAS_ALARM (#87).

    Fixed

    • Permanent-denial detection keys off WRITE_CALENDAR, and a cancelled permission dialog no longer reports denied (#108).
    • createEvent with no calendarId reports permissionDenied rather than "no writable calendar" when it can't read the calendar list to resolve a default (#112).
    Open source →
  3. 0.6.0 16 Jun 2026
    Release notes

    chore(release): prepare 0.6.0

    Open source →
    Release notes

    Changed

    • Breaking: updateRecurring takes the anchored occurrence's new start (newStartMillis) instead of startMinuteOfDay. shiftDate translates the series anchor by the wall-clock delta (calendar-day count + time-of-day) in the event's EVENT_TIMEZONE, so a move can change the day and time together and stays correct across DST (#103).

    Fixed

    • A time-only allEvents edit 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

    • updateRecurring rejects a start that moves the day of a series whose RRULE pins it (BYDAY / BYMONTHDAY / BYMONTH) unless a new rule is also supplied (dayMoveConflictsWithRule).
    Open source →
  4. 0.5.2 15 Jun 2026
    Release notes

    Fixed

    • listEvents now returns a zero-duration (instantaneous) event that sits exactly on the query's start time; the half-open overlap check previously excluded it (#416)
    Open source →
  5. 0.5.1 15 Jun 2026
    Release notes
    • iOS: fix showEventModal(edit: true) crash (#77)
    • Docs: clarify showEventModal view modal is not read-only
    Open source →
    Release notes
    • No functional changes; version aligned with the rest of the suite for the 0.5.1 release
    Open source →
  6. 0.5.0 11 Jun 2026
    Release notes

    Changed

    • Breaking: recurring-edit split — updateRecurring / deleteRecurring accept only allEvents and thisAndFollowing; single occurrences go through updateEvent / deleteEvent with an occurrence timestamp (detached exception rows; deletes via STATUS_CANCELED exceptions)
    • updateRecurring time changes preserve each occurrence's date, replacing only the time-of-day; thisAndFollowing truncates the master with UNTIL to match iOS's EKSpan.futureEvents split

    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 STATUS column reads back as none; it was defaulted to 0, which is STATUS_TENTATIVE, so status-less events came back tentative (#70) — thanks @mauriziopinotti
    Open source →
  7. 0.4.0 25 May 2026
    Release notes

    Added

    • updateRecurring() — series-level recurring-event edits with EventSpan (allEvents / thisAndFollowing / thisInstance). thisAndFollowing truncates the master with UNTIL and starts a new series; thisInstance writes a detached exception event.
    • deleteRecurring()allEvents deletes the master; thisAndFollowing truncates via UNTIL; thisInstance appends to the master's EXDATE column (no separate exception event needed).
    • url field on events via Events.CUSTOM_APP_URI
    • Patch<T> support in updateEvent() — null leaves a field unchanged, Patch.set writes, Patch.clear writes the empty string to remove
    • edit flag on showEvent() — fires Intent.ACTION_EDIT instead of ACTION_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
    Open source →
  8. 0.3.5 20 Apr 2026
    Release notes

    Fixed

    • All-day events appearing in wrong day's query in non-UTC timezones (#20)
    • PermissionService accepts ContexthasPermissions() works without an Activity (#31)
    Open source →
  9. 0.3.4 08 Feb 2026
    Release notes

    Version sync with other packages. No functional changes.

    Open source →
  10. 0.3.3 21 Dec 2025
    Release notes

    Fixed

    • Fixed parsing of instanceId for events with @ in their event ID (e.g., Google Calendar IDs like [email protected])
    Open source →
  11. 0.3.2 19 Dec 2025
    Release notes

    feat(android): add CreateCalendarOptionsAndroid for custom account na…

    Open source →
    Release notes

    Added

    • CreateCalendarOptionsAndroid for specifying custom account name when creating calendars
    • createCalendar() now accepts optional accountName parameter via platform options
    Open source →
  12. 0.3.1 07 Nov 2025
    Release notes

    Fixed

    • showEvent() now uses startActivityForResult() to properly await until the calendar activity is dismissed
    Open source →
  13. 0.3.0 05 Nov 2025
    Release notes

    chore: bump version and update changelogs

    Open source →
    Release notes

    Changed

    • BREAKING: deleteEvent() now always deletes entire series for recurring events (removed deleteAllInstances parameter)
    • BREAKING: updateEvent() now always updates entire series for recurring events (removed updateAllInstances parameter)
    • Native code now extracts event ID from instance ID format automatically

    Removed

    • BREAKING: NOT_SUPPORTED error code (no longer needed as single-instance operations are not attempted)
    Open source →
  14. 0.2.0 05 Nov 2025
    Release notes

    Added

    • openAppSettings() implementation to open Android app settings via Intent

    Removed

    • BREAKING: getPlatformVersion() implementation (unused boilerplate)
    Open source →
  15. 0.1.1 04 Nov 2025
    Release notes

    Added

    • ProGuard/R8 rules to prevent code stripping in release builds
    • Automatic consumer ProGuard rules configuration
    Open source →
  16. 0.1.0 04 Nov 2025
    Release notes

    Initial release.

    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive