📆 Eventide

pub package License: MIT Tests codecov

Eventide provides an easy-to-use flutter interface to access & modify native device calendars (iOS & Android).


🔥 Features

Eventide
:white_check_mark: Automatic permission handling
:white_check_mark: Create/retrieve/delete calendars
:white_check_mark: Create/retrieve/delete events
:white_check_mark: Create/delete reminders
:white_check_mark: Custom exceptions
:white_check_mark: Attendees
:building_construction: Edit calendars/events
:bulb: Recurring events

🚀 Quick Start

Platform Setup

Detailed setup for Android and iOS can be found in PLATFORM_SETUP.md.

Automatic permission handling

Eventide automatically handles the permission flow for you - no need to manually request permissions. See API_REFERENCE.md.

Usage

import 'package:eventide/eventide.dart';

final eventide = Eventide();

// Create an event in calendar
final calendars = await eventide.retrieveCalendars();

await eventide.createEvent(
  calendarId: calendars.first.id,
  title: 'Important Meeting',
  startDate: DateTime.now().add(Duration(days: 1)),
  endDate: DateTime.now().add(Duration(days: 1, hours: 1)),
  reminders: [const Duration(minutes: 15)],
);

// Create an event in the default calendar (Privacy-first)
await eventide.createEventInDefaultCalendar(
  title: 'Important Meeting',
  startDate: DateTime.now().add(Duration(days: 1)),
  endDate: DateTime.now().add(Duration(days: 1, hours: 1)),
);

// Create an event using native platform UI (No permissions required)
await eventide.createEventThroughNativePlatform(
  title: 'Team Standup',
);

📚 Documentation


License

Copyright © 2026 SNCF Connect & Tech. This project is licensed under the MIT License.

Feedback

Please file any issues, bugs or feature requests as an issue on the Github page.

Libraries

eventide