Eventide provides an easy-to-use flutter interface to access & modify native device calendars (iOS & Android).
| Eventide | |
|---|---|
| ✅ | Automatic permission handling |
| ✅ | Create/retrieve/delete calendars |
| ✅ | Create/retrieve/delete events |
| ✅ | Create/delete reminders |
| ✅ | Custom exceptions |
| ✅ | Attendees |
| 🏗️ | Edit calendars/events |
| 💡 | Recurring events |
Detailed setup for Android and iOS can be found in PLATFORM_SETUP.md.
Eventide automatically handles the permission flow for you - no need to manually request permissions. See API_REFERENCE.md.
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',
);- Accounts
- Calendars
- Events
- Reminders
- Attendees
- Automatic permission handling
- Exception Handling
- Platform Setup
Copyright © 2026 SNCF Connect & Tech. This project is licensed under the MIT License.
Please file any issues, bugs or feature requests as an issue on the Github page.