calendar-integration

Access iOS calendars and synchronize events into SwiftData models.

5|Updated Jan 27, 2026
One-click install
npx skills add https://github.com/nsnguyen/ios_app_rag_calendar --skill calendar-integration
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: calendar-integration
Source: https://github.com/nsnguyen/ios_app_rag_calendar/tree/main/.claude/skills/calendar-integration
Command: npx skills add https://github.com/nsnguyen/ios_app_rag_calendar --skill calendar-integration

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This skill enables an iOS SwiftUI planner app to access and read the user's calendars, display native calendar interfaces, and synchronize events into local SwiftData models.

Core Features & Use Cases

  • Request calendar access using iOS 17+ API (requestFullAccessToEvents) and handle permission states.
  • Fetch events by date range with consideration of a 4-year maximum range and sorting by startDate.
  • Present native EventKitUI for viewing and editing events.
  • Sync events to SwiftData MeetingRecord and maintain mappings using eventIdentifier for persistence.
  • Handle edge cases like all-day events, recurring instances, and permission revocation.

Quick Start

Fetch events for the next 7 days from all calendars and present them with the native EventKitUI for viewing and editing.

Frequently Asked Questions about calendar-integration

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I request full access to events in iOS 18 SwiftUI apps?

To request full access to events in iOS 18 SwiftUI apps, use the EventKit API `requestFullAccessToEvents` and handle the resulting permission states appropriately. You must also include the `NSCalendarsFullAccessUsageDescription` key in your Info.plist.

How do I fetch and sort calendar events by date range in SwiftData?

Fetch calendar events by date range using EventKit, applying a 4-year maximum range limit and sorting the results by `startDate`. You can then synchronize these fetched events into local SwiftData models like `MeetingRecord` for persistence.

Can I present native EventKitUI interfaces for viewing and editing events in SwiftUI?

Yes, you can present native EventKitUI interfaces for viewing and editing events directly within a SwiftUI application. This allows users to interact with their calendar data through familiar system-provided views without building custom UI components.

How do I handle all-day events and recurring instances when syncing EventKit data?

Handle all-day events and recurring instances during EventKit data synchronization by mapping individual occurrences using the `eventIdentifier`. This ensures accurate persistence and maintains correct mappings when syncing events to local SwiftData models.

Why does calendar access fail in my SwiftUI app after permission revocation?

Calendar access fails in your SwiftUI app after permission revocation because the system restricts EventKit data retrieval. You must detect this permission state change using `requestFullAccessToEvents` and gracefully handle the revoked authorization in your interface.

Do I need to add privacy usage description keys to Info.plist for EventKit authorization?

Yes, you need to add the `NSCalendarsFullAccessUsageDescription` key to your Info.plist for EventKit authorization. This privacy usage description is mandatory for requesting full access to events and adhering to iOS privacy guidelines.