eventkitlisted
Install: claude install-skill thiennc-tesoglobal/ios-skills
# EventKit
Use EventKit for calendar and reminder authorization, CRUD, recurrence, alarms,
and system editors.
## Contents
- [Availability](#availability)
- [Setup](#setup)
- [Authorization](#authorization)
- [Creating Events](#creating-events)
- [Fetching Events](#fetching-events)
- [Reminders](#reminders)
- [Recurrence Rules](#recurrence-rules)
- [Alarms](#alarms)
- [EventKitUI Controllers](#eventkitui-controllers)
- [Observing Changes](#observing-changes)
- [Common Mistakes](#common-mistakes)
- [Review Checklist](#review-checklist)
- [References](#references)
## Availability
- **iOS 17+:** Use granular full/write-only request methods; legacy
`requestAccess(to:)` no longer prompts and throws. The system event editor can
create an event without app calendar access. For iOS 10–16, guard those APIs,
use the legacy request plus `NSCalendarsUsageDescription` /
`NSRemindersUsageDescription`; EventKitUI may also need
`NSContactsUsageDescription`.
- **iOS 26+:** The typed `EKEventStore.EventStoreChanged` / `.changed` message is
available behind a guard. Keep `EKEventStoreChanged` for earlier systems.
## Setup
### Info.plist Keys
Add the usage description for the access path selected in
[Authorization](#authorization). Do not request broader access merely to simplify
the setup path.
The authorization-free system editor path needs no calendar usage string.
Direct writes need write-only or full access; reads need full access. Reminders
have only full access.
###