Eventide provides a 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 |
🚧 | Recurring events |
🚧 | Attendees |
🚧 | Streams |
NOTE: Eventide handles timezones as UTC. It's up to you to make sure he sends the right data with a timezone aware DateTime class.
Nothing to add on your side. All is already declared in eventide's AndroidManifest.xml
To read/write calendar data, your app must include the following permissions in its info.plist file.
<key>NSCalendarsUsageDescription</key>
<string>We need access to your calendar to add information about your trip.</string>
<key>NSCalendarsFullAccessUsageDescription</key>
<string>We need access to your calendar to add information about your trip.</string>
<key>NSCalendarsWriteOnlyAccessUsageDescription</key>
<string>We need access to your calendar to add information about your trip.</string>
import 'package:eventide/eventide.dart';
final eventide = Eventide();
final calendar = await eventide.createCalendar('Work', Colors.red);
final event = await eventide.createEvent(
calendarId: calendar.id,
title: 'Meeting',
startDate: DateTime.now(),
endDate: DateTime.now().add(Duration(hours: 1)),
);
final updatedEvent = await eventide.addReminder(
durationBeforeEvent: Duration(minutes: 15),
eventId: event.id,
);
You can find more in the example app.
Copyright © 2025 SNCF Connect & Tech. This project is licensed under the MIT License - see the LICENSE file for details.