Search packages, repositories and app categories

Package detailsv3.1.1

add_2_calendar

A really simple Flutter plugin to add events to each platform's default calendar.

AndroidiOS
30-day downloads
159K
Likes
364
Pub points
160

Install package

flutter pub add add_2_calendar

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

A lightweight Flutter plugin that enables adding calendar events to the default calendar on Android and iOS. It provides a simple API to create and schedule events with minimal setup, making it ideal for apps needing calendar integration. The plugin handles platform-specific differences automatically, ensuring consistent behavior across devices. It supports basic event details like title, date, time, and description.

Use cases

  • Scheduling appointments
  • Adding reminders to calendars
  • Integrating event creation in productivity apps
  • Enabling event sharing from within an app
  • Supporting meeting invitations

Key features

  • Cross-platform compatibility
  • Simple event creation API
  • Automatic platform handling
  • Supports event title, date, time, and description
  • Minimal configuration required

Suitable for

  • Developers building calendar-integrated apps
  • Apps requiring quick event addition
  • Projects targeting both Android and iOS
  • Teams wanting straightforward calendar access

Considerations

  • Requires user permission to access calendar
  • Limited to basic event properties
  • No support for recurring events
  • Depends on device's default calendar app
  • May require additional permissions on Android

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

add_2_calendar

A really simple Flutter plugin to add events to each platform's default calendar.

Installation

In your pubspec.yaml file within your Flutter Project:

dependencies:
  add_2_calendar: ^2.1.2
Android integration

The plugin doesn't need any special permissions by default to add events to the calendar. However, events can also be added without launching the calendar application, for this it is needed to add calendar permissions to your AndroidManifest.xml

<uses-permission android:name="android.permission.WRITE_CALENDAR" />
<uses-permission android:name="android.permission.READ_CALENDAR" />

Starting from API 30 Android requires package visibility configuration in your AndroidManifest.xml. A element must be added to your manifest as a child of the root element. See the Android documentation for examples of other queries.

<queries>
  <intent>
    <action android:name="android.intent.action.INSERT" />
    <data android:mimeType="vnd.android.cursor.item/event" />
  </intent>
</queries>
iOS integration

In order to make this plugin work on iOS 10+, be sure to add this to your info.plist file:

<key>NSCalendarsUsageDescription</key>
<string>INSERT_REASON_HERE</string>

NSContactsUsageDescription is required for the location autocomplete once Apple's UI is opened, so it is highly recommended that you also add the key, the app might crash otherwise.

<key>NSContactsUsageDescription</key>
<string>INSERT_REASON_HERE</string>

Use it

import 'package:add_2_calendar/add_2_calendar.dart';

final Event event = Event(
      title: 'Event title',
      description: 'Event description',
      location: 'Event location',
      startDate: DateTime(/* Some date here */),
      endDate: DateTime(/* Some date here */),
      iosParams: IOSParams( 
        reminder: Duration(/* Ex. hours:1 */), // on iOS, you can set alarm notification after your event.
        url: 'https://www.example.com', // on iOS, you can set url to your event.
      ),
      androidParams: AndroidParams( 
        emailInvites: [], // on Android, you can add invite emails to your event.
      ),
    );
...
Add2Calendar.addEvent2Cal(event);
...

This will launch the default calendar application to confirm the event and add it to your calendar.

Recurring events

You can add recurrency to your events by specifying a frequency. Optional parameters such as interval, ocurrances and endDate can also be added.

 Event(
   ...
  recurrence: Recurrence(
        frequency: Frequency.monthly,
        interval: 2,
        ocurrences: 6,
      ),
    );

iOS language support

By default the ios screen that appears to save the event will be displayed in English, to support diffrent languages, add to your info.plist the languages you are supporting.

<key>CFBundleLocalizations</key>
	<array>
		<string>en</string>
		<string>es</string>
		<string>ja</string>
	</array>

Note: See DateTime docs to know what valid date could be correct in above piece of code.

Example

Please run the app in the example/ folder to start playing!

Categories

Source repository

Projects using this package