@ebarooni/capacitor-calendar
Version:
A capacitor plugin for managing calendar events on iOS and Android, with reminders support on iOS.
1,011 lines (640 loc) • 63.4 kB
Markdown
<p align="center">
<img src="assets/images/text-logo.png" alt="capacitor-calendar-logo" height="136"/>
<br>
<em>A capacitor plugin for managing calendar events on iOS and Android, with reminders support on iOS.</em>
</p>
<p align="center">
<img src="https://img.shields.io/maintenance/yes/2025?style=flat-square" />
<a href="https://www.npmjs.com/package/@ebarooni/capacitor-calendar">
<img src="https://img.shields.io/npm/l/@ebarooni/capacitor-calendar?style=flat-square" />
</a>
<br>
<a href="https://www.npmjs.com/package/@ebarooni/capacitor-calendar">
<img src="https://img.shields.io/npm/dw/@ebarooni/capacitor-calendar?style=flat-square" />
</a>
<a href="https://www.npmjs.com/package/@ebarooni/capacitor-calendar">
<img src="https://img.shields.io/npm/v/@ebarooni/capacitor-calendar?style=flat-square" />
</a>
</p>
## Table of Contents
- [Installation](#installation)
- [Demo](#demo)
- [Setup](#setup)
- [Documentation](#documentation)
- [Changelog](#changelog)
- [API](#api)
- [Contributing](#contributing)
- [License](#license)
## Installation
```bash
npm install @ebarooni/capacitor-calendar
npx cap sync
```
## Demo
| iOS 18 | Android 15 |
| :-----------------------------: | :---------------------------------: |
|  |  |
## Setup
This plugin requires additional platform-specific configuration. Follow the official guides:
- **iOS:** [Migrating to the Latest Calendar Access Levels](https://developer.apple.com/documentation/technotes/tn3152-migrating-to-the-latest-calendar-access-levels)
- **Android:** [Calendar Provider User Permissions](https://developer.android.com/identity/providers/calendar-provider#manifest)
## Documentation
For comprehensive usage examples, detailed explanations, and API references, check out:
- **[Online documentation](https://ebarooni.github.io/capacitor-calendar/)**
- **[Type definitions & examples](src/definitions.ts)**
## Changelog
See [CHANGELOG.md](CHANGELOG.md) for the latest updates and release history.
> [!NOTE]
> Version 7.1.0 introduces breaking changes.
## API
<docgen-index>
* [`checkPermission(...)`](#checkpermission)
* [`checkAllPermissions()`](#checkallpermissions)
* [`requestPermission(...)`](#requestpermission)
* [`requestAllPermissions()`](#requestallpermissions)
* [`requestWriteOnlyCalendarAccess()`](#requestwriteonlycalendaraccess)
* [`requestReadOnlyCalendarAccess()`](#requestreadonlycalendaraccess)
* [`requestFullCalendarAccess()`](#requestfullcalendaraccess)
* [`requestFullRemindersAccess()`](#requestfullremindersaccess)
* [`createEventWithPrompt(...)`](#createeventwithprompt)
* [`modifyEventWithPrompt(...)`](#modifyeventwithprompt)
* [`createEvent(...)`](#createevent)
* [`modifyEvent(...)`](#modifyevent)
* [`deleteEventsById(...)`](#deleteeventsbyid)
* [`deleteEvent(...)`](#deleteevent)
* [`deleteEventWithPrompt(...)`](#deleteeventwithprompt)
* [`listEventsInRange(...)`](#listeventsinrange)
* [`commit()`](#commit)
* [`selectCalendarsWithPrompt(...)`](#selectcalendarswithprompt)
* [`fetchAllCalendarSources()`](#fetchallcalendarsources)
* [`listCalendars()`](#listcalendars)
* [`getDefaultCalendar()`](#getdefaultcalendar)
* [`openCalendar(...)`](#opencalendar)
* [`createCalendar(...)`](#createcalendar)
* [`deleteCalendar(...)`](#deletecalendar)
* [`modifyCalendar(...)`](#modifycalendar)
* [`fetchAllRemindersSources()`](#fetchallreminderssources)
* [`openReminders()`](#openreminders)
* [`getDefaultRemindersList()`](#getdefaultreminderslist)
* [`getRemindersLists()`](#getreminderslists)
* [`createReminder(...)`](#createreminder)
* [`deleteRemindersById(...)`](#deleteremindersbyid)
* [`deleteReminder(...)`](#deletereminder)
* [`modifyReminder(...)`](#modifyreminder)
* [`getReminderById(...)`](#getreminderbyid)
* [`getRemindersFromLists(...)`](#getremindersfromlists)
* [`deleteReminderWithPrompt(...)`](#deletereminderwithprompt)
* [Interfaces](#interfaces)
* [Type Aliases](#type-aliases)
* [Enums](#enums)
</docgen-index>
<docgen-api>
<!--Update the source file JSDoc comments and rerun docgen to update the docs below-->
### checkPermission(...)
```typescript
checkPermission(options: { scope: CalendarPermissionScope; }) => Promise<{ result: PermissionState; }>
```
Retrieves the current permission state for a given scope.
| Param | Type |
| ------------- | --------------------------------------------------------------------------------------- |
| **`options`** | <code>{ scope: <a href="#calendarpermissionscope">CalendarPermissionScope</a>; }</code> |
**Returns:** <code>Promise<{ result: <a href="#permissionstate">PermissionState</a>; }></code>
**Since:** 0.1.0
**Platform:** Android, iOS
--------------------
### checkAllPermissions()
```typescript
checkAllPermissions() => Promise<{ result: CheckAllPermissionsResult; }>
```
Retrieves the current state of all permissions.
**Returns:** <code>Promise<{ result: <a href="#checkallpermissionsresult">CheckAllPermissionsResult</a>; }></code>
**Since:** 0.1.0
**Platform:** Android, iOS
--------------------
### requestPermission(...)
```typescript
requestPermission(options: { scope: CalendarPermissionScope; }) => Promise<{ result: PermissionState; }>
```
Requests permission for a given scope.
| Param | Type |
| ------------- | --------------------------------------------------------------------------------------- |
| **`options`** | <code>{ scope: <a href="#calendarpermissionscope">CalendarPermissionScope</a>; }</code> |
**Returns:** <code>Promise<{ result: <a href="#permissionstate">PermissionState</a>; }></code>
**Since:** 0.1.0
**Platform:** Android, iOS
--------------------
### requestAllPermissions()
```typescript
requestAllPermissions() => Promise<{ result: RequestAllPermissionsResult; }>
```
Requests permission for all calendar and reminder permissions.
**Returns:** <code>Promise<{ result: <a href="#checkallpermissionsresult">CheckAllPermissionsResult</a>; }></code>
**Since:** 0.1.0
**Platform:** Android, iOS
--------------------
### requestWriteOnlyCalendarAccess()
```typescript
requestWriteOnlyCalendarAccess() => Promise<{ result: PermissionState; }>
```
Requests write access to the calendar.
**Returns:** <code>Promise<{ result: <a href="#permissionstate">PermissionState</a>; }></code>
**Since:** 5.4.0
**Platform:** Android, iOS
--------------------
### requestReadOnlyCalendarAccess()
```typescript
requestReadOnlyCalendarAccess() => Promise<{ result: PermissionState; }>
```
Requests read access to the calendar.
**Returns:** <code>Promise<{ result: <a href="#permissionstate">PermissionState</a>; }></code>
**Since:** 5.4.0
**Platform:** Android
--------------------
### requestFullCalendarAccess()
```typescript
requestFullCalendarAccess() => Promise<{ result: PermissionState; }>
```
Requests read and write access to the calendar.
**Returns:** <code>Promise<{ result: <a href="#permissionstate">PermissionState</a>; }></code>
**Since:** 5.4.0
**Platform:** Android, iOS
--------------------
### requestFullRemindersAccess()
```typescript
requestFullRemindersAccess() => Promise<{ result: PermissionState; }>
```
Requests read and write access to the reminders.
**Returns:** <code>Promise<{ result: <a href="#permissionstate">PermissionState</a>; }></code>
**Since:** 5.4.0
**Platform:** iOS
--------------------
### createEventWithPrompt(...)
```typescript
createEventWithPrompt(options?: CreateEventWithPromptOptions | undefined) => Promise<{ id: string | null; }>
```
Opens the system calendar interface to create a new event.
On Android always returns `null`.
Fetch the events to find the ID of the newly created event.
| Param | Type |
| ------------- | ------------------------------------------------------------------------------------- |
| **`options`** | <code><a href="#createeventwithpromptoptions">CreateEventWithPromptOptions</a></code> |
**Returns:** <code>Promise<{ id: string | null; }></code>
**Since:** 0.1.0
**Platform:** Android, iOS
--------------------
### modifyEventWithPrompt(...)
```typescript
modifyEventWithPrompt(options: ModifyEventWithPromptOptions) => Promise<{ result: EventEditAction | null; }>
```
Opens a system calendar interface to modify an event.
On Android always returns `null`.
| Param | Type |
| ------------- | ------------------------------------------------------------------------------------- |
| **`options`** | <code><a href="#modifyeventwithpromptoptions">ModifyEventWithPromptOptions</a></code> |
**Returns:** <code>Promise<{ result: <a href="#eventeditaction">EventEditAction</a> | null; }></code>
**Since:** 6.6.0
**Platform:** Android, iOS
--------------------
### createEvent(...)
```typescript
createEvent(options: CreateEventOptions) => Promise<{ id: string; }>
```
Creates an event in the calendar.
| Param | Type |
| ------------- | ----------------------------------------------------------------- |
| **`options`** | <code><a href="#createeventoptions">CreateEventOptions</a></code> |
**Returns:** <code>Promise<{ id: string; }></code>
**Since:** 0.4.0
**Platform:** iOS, Android
--------------------
### modifyEvent(...)
```typescript
modifyEvent(options: ModifyEventOptions) => Promise<void>
```
Modifies an event.
| Param | Type |
| ------------- | ----------------------------------------------------------------- |
| **`options`** | <code><a href="#modifyeventoptions">ModifyEventOptions</a></code> |
**Since:** 6.6.0
**Platform:** Android, iOS
--------------------
### deleteEventsById(...)
```typescript
deleteEventsById(options: DeleteEventsByIdOptions) => Promise<{ result: DeleteEventsByIdResult; }>
```
Deletes multiple events.
| Param | Type |
| ------------- | --------------------------------------------------------------------------- |
| **`options`** | <code><a href="#deleteeventsbyidoptions">DeleteEventsByIdOptions</a></code> |
**Returns:** <code>Promise<{ result: <a href="#deleteeventsbyidresult">DeleteEventsByIdResult</a>; }></code>
**Since:** 0.11.0
**Platform:** Android, iOS
--------------------
### deleteEvent(...)
```typescript
deleteEvent(options: DeleteEventOptions) => Promise<void>
```
Deletes an event.
| Param | Type |
| ------------- | ----------------------------------------------------------------- |
| **`options`** | <code><a href="#deleteeventoptions">DeleteEventOptions</a></code> |
**Since:** 7.1.0
**Platform:** Android, iOS
--------------------
### deleteEventWithPrompt(...)
```typescript
deleteEventWithPrompt(options: DeleteEventWithPromptOptions) => Promise<{ deleted: boolean; }>
```
Opens a dialog to delete an event.
| Param | Type |
| ------------- | ------------------------------------------------------------------------------------- |
| **`options`** | <code><a href="#deleteeventwithpromptoptions">DeleteEventWithPromptOptions</a></code> |
**Returns:** <code>Promise<{ deleted: boolean; }></code>
**Since:** 7.1.0
**Platform:** Android, iOS
--------------------
### listEventsInRange(...)
```typescript
listEventsInRange(options: ListEventsInRangeOptions) => Promise<{ result: CalendarEvent[]; }>
```
Retrieves the events within a date range.
| Param | Type |
| ------------- | ----------------------------------------------------------------------------- |
| **`options`** | <code><a href="#listeventsinrangeoptions">ListEventsInRangeOptions</a></code> |
**Returns:** <code>Promise<{ result: CalendarEvent[]; }></code>
**Since:** 0.10.0
**Platform:** Android, iOS
--------------------
### commit()
```typescript
commit() => Promise<void>
```
Save the changes to the calendar.
**Since:** 7.1.0
**Platform:** iOS
--------------------
### selectCalendarsWithPrompt(...)
```typescript
selectCalendarsWithPrompt(options?: SelectCalendarsWithPromptOptions | undefined) => Promise<{ result: Calendar[]; }>
```
Opens a system interface to choose one or multiple calendars.
| Param | Type |
| ------------- | --------------------------------------------------------------------------------------------- |
| **`options`** | <code><a href="#selectcalendarswithpromptoptions">SelectCalendarsWithPromptOptions</a></code> |
**Returns:** <code>Promise<{ result: Calendar[]; }></code>
**Since:** 0.2.0
**Platform:** iOS
--------------------
### fetchAllCalendarSources()
```typescript
fetchAllCalendarSources() => Promise<{ result: CalendarSource[]; }>
```
Retrieves a list of calendar sources.
**Returns:** <code>Promise<{ result: CalendarSource[]; }></code>
**Since:** 6.6.0
**Platform:** iOS
--------------------
### listCalendars()
```typescript
listCalendars() => Promise<{ result: Calendar[]; }>
```
Retrieves a list of all available calendars.
**Returns:** <code>Promise<{ result: Calendar[]; }></code>
**Since:** 7.1.0
**Platform:** Android, iOS
--------------------
### getDefaultCalendar()
```typescript
getDefaultCalendar() => Promise<{ result: Calendar | null; }>
```
Retrieves the default calendar.
**Returns:** <code>Promise<{ result: <a href="#calendar">Calendar</a> | null; }></code>
**Since:** 0.3.0
**Platform:** Android, iOS
--------------------
### openCalendar(...)
```typescript
openCalendar(options?: OpenCalendarOptions | undefined) => Promise<void>
```
Opens the calendar app.
| Param | Type |
| ------------- | ------------------------------------------------------------------- |
| **`options`** | <code><a href="#opencalendaroptions">OpenCalendarOptions</a></code> |
**Since:** 7.1.0
**Platform:** Android, iOS
--------------------
### createCalendar(...)
```typescript
createCalendar(options: CreateCalendarOptions) => Promise<{ id: string; }>
```
Creates a calendar.
| Param | Type |
| ------------- | ----------------------------------------------------------------------- |
| **`options`** | <code><a href="#createcalendaroptions">CreateCalendarOptions</a></code> |
**Returns:** <code>Promise<{ id: string; }></code>
**Since:** 5.2.0
**Platform:** Android, iOS
--------------------
### deleteCalendar(...)
```typescript
deleteCalendar(options: DeleteCalendarOptions) => Promise<void>
```
Deletes a calendar by id.
| Param | Type |
| ------------- | ----------------------------------------------------------------------- |
| **`options`** | <code><a href="#deletecalendaroptions">DeleteCalendarOptions</a></code> |
**Since:** 5.2.0
**Platform:** Android, iOS
--------------------
### modifyCalendar(...)
```typescript
modifyCalendar(options: ModifyCalendarOptions) => Promise<void>
```
Modifies a calendar with options.
| Param | Type |
| ------------- | ----------------------------------------------------------------------- |
| **`options`** | <code><a href="#modifycalendaroptions">ModifyCalendarOptions</a></code> |
**Since:** 7.2.0
**Platform:** Android, iOS
--------------------
### fetchAllRemindersSources()
```typescript
fetchAllRemindersSources() => Promise<{ result: CalendarSource[]; }>
```
Retrieves a list of calendar sources.
**Returns:** <code>Promise<{ result: CalendarSource[]; }></code>
**Since:** 6.6.0
**Platform:** iOS
--------------------
### openReminders()
```typescript
openReminders() => Promise<void>
```
Opens the reminders app.
**Since:** 7.1.0
**Platform:** iOS
--------------------
### getDefaultRemindersList()
```typescript
getDefaultRemindersList() => Promise<{ result: RemindersList | null; }>
```
Retrieves the default reminders list.
**Returns:** <code>Promise<{ result: <a href="#calendar">Calendar</a> | null; }></code>
**Since:** 7.1.0
**Platform:** iOS
--------------------
### getRemindersLists()
```typescript
getRemindersLists() => Promise<{ result: RemindersList[]; }>
```
Retrieves all available reminders lists.
**Returns:** <code>Promise<{ result: Calendar[]; }></code>
**Since:** 7.1.0
**Platform:** iOS
--------------------
### createReminder(...)
```typescript
createReminder(options: CreateReminderOptions) => Promise<{ id: string; }>
```
Creates a reminder.
| Param | Type |
| ------------- | ----------------------------------------------------------------------- |
| **`options`** | <code><a href="#createreminderoptions">CreateReminderOptions</a></code> |
**Returns:** <code>Promise<{ id: string; }></code>
**Since:** 0.5.0
**Platform:** iOS
--------------------
### deleteRemindersById(...)
```typescript
deleteRemindersById(options: DeleteRemindersByIdOptions) => Promise<{ result: DeleteRemindersByIdResult; }>
```
Deletes multiple reminders.
| Param | Type |
| ------------- | --------------------------------------------------------------------------------- |
| **`options`** | <code><a href="#deleteremindersbyidoptions">DeleteRemindersByIdOptions</a></code> |
**Returns:** <code>Promise<{ result: <a href="#deleteremindersbyidresult">DeleteRemindersByIdResult</a>; }></code>
**Since:** 5.3.0
**Platform:** iOS
--------------------
### deleteReminder(...)
```typescript
deleteReminder(options: DeleteReminderOptions) => Promise<void>
```
Deletes a reminder.
| Param | Type |
| ------------- | ----------------------------------------------------------------------- |
| **`options`** | <code><a href="#deletereminderoptions">DeleteReminderOptions</a></code> |
**Since:** 7.1.0
**Platform:** iOS
--------------------
### modifyReminder(...)
```typescript
modifyReminder(options: ModifyReminderOptions) => Promise<void>
```
Modifies a reminder.
| Param | Type |
| ------------- | ----------------------------------------------------------------------- |
| **`options`** | <code><a href="#modifyreminderoptions">ModifyReminderOptions</a></code> |
**Since:** 6.7.0
**Platform:** iOS
--------------------
### getReminderById(...)
```typescript
getReminderById(options: GetReminderByIdOptions) => Promise<{ result: Reminder | null; }>
```
Retrieve a reminder by ID.
| Param | Type |
| ------------- | ------------------------------------------------------------------------- |
| **`options`** | <code><a href="#getreminderbyidoptions">GetReminderByIdOptions</a></code> |
**Returns:** <code>Promise<{ result: <a href="#reminder">Reminder</a> | null; }></code>
**Since:** 7.1.0
**Platform:** iOS
--------------------
### getRemindersFromLists(...)
```typescript
getRemindersFromLists(options: GetRemindersFromListsOptions) => Promise<{ result: Reminder[]; }>
```
Retrieves reminders from multiple lists.
| Param | Type |
| ------------- | ------------------------------------------------------------------------------------- |
| **`options`** | <code><a href="#getremindersfromlistsoptions">GetRemindersFromListsOptions</a></code> |
**Returns:** <code>Promise<{ result: Reminder[]; }></code>
**Since:** 5.3.0
**Platform:** iOS
--------------------
### deleteReminderWithPrompt(...)
```typescript
deleteReminderWithPrompt(options: DeleteReminderWithPromptOptions) => Promise<{ deleted: boolean; }>
```
Opens a dialog to delete a reminder.
| Param | Type |
| ------------- | ------------------------------------------------------------------------------------------- |
| **`options`** | <code><a href="#deletereminderwithpromptoptions">DeleteReminderWithPromptOptions</a></code> |
**Returns:** <code>Promise<{ deleted: boolean; }></code>
**Since:** 7.2.0
**Platform:** iOS
--------------------
### Interfaces
#### CreateEventWithPromptOptions
| Prop | Type | Description | Since | Platform |
| ------------------ | --------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | ----- | ------------ |
| **`title`** | <code>string</code> | | 0.1.0 | Android, iOS |
| **`calendarId`** | <code>string</code> | | 0.1.0 | iOS |
| **`location`** | <code>string</code> | | 0.1.0 | Android, iOS |
| **`startDate`** | <code>number</code> | | 0.1.0 | Android, iOS |
| **`endDate`** | <code>number</code> | | 0.1.0 | Android, iOS |
| **`isAllDay`** | <code>boolean</code> | | 0.1.0 | Android, iOS |
| **`alerts`** | <code>number[]</code> | Sets alerts before or after the start of the event in minutes. On iOS only 2 alerts are supported. | 7.1.0 | iOS |
| **`url`** | <code>string</code> | | 0.1.0 | iOS |
| **`description`** | <code>string</code> | | 7.1.0 | Android, iOS |
| **`availability`** | <code><a href="#eventavailability">EventAvailability</a></code> | | 7.1.0 | Android, iOS |
| **`invitees`** | <code>string[]</code> | An array of emails to invite. | 7.1.0 | Android |
#### ModifyEventWithPromptOptions
| Prop | Type | Description | Since | Platform |
| ------------------ | --------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | ----- | ------------ |
| **`title`** | <code>string</code> | | 0.1.0 | Android, iOS |
| **`calendarId`** | <code>string</code> | | 0.1.0 | iOS |
| **`location`** | <code>string</code> | | 0.1.0 | Android, iOS |
| **`startDate`** | <code>number</code> | | 0.1.0 | Android, iOS |
| **`endDate`** | <code>number</code> | | 0.1.0 | Android, iOS |
| **`isAllDay`** | <code>boolean</code> | | 0.1.0 | Android, iOS |
| **`alerts`** | <code>number[]</code> | Sets alerts before or after the start of the event in minutes. On iOS only 2 alerts are supported. | 7.1.0 | iOS |
| **`url`** | <code>string</code> | | 0.1.0 | iOS |
| **`description`** | <code>string</code> | | 7.1.0 | Android, iOS |
| **`availability`** | <code><a href="#eventavailability">EventAvailability</a></code> | | 7.1.0 | Android, iOS |
| **`invitees`** | <code>string[]</code> | An array of emails to invite. | 7.1.0 | Android |
| **`id`** | <code>string</code> | The ID of the event to be modified. | 7.1.0 | Android, iOS |
#### CreateEventOptions
| Prop | Type | Description | Default | Since | Platform |
| ------------------ | --------------------------------------------------------------- | -------------------------------------------------------------------------- | ----------------- | ----- | ------------ |
| **`title`** | <code>string</code> | | | 0.4.0 | Android, iOS |
| **`calendarId`** | <code>string</code> | | | 0.1.0 | Android, iOS |
| **`location`** | <code>string</code> | | | 0.1.0 | Android, iOS |
| **`startDate`** | <code>number</code> | | | 0.1.0 | Android, iOS |
| **`endDate`** | <code>number</code> | | | 0.1.0 | Android, iOS |
| **`isAllDay`** | <code>boolean</code> | | | 0.1.0 | Android, iOS |
| **`alerts`** | <code>number[]</code> | | | 7.1.0 | Android, iOS |
| **`url`** | <code>string</code> | | | 0.1.0 | iOS |
| **`description`** | <code>string</code> | | | 7.1.0 | Android, iOS |
| **`availability`** | <code><a href="#eventavailability">EventAvailability</a></code> | | | 7.1.0 | Android, iOS |
| **`organizer`** | <code>string</code> | Email of the event organizer. | | 7.1.0 | Android |
| **`color`** | <code>string</code> | | | 7.1.0 | Android |
| **`duration`** | <code>string</code> | Duration of the event in RFC2445 format. | | 7.1.0 | Android |
| **`commit`** | <code>boolean</code> | Whether to save immediately (`true`) or batch changes for later (`false`). | <code>true</code> | 7.1.0 | iOS |
| **`attendees`** | <code>EventGuest[]</code> | The event guests. | | 7.1.0 | Android |
#### EventGuest
| Prop | Type | Since |
| ----------- | ------------------- | ----- |
| **`name`** | <code>string</code> | 7.1.0 |
| **`email`** | <code>string</code> | 7.1.0 |
#### ModifyEventOptions
| Prop | Type | Description | Default | Since | Platform |
| ------------------ | --------------------------------------------------------------- | ---------------------------------------- | --------------------------------- | ----- | ------------ |
| **`id`** | <code>string</code> | The ID of the event to be modified. | | 7.1.0 | Android, iOS |
| **`title`** | <code>string</code> | | | 0.4.0 | Android, iOS |
| **`calendarId`** | <code>string</code> | | | 0.1.0 | Android, iOS |
| **`location`** | <code>string</code> | | | 0.1.0 | Android, iOS |
| **`startDate`** | <code>number</code> | | | 0.1.0 | Android, iOS |
| **`endDate`** | <code>number</code> | | | 0.1.0 | Android, iOS |
| **`isAllDay`** | <code>boolean</code> | | | 0.1.0 | Android, iOS |
| **`alerts`** | <code>number[]</code> | | | 7.1.0 | Android, iOS |
| **`url`** | <code>string</code> | | | 0.1.0 | iOS |
| **`description`** | <code>string</code> | | | 7.1.0 | Android, iOS |
| **`availability`** | <code><a href="#eventavailability">EventAvailability</a></code> | | | 7.1.0 | Android, iOS |
| **`organizer`** | <code>string</code> | Email of the event organizer. | | 7.1.0 | Android |
| **`color`** | <code>string</code> | | | 7.1.0 | Android |
| **`duration`** | <code>string</code> | Duration of the event in RFC2445 format. | | 7.1.0 | Android |
| **`attendees`** | <code>EventGuest[]</code> | The event guests. | | 7.1.0 | Android |
| **`span`** | <code><a href="#eventspan">EventSpan</a></code> | The span of modifications. | <code>EventSpan.THIS_EVENT</code> | | iOS |
#### DeleteEventsByIdResult
| Prop | Type | Since |
| ------------- | --------------------- | ----- |
| **`deleted`** | <code>string[]</code> | 7.1.0 |
| **`failed`** | <code>string[]</code> | 7.1.0 |
#### DeleteEventsByIdOptions
| Prop | Type | Description | Default | Since | Platform |
| ---------- | ----------------------------------------------- | --------------------- | --------------------------------- | ----- | -------- |
| **`ids`** | <code>string[]</code> | | | 7.1.0 | |
| **`span`** | <code><a href="#eventspan">EventSpan</a></code> | The span of deletion. | <code>EventSpan.THIS_EVENT</code> | | iOS |
#### DeleteEventOptions
| Prop | Type | Description | Default | Since | Platform |
| ---------- | ----------------------------------------------- | --------------------- | --------------------------------- | ----- | -------- |
| **`id`** | <code>string</code> | | | 7.1.0 | |
| **`span`** | <code><a href="#eventspan">EventSpan</a></code> | The span of deletion. | <code>EventSpan.THIS_EVENT</code> | | iOS |
#### DeleteEventWithPromptOptions
| Prop | Type | Description | Default | Since | Platform |
| ----------------------- | ----------------------------------------------- | ----------------------------------- | --------------------------------- | ----- | ------------ |
| **`id`** | <code>string</code> | | | 7.1.0 | |
| **`span`** | <code><a href="#eventspan">EventSpan</a></code> | The span of deletion. | <code>EventSpan.THIS_EVENT</code> | | iOS |
| **`title`** | <code>string</code> | Title of the dialog. | | 7.1.0 | Android, iOS |
| **`message`** | <code>string</code> | Message of the dialog. | | 7.1.0 | Android, iOS |
| **`confirmButtonText`** | <code>string</code> | Text to show on the confirm button. | <code>'Delete'</code> | 7.1.0 | Android, iOS |
| **`cancelButtonText`** | <code>string</code> | Text to show on the cancel button. | <code>'Cancel'</code> | 7.1.0 | Android, iOS |
#### CalendarEvent
| Prop | Type | Since | Platform |
| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- | ------------ |
| **`id`** | <code>string</code> | 7.1.0 | Android, iOS |
| **`title`** | <code>string</code> | 7.1.0 | Android, iOS |
| **`calendarId`** | <code>string \| null</code> | 7.1.0 | Android, iOS |
| **`location`** | <code>string \| null</code> | 7.1.0 | Android, iOS |
| **`startDate`** | <code>number</code> | 7.1.0 | Android, iOS |
| **`endDate`** | <code>number</code> | 7.1.0 | Android, iOS |
| **`isAllDay`** | <code>boolean</code> | 7.1.0 | Android, iOS |
| **`alerts`** | <code>number[]</code> | 7.1.0 | Android, iOS |
| **`url`** | <code>string \| null</code> | 7.1.0 | iOS |
| **`description`** | <code>string \| null</code> | 7.1.0 | Android, iOS |
| **`availability`** | <code><a href="#eventavailability">EventAvailability</a> \| null</code> | 7.1.0 | Android, iOS |
| **`organizer`** | <code>string \| null</code> | 7.1.0 | Android, iOS |
| **`color`** | <code>string \| null</code> | 7.1.0 | Android, iOS |
| **`duration`** | <code>string \| null</code> | 7.1.0 | Android |
| **`isDetached`** | <code>boolean \| null</code> | 7.1.0 | iOS |
| **`birthdayContactIdentifier`** | <code>string \| null</code> | 7.1.0 | iOS |
| **`status`** | <code><a href="#eventstatus">EventStatus</a> \| null</code> | 7.1.0 | Android, iOS |
| **`creationDate`** | <code>number \| null</code> | 7.1.0 | iOS |
| **`lastModifiedDate`** | <code>number \| null</code> | 7.1.0 | iOS |
| **`attendees`** | <code>{ email: string \| null; name: string \| null; role: <a href="#attendeerole">AttendeeRole</a> \| null; status: <a href="#attendeestatus">AttendeeStatus</a> \| null; type: <a href="#attendeetype">AttendeeType</a> \| null; }[]</code> | 7.1.0 | Android, iOS |
| **`timezone`** | <code>string \| null</code> | 7.1.0 | Android, iOS |
#### ListEventsInRangeOptions
| Prop | Type | Description | Since |
| ---------- | ------------------- | ------------------------------ | ----- |
| **`from`** | <code>number</code> | The timestamp in milliseconds. | 7.1.0 |
| **`to`** | <code>number</code> | The timestamp in milliseconds. | 7.1.0 |
#### Calendar
| Prop | Type | Description | Since | Platform |
| -------------------------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------ | ----- | ------------ |
| **`id`** | <code>string</code> | | 7.1.0 | Android, iOS |
| **`title`** | <code>string</code> | | 7.1.0 | Android, iOS |
| **`internalTitle`** | <code>string \| null</code> | Internal name of the calendar (`CalendarContract.Calendars.NAME`). | 7.1.0 | Android |
| **`color`** | <code>string</code> | | 7.1.0 | Android, iOS |
| **`isImmutable`** | <code>boolean \| null</code> | | 7.1.0 | iOS |
| **`allowsContentModifications`** | <code>boolean \| null</code> | | 7.1.0 | iOS |
| **`type`** | <code><a href="#calendartype">CalendarType</a> \| null</code> | | 7.1.0 | iOS |
| **`isSubscribed`** | <code>boolean \| null</code> | | 7.1.0 | iOS |
| **`source`** | <code><a href="#calendarsource">CalendarSource</a> \| null</code> | | 7.1.0 | iOS |
| **`visible`** | <code>boolean \| null</code> | Indicates if the events from this calendar should be shown. | 7.1.0 | Android |
| **`accountName`** | <code>string \| null</code> | The account under which the calendar is registered. | 7.1.0 | Android |
| **`ownerAccount`** | <code>string \| null</code> | The owner of the calendar. | 7.1.0 | Android |
| **`maxReminders`** | <code>number \| null</code> | Maximum number of reminders allowed per event. | 7.1.0 | Android |
| **`location`** | <code>string \| null</code> | | 7.1.0 | Android |
#### CalendarSource
| Prop | Type | Since |
| ----------- | ----------------------------------------------------------------- | ----- |
| **`type`** | <code><a href="#calendarsourcetype">CalendarSourceType</a></code> | 7.1.0 |
| **`id`** | <code>string</code> | 7.1.0 |
| **`title`** | <code>string</code> | 7.1.0 |
#### SelectCalendarsWithPromptOptions
| Prop | Type | Description | Default | Since |
| ------------------ | ----------------------------------------------------------------------------------- | -------------------------- | ------------------------------------------------------ | ----- |
| **`displayStyle`** | <code><a href="#calendarchooserdisplaystyle">CalendarChooserDisplayStyle</a></code> | | <code>CalendarChooserDisplayStyle.ALL_CALENDARS</code> | 7.1.0 |
| **`multiple`** | <code>boolean</code> | Allow multiple selections. | <code>false</code> | 7.1.0 |
#### OpenCalendarOptions
| Prop | Type | Default | Since |
| ---------- | ------------------- | ----------------------- | ----- |
| **`date`** | <code>number</code> | <code>Date.now()</code> | 7.1.0 |
#### CreateCalendarOptions
| Prop | Type | Description | Since | Platform |
| ------------------ | ------------------- | ---------------------------------------------------------- | ----- | ------------ |
| **`title`** | <code>string</code> | | 5.2.0 | Android, iOS |
| **`color`** | <code>string</code> | The color of the calendar. Should be provided on Android. | 5.2.0 | Android, iOS |
| **`sourceId`** | <code>string</code> | | 5.2.0 | iOS |
| **`accountName`** | <code>string</code> | Only needed on Androi