@capgo/capacitor-calendar
v8.0.8
Published
Capacitor plugin for managing calendar events on iOS and Android, with reminders support on iOS.
Downloads
18,664
Maintainers
Readme
@capgo/capacitor-calendar
Native calendar and reminders access for Capacitor apps. Use it to request calendar permissions, create and edit events, open the system calendar UI, list calendars and events, and manage Reminders on iOS.
This package is a Capgo-maintained version of the calendar plugin originally built by Ehsan Barooni, ported to the Capgo Capacitor plugin template and Capacitor 8.
Table of Contents
- Installation
- Demo
- Setup
- Quick Start
- Common Recipes
- Platform Support
- Compatibility
- Documentation
- Changelog
- API
- License and Attribution
Installation
You can use our AI-Assisted Setup to install the plugin. Add the Capgo skills to your AI tool using the following command:
npx skills add https://github.com/cap-go/capacitor-skills --skill capacitor-pluginsThen use the following prompt:
Use the `capacitor-plugins` skill from `cap-go/capacitor-skills` to install the `@capgo/capacitor-calendar` plugin in my project.If you prefer Manual Setup, install the plugin by running the following commands and follow the platform-specific instructions below:
npm install @capgo/capacitor-calendar
npx cap syncDemo
| iOS | Android |
| :---------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------: |
|
|
|
Setup
This plugin uses native calendar APIs, so each platform needs permission configuration before you request access at runtime.
Official platform references:
iOS
Add the usage descriptions your app needs to ios/App/App/Info.plist. iOS 17 and newer distinguish between write-only and full calendar access.
<key>NSCalendarsUsageDescription</key>
<string>This app needs calendar access.</string>
<key>NSCalendarsWriteOnlyAccessUsageDescription</key>
<string>This app needs permission to add calendar events.</string>
<key>NSCalendarsFullAccessUsageDescription</key>
<string>This app needs permission to read and manage calendar events.</string>
<key>NSRemindersUsageDescription</key>
<string>This app needs reminders access.</string>
<key>NSRemindersFullAccessUsageDescription</key>
<string>This app needs permission to read and manage reminders.</string>Only include the keys that match the APIs your app calls. For example, an app that only creates calendar events with write-only access does not need the Reminders keys.
Android
Add the permissions your app needs to android/app/src/main/AndroidManifest.xml:
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />Then request the matching permission at runtime before reading or writing calendar data.
Quick Start
import { CapacitorCalendar } from '@capgo/capacitor-calendar';
const permission = await CapacitorCalendar.requestFullCalendarAccess();
if (permission.result !== 'granted') {
throw new Error('Calendar permission was not granted');
}
const startDate = Date.now() + 60 * 60 * 1000;
const endDate = startDate + 60 * 60 * 1000;
const { id } = await CapacitorCalendar.createEvent({
title: 'Product review',
location: 'Capgo',
startDate,
endDate,
description: 'Created with @capgo/capacitor-calendar',
});
console.log('Created event', id);Dates are Unix timestamps in milliseconds.
Common Recipes
Open the native event editor
await CapacitorCalendar.createEventWithPrompt({
title: 'Planning session',
location: 'Office',
startDate: Date.now() + 24 * 60 * 60 * 1000,
endDate: Date.now() + 25 * 60 * 60 * 1000,
});On Android, createEventWithPrompt and modifyEventWithPrompt always return null. List events afterward if you need to find the created event ID.
List upcoming events
const now = Date.now();
const oneWeekFromNow = now + 7 * 24 * 60 * 60 * 1000;
const { result: events } = await CapacitorCalendar.listEventsInRange({
from: now,
to: oneWeekFromNow,
});Choose a calendar
const { result: calendars } = await CapacitorCalendar.listCalendars();
const { result: defaultCalendar } = await CapacitorCalendar.getDefaultCalendar();
const calendarId = defaultCalendar?.id ?? calendars[0]?.id;selectCalendarsWithPrompt is available on iOS when you want to show the system calendar picker.
Create an iOS reminder
const permission = await CapacitorCalendar.requestFullRemindersAccess();
if (permission.result === 'granted') {
await CapacitorCalendar.createReminder({
title: 'Send launch notes',
dueDate: Date.now() + 2 * 24 * 60 * 60 * 1000,
notes: 'Created with @capgo/capacitor-calendar',
});
}Reminder APIs are iOS-only.
Platform Support
| Feature | iOS | Android | Web | | --------------------------------------------- | --- | ------- | --- | | Permission checks and requests | Yes | Yes | No | | Create, modify, delete, and list events | Yes | Yes | No | | Native event create, edit, and delete prompts | Yes | Yes | No | | Open the Calendar app | Yes | Yes | No | | List calendars and get the default calendar | Yes | Yes | No | | Calendar sources | Yes | No | No | | System calendar picker | Yes | No | No | | Create, modify, and delete calendars | Yes | Yes | No | | Reminder lists and reminder CRUD | Yes | No | No |
The web implementation exists only as a Capacitor stub and rejects native-only calls.
Compatibility
| Plugin version | Capacitor compatibility | Maintained | | -------------- | ----------------------- | ---------- | | v8.x.x | v8.x.x | Yes |
Documentation
The generated API reference is below. The source type definitions are in src/definitions.ts, and the package homepage is capgo.app/docs/plugins/calendar.
For compatibility with older code, requestPermission(...) and requestAllPermissions() are still available. New apps should prefer requestWriteOnlyCalendarAccess(), requestReadOnlyCalendarAccess(), requestFullCalendarAccess(), and requestFullRemindersAccess().
Changelog
See CHANGELOG.md for release notes.
License and Attribution
This package is released under MPL-2.0. The original @ebarooni/capacitor-calendar project was released under MIT by Ehsan Barooni; see THIRD_PARTY_NOTICES.md for attribution.
API
checkPermission(...)checkAllPermissions()requestPermission(...)requestAllPermissions()requestWriteOnlyCalendarAccess()requestReadOnlyCalendarAccess()requestFullCalendarAccess()requestFullRemindersAccess()createEventWithPrompt(...)modifyEventWithPrompt(...)createEvent(...)modifyEvent(...)deleteEventsById(...)deleteEvent(...)deleteEventWithPrompt(...)listEventsInRange(...)commit()selectCalendarsWithPrompt(...)fetchAllCalendarSources()listCalendars()getDefaultCalendar()openCalendar(...)createCalendar(...)deleteCalendar(...)modifyCalendar(...)fetchAllRemindersSources()openReminders()getDefaultRemindersList()getRemindersLists()createReminder(...)deleteRemindersById(...)deleteReminder(...)modifyReminder(...)getReminderById(...)getRemindersFromLists(...)deleteReminderWithPrompt(...)- Interfaces
- Type Aliases
- Enums
checkPermission(...)
checkPermission(options: { scope: CalendarPermissionScope; }) => Promise<{ result: PermissionState; }>Retrieves the current permission state for a given scope.
| Param | Type |
| ------------- | --------------------------------------------------------------------------------------- |
| options | { scope: CalendarPermissionScope; } |
Returns: Promise<{ result: PermissionState; }>
Since: 0.1.0
checkAllPermissions()
checkAllPermissions() => Promise<{ result: CheckAllPermissionsResult; }>Retrieves the current state of all permissions.
Returns: Promise<{ result: CheckAllPermissionsResult; }>
Since: 0.1.0
requestPermission(...)
requestPermission(options: { scope: CalendarPermissionScope; }) => Promise<{ result: PermissionState; }>Requests permission for a given scope.
| Param | Type |
| ------------- | --------------------------------------------------------------------------------------- |
| options | { scope: CalendarPermissionScope; } |
Returns: Promise<{ result: PermissionState; }>
Since: 0.1.0
requestAllPermissions()
requestAllPermissions() => Promise<{ result: RequestAllPermissionsResult; }>Requests permission for all calendar and reminder permissions.
Returns: Promise<{ result: CheckAllPermissionsResult; }>
Since: 0.1.0
requestWriteOnlyCalendarAccess()
requestWriteOnlyCalendarAccess() => Promise<{ result: PermissionState; }>Requests write access to the calendar.
Returns: Promise<{ result: PermissionState; }>
Since: 5.4.0
requestReadOnlyCalendarAccess()
requestReadOnlyCalendarAccess() => Promise<{ result: PermissionState; }>Requests read access to the calendar.
Returns: Promise<{ result: PermissionState; }>
Since: 5.4.0
requestFullCalendarAccess()
requestFullCalendarAccess() => Promise<{ result: PermissionState; }>Requests read and write access to the calendar.
Returns: Promise<{ result: PermissionState; }>
Since: 5.4.0
requestFullRemindersAccess()
requestFullRemindersAccess() => Promise<{ result: PermissionState; }>Requests read and write access to reminders.
Returns: Promise<{ result: PermissionState; }>
Since: 5.4.0
createEventWithPrompt(...)
createEventWithPrompt(options?: CreateEventWithPromptOptions | undefined) => Promise<{ id: string | null; }>Opens the system calendar interface to create a new event.
On Android this always returns null; fetch events to find the newly created event ID.
| Param | Type |
| ------------- | ------------------------------------------------------------------------------------- |
| options | CreateEventWithPromptOptions |
Returns: Promise<{ id: string | null; }>
Since: 0.1.0
modifyEventWithPrompt(...)
modifyEventWithPrompt(options: ModifyEventWithPromptOptions) => Promise<{ result: EventEditAction | null; }>Opens a system calendar interface to modify an event.
On Android this always returns null.
| Param | Type |
| ------------- | ------------------------------------------------------------------------------------- |
| options | ModifyEventWithPromptOptions |
Returns: Promise<{ result: EventEditAction | null; }>
Since: 6.6.0
createEvent(...)
createEvent(options: CreateEventOptions) => Promise<{ id: string; }>Creates an event in the calendar.
| Param | Type |
| ------------- | ----------------------------------------------------------------- |
| options | CreateEventOptions |
Returns: Promise<{ id: string; }>
Since: 0.4.0
modifyEvent(...)
modifyEvent(options: ModifyEventOptions) => Promise<void>Modifies an event.
| Param | Type |
| ------------- | ----------------------------------------------------------------- |
| options | ModifyEventOptions |
Since: 6.6.0
deleteEventsById(...)
deleteEventsById(options: DeleteEventsByIdOptions) => Promise<{ result: DeleteEventsByIdResult; }>Deletes multiple events.
| Param | Type |
| ------------- | --------------------------------------------------------------------------- |
| options | DeleteEventsByIdOptions |
Returns: Promise<{ result: DeleteEventsByIdResult; }>
Since: 0.11.0
deleteEvent(...)
deleteEvent(options: DeleteEventOptions) => Promise<void>Deletes an event.
| Param | Type |
| ------------- | ----------------------------------------------------------------- |
| options | DeleteEventOptions |
Since: 7.1.0
deleteEventWithPrompt(...)
deleteEventWithPrompt(options: DeleteEventWithPromptOptions) => Promise<{ deleted: boolean; }>Opens a dialog to delete an event.
| Param | Type |
| ------------- | ------------------------------------------------------------------------------------- |
| options | DeleteEventWithPromptOptions |
Returns: Promise<{ deleted: boolean; }>
Since: 7.1.0
listEventsInRange(...)
listEventsInRange(options: ListEventsInRangeOptions) => Promise<{ result: CalendarEvent[]; }>Retrieves events within a date range.
| Param | Type |
| ------------- | ----------------------------------------------------------------------------- |
| options | ListEventsInRangeOptions |
Returns: Promise<{ result: CalendarEvent[]; }>
Since: 0.10.0
commit()
commit() => Promise<void>Saves pending iOS calendar changes.
Since: 7.1.0
selectCalendarsWithPrompt(...)
selectCalendarsWithPrompt(options?: SelectCalendarsWithPromptOptions | undefined) => Promise<{ result: Calendar[]; }>Opens a system interface to choose one or multiple calendars.
| Param | Type |
| ------------- | --------------------------------------------------------------------------------------------- |
| options | SelectCalendarsWithPromptOptions |
Returns: Promise<{ result: Calendar[]; }>
Since: 0.2.0
fetchAllCalendarSources()
fetchAllCalendarSources() => Promise<{ result: CalendarSource[]; }>Retrieves a list of calendar sources.
Returns: Promise<{ result: CalendarSource[]; }>
Since: 6.6.0
listCalendars()
listCalendars() => Promise<{ result: Calendar[]; }>Retrieves all available calendars.
Returns: Promise<{ result: Calendar[]; }>
Since: 7.1.0
getDefaultCalendar()
getDefaultCalendar() => Promise<{ result: Calendar | null; }>Retrieves the default calendar.
Returns: Promise<{ result: Calendar | null; }>
Since: 0.3.0
openCalendar(...)
openCalendar(options?: OpenCalendarOptions | undefined) => Promise<void>Opens the calendar app.
| Param | Type |
| ------------- | ------------------------------------------------------------------- |
| options | OpenCalendarOptions |
Since: 7.1.0
createCalendar(...)
createCalendar(options: CreateCalendarOptions) => Promise<{ id: string; }>Creates a calendar.
| Param | Type |
| ------------- | ----------------------------------------------------------------------- |
| options | CreateCalendarOptions |
Returns: Promise<{ id: string; }>
Since: 5.2.0
deleteCalendar(...)
deleteCalendar(options: DeleteCalendarOptions) => Promise<void>Deletes a calendar by ID.
| Param | Type |
| ------------- | ----------------------------------------------------------------------- |
| options | DeleteCalendarOptions |
Since: 5.2.0
modifyCalendar(...)
modifyCalendar(options: ModifyCalendarOptions) => Promise<void>Modifies a calendar.
| Param | Type |
| ------------- | ----------------------------------------------------------------------- |
| options | ModifyCalendarOptions |
Since: 7.2.0
fetchAllRemindersSources()
fetchAllRemindersSources() => Promise<{ result: CalendarSource[]; }>Retrieves a list of reminder sources.
Returns: Promise<{ result: CalendarSource[]; }>
Since: 6.6.0
openReminders()
openReminders() => Promise<void>Opens the reminders app.
Since: 7.1.0
getDefaultRemindersList()
getDefaultRemindersList() => Promise<{ result: RemindersList | null; }>Retrieves the default reminders list.
Returns: Promise<{ result: Calendar | null; }>
Since: 7.1.0
getRemindersLists()
getRemindersLists() => Promise<{ result: RemindersList[]; }>Retrieves all available reminders lists.
Returns: Promise<{ result: Calendar[]; }>
Since: 7.1.0
createReminder(...)
createReminder(options: CreateReminderOptions) => Promise<{ id: string; }>Creates a reminder.
| Param | Type |
| ------------- | ----------------------------------------------------------------------- |
| options | CreateReminderOptions |
Returns: Promise<{ id: string; }>
Since: 0.5.0
deleteRemindersById(...)
deleteRemindersById(options: DeleteRemindersByIdOptions) => Promise<{ result: DeleteRemindersByIdResult; }>Deletes multiple reminders.
| Param | Type |
| ------------- | --------------------------------------------------------------------------------- |
| options | DeleteRemindersByIdOptions |
Returns: Promise<{ result: DeleteRemindersByIdResult; }>
Since: 5.3.0
deleteReminder(...)
deleteReminder(options: DeleteReminderOptions) => Promise<void>Deletes a reminder.
| Param | Type |
| ------------- | ----------------------------------------------------------------------- |
| options | DeleteReminderOptions |
Since: 7.1.0
modifyReminder(...)
modifyReminder(options: ModifyReminderOptions) => Promise<void>Modifies a reminder.
| Param | Type |
| ------------- | ----------------------------------------------------------------------- |
| options | ModifyReminderOptions |
Since: 6.7.0
getReminderById(...)
getReminderById(options: GetReminderByIdOptions) => Promise<{ result: Reminder | null; }>Retrieves a reminder by ID.
| Param | Type |
| ------------- | ------------------------------------------------------------------------- |
| options | GetReminderByIdOptions |
Returns: Promise<{ result: Reminder | null; }>
Since: 7.1.0
getRemindersFromLists(...)
getRemindersFromLists(options: GetRemindersFromListsOptions) => Promise<{ result: Reminder[]; }>Retrieves reminders from multiple lists.
| Param | Type |
| ------------- | ------------------------------------------------------------------------------------- |
| options | GetRemindersFromListsOptions |
Returns: Promise<{ result: Reminder[]; }>
Since: 5.3.0
deleteReminderWithPrompt(...)
deleteReminderWithPrompt(options: DeleteReminderWithPromptOptions) => Promise<{ deleted: boolean; }>Opens a dialog to delete a reminder.
| Param | Type |
| ------------- | ------------------------------------------------------------------------------------------- |
| options | DeleteReminderWithPromptOptions |
Returns: Promise<{ deleted: boolean; }>
Since: 7.2.0
Interfaces
CreateEventWithPromptOptions
| Prop | Type | Description | Since |
| ------------------ | ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----- |
| alerts | number[] | Alert times in minutes relative to the event start. Use negative numbers for reminders before the start, and positive numbers for reminders after the start. On iOS only 2 alerts are supported. | 7.1.0 |
| availability | EventAvailability | | 7.1.0 |
| calendarId | string | | 0.1.0 |
| description | string | | 7.1.0 |
| endDate | number | | 0.1.0 |
| invitees | string[] | An array of emails to invite. | 7.1.0 |
| isAllDay | boolean | | 0.1.0 |
| location | string | | 0.1.0 |
| recurrence | EventRecurrenceRule | Rules for creating a recurring event. | 7.3.0 |
| startDate | number | | 0.1.0 |
| title | string | | 0.1.0 |
| url | string | | 0.1.0 |
EventRecurrenceRule
| Prop | Type | Description | Default | Since |
| -------------------- | ------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | ----- |
| byMonth | number[] | Limits a yearly recurrence to specific months of the year. The values should be between 1 and 12. | | 7.1.0 |
| byMonthDay | number[] | Limits a monthly recurrence to specific days of the month. The values should be between 1 and 31. | | 7.1.0 |
| byWeekDay | number[] | Limits a weekly recurrence to specific weekdays. The values should be between 1 and 7. 1 means Monday and 7 means Sunday. | | 7.3.0 |
| count | number | The total number of occurrences. If set, the recurrence ends after this many occurrences. If count is provided, end is ignored. | | 7.3.0 |
| daysOfTheYear | number[] | Limits a yearly recurrence to specific days of the year (1 to 366). | | 7.3.0 |
| end | number | End date of the recurrence series as a Unix timestamp in milliseconds. | | 7.1.0 |
| frequency | RecurrenceFrequency | How often the event repeats. | | 7.3.0 |
| interval | number | The interval between recurrences. Use in combination with frequency. For example, a weekly event with an interval of 2, results in the event occurring every 2 weeks. | 1 | 7.3.0 |
| weeksOfTheYear | number[] | Limits a yearly recurrence to specific ISO week numbers (1 to 53). | | 7.3.0 |
ModifyEventWithPromptOptions
| Prop | Type | Description | Since |
| -------- | ------------------- | ----------------------------------- | ----- |
| id | string | The ID of the event to be modified. | 7.1.0 |
CreateEventOptions
| Prop | Type | Description | Default | Since |
| ------------------ | ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------- | ----- |
| alerts | number[] | Alert times in minutes relative to the event start. Use negative numbers for alerts before the start, and positive numbers for alerts after the start. | | 7.1.0 |
| attendees | EventGuest[] | The event guests. | | 7.1.0 |
| availability | EventAvailability | | | 7.1.0 |
| calendarId | string | | | 0.1.0 |
| color | string | | | 7.1.0 |
| commit | boolean | Whether to save immediately (true) or batch changes for later (false). | true | 7.1.0 |
| description | string | | | 7.1.0 |
| duration | string | Duration of the event in RFC2445 format. | | 7.1.0 |
| endDate | number | | | 0.1.0 |
| isAllDay | boolean | | | 0.1.0 |
| location | string | | | 0.1.0 |
| organizer | string | Email of the event organizer. | | 7.1.0 |
| recurrence | EventRecurrenceRule | Rules for creating a recurring event. | | 7.3.0 |
| startDate | number | | | 0.1.0 |
| title | string | | | 0.4.0 |
| url | string | | | 0.1.0 |
EventGuest
| Prop | Type | Since |
| ----------- | ------------------- | ----- |
| name | string | 7.1.0 |
| email | string | 7.1.0 |
ModifyEventOptions
| Prop | Type | Description | Default | Since |
| ------------------ | ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------- | ----- |
| alerts | number[] | Alert times in minutes relative to the event start. Use negative numbers for alerts before the start, and positive numbers for alerts after the start. | | 7.1.0 |
| attendees | EventGuest[] | The event guests. | | 7.1.0 |
| availability | EventAvailability | | | 7.1.0 |
| calendarId | string | | | 0.1.0 |
| color | string | | | 7.1.0 |
| description | string | | | 7.1.0 |
| duration | string | Duration of the event in RFC2445 format. | | 7.1.0 |
| endDate | number | | | 0.1.0 |
| id | string | The ID of the event to be modified. | | 7.1.0 |
| isAllDay | boolean | | | 0.1.0 |
| location | string | | | 0.1.0 |
| recurrence | EventRecurrenceRule | Rules for creating a recurring event. | | 7.3.0 |
| organizer | string | Email of the event organizer. | | 7.1.0 |
| span | EventSpan | The span of modifications. | EventSpan.THIS_EVENT | |
| startDate | number | | | 0.1.0 |
| title | string | | | 0.4.0 |
| url | string | | | 0.1.0 |
DeleteEventsByIdResult
| Prop | Type | Since |
| ------------- | --------------------- | ----- |
| deleted | string[] | 7.1.0 |
| failed | string[] | 7.1.0 |
DeleteEventsByIdOptions
| Prop | Type | Description | Default | Since |
| ---------- | ----------------------------------------------- | --------------------- | --------------------------------- | ----- |
| ids | string[] | | | 7.1.0 |
| span | EventSpan | The span of deletion. | EventSpan.THIS_EVENT | |
DeleteEventOptions
| Prop | Type | Description | Default | Since |
| ---------- | ----------------------------------------------- | --------------------- | --------------------------------- | ----- |
| id | string | | | 7.1.0 |
| span | EventSpan | The span of deletion. | EventSpan.THIS_EVENT | |
DeleteEventWithPromptOptions
| Prop | Type | Description | Default | Since |
| ----------------------- | ----------------------------------------------- | ----------------------------------- | --------------------------------- | ----- |
| id | string | | | 7.1.0 |
| span | EventSpan | The span of deletion. | EventSpan.THIS_EVENT | |
| title | string | Title of the dialog. | | 7.1.0 |
| message | string | Message of the dialog. | | 7.1.0 |
| confirmButtonText | string | Text to show on the confirm button. | 'Delete' | 7.1.0 |
| cancelButtonText | string | Text to show on the cancel button. | 'Cancel' | 7.1.0 |
CalendarEvent
| Prop | Type | Description | Since |
| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- | ----- |
| id | string | | 7.1.0 |
| title | string | | 7.1.0 |
| calendarId | string | null | | 7.1.0 |
| location | string | null | | 7.1.0 |
| startDate | number | | 7.1.0 |
| endDate | number | | 7.1.0 |
| isAllDay | boolean | | 7.1.0 |
| alerts | number[] | Alert times in minutes relative to the event start. | 7.1.0 |
| url | string | null | | 7.1.0 |
| description | string | null | | 7.1.0 |
| availability | EventAvailability | null | | 7.1.0 |
| organizer | string | null | | 7.1.0 |
| color | string | null | | 7.1.0 |
| duration | string | null | | 7.1.0 |
| isDetached | boolean | null | | 7.1.0 |
| birthdayContactIdentifier | string | null | | 7.1.0 |
| status | EventStatus | null | | 7.1.0 |
| creationDate | number | null | | 7.1.0 |
| lastModifiedDate | number | null | | 7.1.0 |
| attendees | { email: string | null; name: string | null; role: AttendeeRole | null; status: AttendeeStatus | null; type: AttendeeType | null; }[] | | 7.1.0 |
| timezone | string | null | | 7.1.0 |
ListEventsInRangeOptions
| Prop | Type | Description | Since |
| ---------- | ------------------- | ------------------------------ | ----- |
| from | number | The timestamp in milliseconds. | 7.1.0 |
| to | number | The timestamp in milliseconds. | 7.1.0 |
Calendar
| Prop | Type | Description | Since |
| -------------------------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------ | ----- |
| id | string | | 7.1.0 |
| title | string | | 7.1.0 |
| internalTitle | string | null | Internal name of the calendar (CalendarContract.Calendars.NAME). | 7.1.0 |
| color | string | | 7.1.0 |
| isImmutable | boolean | null | | 7.1.0 |
| allowsContentModifications | boolean | null | | 7.1.0 |
| type | CalendarType | null | | 7.1.0 |
| isSubscribed | boolean | null | | 7.1.0 |
| source | CalendarSource | null | | 7.1.0 |
| visible | boolean | null | Indicates if the events from this calendar should be shown. | 7.1.0 |
| accountName | string | null | The account under which the calendar is registered. | 7.1.0 |
| ownerAccount | string | null | The owner of the calendar. | 7.1.0 |
| maxReminders | number | null | Maximum number of reminders allowed per event. | 7.1.0 |
| location | string | null | | 7.1.0 |
CalendarSource
| Prop | Type | Since |
| ----------- | ----------------------------------------------------------------- | ----- |
| type | CalendarSourceType | 7.1.0 |
| id | string | 7.1.0 |
| title | string | 7.1.0 |
SelectCalendarsWithPromptOptions
| Prop | Type | Description | Default | Since |
| ------------------ | ----------------------------------------------------------------------------------- | -------------------------- | ------------------------------------------------------ | ----- |
| displayStyle | CalendarChooserDisplayStyle | | CalendarChooserDisplayStyle.ALL_CALENDARS | 7.1.0 |
| multiple | boolean | Allow multiple selections. | false | 7.1.0 |
OpenCalendarOptions
| Prop | Type | Default | Since |
| ---------- | ------------------- | ----------------------- | ----- |
| date | number | Date.now() | 7.1.0 |
CreateCalendarOptions
| Prop | Type | Description | Since |
| ------------------ | ------------------- | ---------------------------------------------------------- | ----- |
| title | string | | 5.2.0 |
| color | string | The color of the calendar. Should be provided on Android. | 5.2.0 |
| sourceId | string | | 5.2.0 |
| accountName | string | Only needed on Android. Typically set to an email address. | 7.1.0 |
| ownerAccount | string | Only needed on Android. Typically set to an email address. | 7.1.0 |
DeleteCalendarOptions
| Prop | Type | Since |
| -------- | ------------------- | ----- |
| id | string | 7.1.0 |
ModifyCalendarOptions
| Prop | Type | Since |
| ----------- | ------------------- | ----- |
| id | string | 7.2.0 |
| title | string | 7.2.0 |
| color | string | 7.2.0 |
CreateReminderOptions
| Prop | Type | Description | Since |
| -------------------- | --------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- |
| title | string | | 7.1.0 |
| listId | string | | 7.1.0 |
| priority | number | | 7.1.0 |
| isCompleted | boolean | | 7.1.0 |
| startDate | number | | 7.1.0 |
| dueDate | number | | 7.1.0 |
| completionDate | number | | 7.1.0 |
| notes | string | | 7.1.0 |
| url | string | | 7.1.0 |
| location | string | | 7.1.0 |
| recurrence | RecurrenceRule | | 7.1.0 |
| alerts | number[] | Alert times in minutes relative to the reminder start. Use negative numbers for alerts before the start, and positive numbers for alerts after the start. | 7.1.0 |
RecurrenceRule
| Prop | Type | Description | Since | | --------------- | ----------------------------------------
