eventkit · dpearson2699 — Claude Code skill for EventKit calendars and reminders
A skill that walks your agent through EventKit and EventKitUI code: calendar events, reminders, recurrence rules and the system editors.
npx skills add dpearson2699/swift-ios-skills --skill eventkit -a claude-codeWhat eventkit does
The skill covers EventKit work in an iOS app: asking for access, creating and fetching events, reminders, recurrence rules, alarms, and the EventKitUI controllers. Sections come with Swift samples built on EKEventStore, EKEvent, EKReminder, EKRecurrenceRule, EKEventEditViewController and EKCalendarChooser. There is also a list of common mistakes and a review checklist.
Permissions are where this gets fiddly. On iOS 17 and later the legacy requestAccess(to:) call no longer prompts and throws instead, so the skill points you at the granular methods: requestFullAccessToEvents(), requestWriteOnlyAccessToEvents(), requestFullAccessToReminders(). Write-only access creates events but cannot fetch calendars or events — if you plan to look up or edit what you saved, you need full access. For iOS 10–16 the older request path still applies and belongs behind a version guard.
Your Info.plist needs the usage string that matches the chosen path: NSCalendarsFullAccessUsageDescription, NSCalendarsWriteOnlyAccessUsageDescription or NSRemindersFullAccessUsageDescription. The system event editor can create an event with no calendar access at all. Keep one EKEventStore instance and reuse it; objects from separate stores do not mix. Event queries run synchronously and are capped at a four-year span.
What it helps with
- request calendar and reminder access the iOS 17 way
- save a new event into a chosen calendar
- set up a repeating event with
EKRecurrenceRule - list writable calendars and pick one for saving
- present the system event editor with
EKEventEditViewController
Example prompts for the agent
- Add full calendar access and a Swift function that creates an event
- Create a reminder with a due date using
EKReminderand save it - Check this EventKit code for permission mistakes
How to install eventkit
1Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill eventkit -a claude-code2Manually: put the files in place
~/.claude/skills/eventkit/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/eventkit/
1Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill eventkit -a codex2Manually: put the files in place
.agents/skills/eventkit/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill eventkit -a cursor2Manually: put the files in place
.cursor/skills/eventkit/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install dpearson2699/swift-ios-skills eventkit2Manually: put the files in place
.github/skills/eventkit/SKILL.md1Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill eventkit -a gemini-cli2Platform CLI
gemini skills install https://github.com/dpearson2699/swift-ios-skills --path skills/eventkitManually: put the files in place
.devin/skills/eventkit/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill eventkit -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about eventkit
How do I install eventkit in Claude Code?
Run npx skills add dpearson2699/swift-ios-skills --skill eventkit -a claude-code. The skill file then lands at ~/.claude/skills/eventkit/SKILL.md.
What does eventkit do?
It gives the agent a reference for EventKit and EventKitUI: authorization, event CRUD, reminders, recurrence, alarms, the system editors and calendar change observation.
Why does requestAccess(to:) fail on iOS 17?
That method stopped prompting and now throws. The skill uses the granular calls instead: requestFullAccessToEvents(), requestWriteOnlyAccessToEvents() and requestFullAccessToReminders().
Similar skills
Everything for Mobile →eventkit by other authors comes first.