eventkitlisted
Install: claude install-skill caglarbaranbora/Apple-Agent-Kit
# EventKit — Foundations Skill
## Purpose
Route EventKit implementation tasks to the minimum required EventKit
Knowledge Contracts. v1 scope is calendar and reminder access through
`EKEventStore` -- authorization, event/reminder CRUD, fetch predicates,
recurrence rules, and the point where a custom-UI feature should instead
hand off to EventKitUI's prebuilt view controllers -- not multi-account
calendar-source management, not CalDAV/Exchange specifics, not live
external-change syncing, and not EventKit inside a widget extension.
## Routing
Load only the contracts relevant to the task. All paths relative to
knowledge/eventkit/.
- Checking `EKAuthorizationStatus`; calling `requestFullAccessToEvents(completion:)`/`requestWriteOnlyAccessToEvents(completion:)`/`requestFullAccessToReminders(completion:)`/the legacy `requestAccess(to:completion:)`; or declaring the matching Info.plist usage-description key -> authorization-and-access-levels.md
- Creating/saving/removing an `EKEvent` (`EKEvent(eventStore:)`, `save(_:span:commit:)`, `remove(_:span:commit:)`); choosing a calendar via `defaultCalendarForNewEvents`; or building/running `predicateForEvents(withStart:end:calendars:)` + `events(matching:)` -> event-crud-and-fetch-predicates.md
- Creating/saving/removing an `EKReminder` (`EKReminder(eventStore:)`, `save(_:commit:)`, `remove(_:commit:)`); or building/running `predicateForReminders(in:)` + the asynchronous `fetchReminders(matching:completion:)` -> reminder-crud-and-