PackageTrack
Sign in Get early access

device_calendar_plus_ios

iOS implementation of the device_calendar_plus plugin.

0.7.0 7.6K downloads/mo #3303 most downloaded on pub.dev bullet-to/device_calendar_plus

What this package is like to depend on

Last release 2 months ago

17 Jun 2026

Ships fairly regularly

a new release about every 6 weeks

Nearly every release is documented

notes for 15 of 15 stable releases

Nothing withdrawn

no release was ever pulled

9 months old

15 releases · first in 2025

15 releases in the last 12 months

see the full history below

Release timeline

15 releases · Nov 2025 to Jun 2026
2026
Release Pre-release

Releases

latest 15
  1. 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 via requestWriteOnlyAccessToEvents (iOS 17+). It is not a permanent ceiling — a later full request re-prompts and upgrades the app in-app (#89).
    • createEvent with no calendarId writes to defaultCalendarForNewEvents (#88).
    • Event reminders via EKAlarm(relativeOffset:) on EKEvent.alarms (#87).

    Changed

    • Simplified the permission request into a single iOS 17 availability dispatch (#108).
    Open source →
  2. 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. shiftStart translates the series anchor by the wall-clock delta (calendar-day count + time-of-day) in the event's EKEvent.timeZone, so a move can change the day and time together and stays correct across DST (#103).

    Behaviour

    • updateRecurring rejects a start that moves the day of a series whose EKRecurrenceRule pins it (daysOfTheWeek / daysOfTheMonth / monthsOfTheYear) unless a new rule is also supplied (dayMoveConflictsWithRule).
    Open source →
  3. 0.5.2 15 Jun 2026
    Release notes

    Fixed

    • EventKit reads and writes now run on a background serial queue instead of the main thread, so operations on large calendars no longer stall the UI (#79)
    • listEvents over a span longer than EventKit's ~4-year predicate limit now chunks the query into windows and de-duplicates recurring instances across window boundaries, so long ranges return every event exactly once, sorted (#94)
    • createCalendar now fails with a clear error on sources that can't hold calendars (e.g. subscribed/holiday sources) instead of an opaque EventKit failure (#96)
    • updateRecurring(thisAndFollowing, recurrenceRule: Patch.clear()) now splits the series — truncating the master before the occurrence and detaching a standalone non-recurring event at the split point — instead of collapsing the whole series into a single event. Matches Android's behavior (#93)
    Open source →
  4. 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

    Fixed

    • showEventModal(edit: true) no longer crashes with NSInvalidArgumentException ("Pushing a navigation controller is not supported"). EKEventEditViewController is a UINavigationController subclass and is now presented directly instead of being wrapped in another navigation controller (#77)
    Open source →
  5. 0.5.0 11 Jun 2026
    Release notes

    Changed

    • Breaking: recurring-edit split — updateRecurring / deleteRecurring accept only allEvents and thisAndFollowing (both EKSpan.futureEvents); single occurrences go through updateEvent / deleteEvent with an occurrence timestamp (EKSpan.thisEvent)
    • updateRecurring time changes preserve each occurrence's date, replacing only the time-of-day components

    Fixed

    • Occurrence edits validate before mutating the live EKEvent; an edit whose startDate passes the occurrence's untouched end now fails with invalidArguments (matching Android) instead of saving an inverted event
    Open source →
  6. 0.4.0 25 May 2026
    Release notes

    Added

    • updateRecurring() — series-level recurring-event edits with EventSpan (allEvents / thisAndFollowing / thisInstance), backed by EKSpan.futureEvents and EKSpan.thisEvent
    • deleteRecurring() — same EventSpan semantics on EKEventStore.remove
    • url field on events via EKEvent.url
    • Patch<T> support in updateEvent() — null leaves a field unchanged, Patch.set writes, Patch.clear nils the field on the EKEvent
    • edit flag on showEvent() — presents EKEventEditViewController instead of EKEventViewController
    Open source →
  7. 0.3.5 20 Apr 2026
    Release notes

    Fixed

    • Calendar source lookup fallback when default source is unavailable (#13)
    • createCalendar default fallback prefers iCloud over other CalDAV sources (#33)
    Open source →
  8. 0.3.4 08 Feb 2026
    Release notes

    Added

    • Swift Package Manager support (CocoaPods continues to work as before)
    Open source →
  9. 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 →
  10. 0.3.2 19 Dec 2025
    Release notes

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

    Open source →
    Release notes

    Changed

    • createCalendar() signature updated to accept optional platformOptions parameter (ignored on iOS)
    Open source →
  11. 0.3.1 07 Nov 2025
    Release notes

    Fixed

    • showEvent() now properly stores result callback and calls it in eventViewController(_:didCompleteWith:) delegate method after modal is dismissed
    Open source →
  12. 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 using EKSpan.futureEvents on master event (removed deleteAllInstances parameter)
    • BREAKING: updateEvent() now always updates entire series for recurring events using EKSpan.futureEvents on master event (removed updateAllInstances parameter)
    • Native code now extracts event ID from instance ID format automatically and fetches master event

    Removed

    • BREAKING: NOT_SUPPORTED error code (no longer needed)
    Open source →
  13. 0.2.0 05 Nov 2025
    Release notes

    Added

    • openAppSettings() implementation using UIApplication.openSettingsURLString

    Removed

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

    Version sync with other packages. No functional changes.

    Open source →
  15. 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