📆 Eventide
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
- Accounts
- Calendars
- Events
- Reminders
- Attendees
- Automatic permission handling
- Exception Handling
- Platform Setup
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.