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)

Structs§

CalendarInfo
Represents a calendar (reminder list)
EventItem
Represents a calendar event with its properties
EventsManager
The events manager providing access to Calendar events via EventKit
ReminderItem
Represents a reminder item with its properties
RemindersManager
The main reminders manager providing access to EventKit functionality

Enums§

AuthorizationStatus
Authorization status for reminders access
EventKitError
Errors that can occur when working with EventKit

Type Aliases§

RemindersError
Backward compatibility alias
Result
Result type for EventKit operations