<!--
{
  "documentType" : "article",
  "framework" : "Technotes",
  "identifier" : "/documentation/Technotes/tn3132-changes-EventKit-and-EventKitUI-in-iOS16",
  "metadataVersion" : "0.1.0",
  "role" : "article",
  "title" : "TN3132: Changes to EventKit and EventKitUI in iOS 16"
}
-->

# TN3132: Changes to EventKit and EventKitUI in iOS 16

Test your apps against EventKit and EventKitUI API changes in iOS 16.

## Overview

The iOS 16 SDK introduces some changes to the EventKit and EventKitUI frameworks.
This document highlights some of the major changes. To learn about related changes in macOS Ventura 13, see [TN3130: Changes to EventKit in macOS Ventura 13](/documentation/Technotes/tn3130-changes-to-eventKit-in-macOS13-ventura).

For apps running on systems prior to iOS 16, built with Xcode 13 or earlier and linked against older versions of the iOS
SDK, the legacy behavior remains in place when using these frameworks. When you run your app on iOS 16, and have
built it with Xcode 14 and linked against the iOS 16 SDK, you may see behavior
that you are unfamiliar with when using EventKit or EventKitUI. To identify these
changes in behavior, thoroughly test your app on each major OS version it supports
on real hardware. Confirm that your implementation of EventKit or EventKitUI behaves as
you expect in each OS version and update your code where needed.  If you notice an
unexpected behavior in EventKit, report it using [Feedback Assistant](https://developer.apple.com/bug-reporting/).

## EKCalendarChooser

Setting the <doc://com.apple.documentation/documentation/EventKitUI/EKCalendarChooser/selectedCalendars> property of a calendar chooser view controller no longer calls the <doc://com.apple.documentation/documentation/EventKitUI/EKCalendarChooserDelegate/calendarChooserSelectionDidChange(_:)> delegate method. `calendarChooserSelectionDidChange(_:)` is only called when the user selects a calendar in the view controller.

## EKEventStore

### Committing changes

When you call <doc://com.apple.documentation/documentation/EventKit/EKEventStore/saveCalendar(_:commit:)>, <doc://com.apple.documentation/documentation/EventKit/EKEventStore/removeCalendar(_:commit:)>, <doc://com.apple.documentation/documentation/EventKit/EKEventStore/save(_:span:commit:)>, <doc://com.apple.documentation/documentation/EventKit/EKEventStore/remove(_:span:commit:)>, <doc://com.apple.documentation/documentation/EventKit/EKEventStore/save(_:commit:)>, or <doc://com.apple.documentation/documentation/EventKit/EKEventStore/remove(_:commit:)> methods with the `commit` parameter set to `true`, <doc://com.apple.documentation/documentation/EventKit/EKEventStore> attempts to immediately save and commit your changes to the event store. If the commit fails,
`EKEventStore` automatically rolls back all changes that have been saved but aren’t yet committed to
the event store.

In the legacy behavior, objects remain saved but uncommitted in the event store when the commit failed.

### Fetching events

<doc://com.apple.documentation/documentation/EventKit/EKEventStore/events(matching:)> and <doc://com.apple.documentation/documentation/EventKit/EKEventStore/enumerateEvents(matching:using:)> now return events that have been saved but weren’t yet committed to the event store.

In the legacy behavior, `events(matching:)` and `enumerateEvents(matching:using:)` only return events that have been saved and committed to the event store.

### Recurring events

If you are saving a detached occurrence of a recurring event, and you specify <doc://com.apple.documentation/documentation/EventKit/EKSpan/futureEvents> for the `span` parameter of the <doc://com.apple.documentation/documentation/EventKit/EKEventStore/save(_:span:commit:)> method, your changes apply to all future occurrences of the event.

In the legacy behavior, your changes only apply to this instance of the recurring event.

## Revision History

- **2022-08-16** First published.

## See Also

[TN3130: Changes to EventKit in macOS Ventura 13](/documentation/Technotes/tn3130-changes-to-eventKit-in-macOS13-ventura)

Test your apps against EventKit API changes in macOS Ventura 13.

[TN3153: Adopting API changes for EventKit in iOS 17, macOS 14, and watchOS 10](/documentation/Technotes/tn3153-adopting-api-changes-for-eventKit-in-iOS-macOS-and-watchOS)

Test your existing apps against EventKit API latest changes.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)