Skip to main content

Crate eventkit

Crate eventkit 

Source
Expand description

§EventKit-RS

A Rust library for interacting with macOS Calendar and Reminders via EventKit.

This library provides safe wrappers around the Apple EventKit framework to:

  • Request and check authorization for calendar and reminders access
  • List, create, update, and delete calendar events
  • List, create, update, and delete reminders
  • Manage calendars and reminder lists

§Quick Start

use eventkit::{RemindersManager, EventsManager, Result};

fn main() -> Result<()> {
    // Working with reminders
    let reminders = RemindersManager::new();
    reminders.request_access()?;

    for reminder in reminders.fetch_incomplete_reminders()? {
        println!("Todo: {}", reminder.title);
    }

    // Working with calendar events
    let events = EventsManager::new();
    events.request_access()?;

    for event in events.fetch_today_events()? {
        println!("Event: {}", event.title);
    }

    Ok(())
}

§Platform Support

This library only works on macOS. It requires macOS 10.14 or later for full functionality.

§Privacy Permissions

Your application will need to request calendar and/or reminders permissions. Make sure to include the appropriate keys in your Info.plist:

  • NSRemindersUsageDescription - for reminders access
  • NSCalendarsFullAccessUsageDescription - for calendar access (macOS 14+)
  • NSCalendarsUsageDescription - for calendar access (older macOS)

Modules§

location
CoreLocation integration for getting the user’s current location.
mcp
EventKit MCP Server

Structs§

AlarmInfo
An alarm attached to a reminder or event.
CalendarInfo
Represents a calendar (reminder list or event calendar).
EventItem
Represents a calendar event with its properties.
EventsManager
The events manager providing access to Calendar events via EventKit
ParticipantInfo
A participant (attendee) on an event or reminder.
RecurrenceRule
A recurrence rule describing how a reminder or event repeats.
ReminderItem
Represents a reminder item with its properties
RemindersManager
The main reminders manager providing access to EventKit functionality
SourceInfo
An account source (iCloud, Local, Exchange, etc.)
StructuredLocation
A structured location for geofenced alarms.

Enums§

AlarmProximity
Proximity trigger for a location-based alarm.
AuthorizationStatus
Authorization status for reminders access
CalendarType
Type of calendar/source.
EventAvailability
Event availability for scheduling.
EventKitError
Errors that can occur when working with EventKit
EventStatus
Event status.
ParticipantRole
Participant role in an event.
ParticipantStatus
Participant RSVP status.
RecurrenceEndCondition
When a recurrence ends.
RecurrenceFrequency
How often a recurrence repeats.

Type Aliases§

RemindersError
Backward compatibility alias
Result
Result type for EventKit operations