# @ebarooni/capacitor-calendar

<p>
  <img src="https://img.shields.io/maintenance/yes/2026?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>
  <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>
  <a href="https://capacitorjs.com/">
    <img src="https://img.shields.io/badge/Capacitor-8.x-119EFF.svg?style=flat-square" />
  </a>
</p>

![capacitor-calendar-logo](assets/images/text-logo.png)

Full-featured Capacitor plugin for native calendar and reminders access. Manage permissions, create, modify, and delete events and reminders programmatically or via the native UI, query events within a given time period, and list all available calendars.

## Core Features

- ✅ **Events** – Create, update, delete, and list events in a date range
- ✅ **Native Prompts** – Built-in system dialogs for creating, editing, and deleting events
- ✅ **Permissions** – Granular control (full access, write-only, read-only)
- ✅ **Calendars** – List calendars, get default, create, modify, and delete custom calendars
- ✅ **Open Calendar App** – Launch the native Calendar app directly
- 📅 **Reminders** – Full create, read, update, delete support _(iOS only)_
- 🔍 **Advanced iOS Features** – Calendar sources, calendar selection prompts, default reminders list

## Supported Platforms

- **iOS** — Full support (including Reminders and advanced features)
- **Android** — Strong support for all core calendar features
- **Web** — Not supported (Capacitor stub only - calls will fail)

## Why this plugin?

- **Original and established.** Available since Capacitor 5, this plugin has been around longer than the alternatives and has matured over time.
- **Actively maintained by the original author.** Updates, bug fixes, and new features are driven by someone who is deeply familiar with the codebase and committed to keeping it healthy.
- **Fast support.** Questions, bug reports, and integration help are handled promptly.
- **Reduced vendor risk.** Relying on a single plugin provider for all your needs is a liability. Choosing specialized, independent maintainers keeps your stack resilient.

## Table of Contents

- [Installation](#installation)
- [Demo](#demo)
- [Setup](#setup)
- [Quick Start](#quick-start)
- [Usage Examples](#usage-examples)
- [Documentation](#documentation)
- [Changelog](#changelog)
- [API](#api)
- [Contributing](#contributing)
- [License](#license)

## Installation

```bash
npm install @ebarooni/capacitor-calendar
npx cap sync
```

## Demo

|             iOS 26              |             Android 16              |
| :-----------------------------: | :---------------------------------: |
| ![](./assets/demo/ios-demo.gif) | ![](./assets/demo/android-demo.gif) |

## Setup

This plugin works with native calendar APIs, so you'll need to configure permissions on each platform before requesting access at runtime.

### Android

Add these permissions to `android/app/src/main/AndroidManifest.xml`:

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

Don't forget to request the matching runtime permissions before reading from or writing to the calendar.

### iOS

Add the appropriate usage description keys to `ios/App/App/Info.plist`. Starting with iOS 17, Apple requires separate keys for write-only and full calendar access.

```xml
<key>NSCalendarsUsageDescription</key>
<string>This app needs access to your calendar.</string>

<key>NSCalendarsWriteOnlyAccessUsageDescription</key>
<string>This app needs permission to create calendar events.</string>

<key>NSCalendarsFullAccessUsageDescription</key>
<string>This app needs permission to read and manage your calendar events.</string>

<key>NSRemindersUsageDescription</key>
<string>This app needs access to your reminders.</string>

<key>NSRemindersFullAccessUsageDescription</key>
<string>This app needs permission to read and manage your reminders.</string>
```

> [!IMPORTANT]  
> Only include the keys your app actually needs. If you're only creating events, you can safely omit the full access and reminders entries.

### Official References

- **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)

## Quick Start

Here's a simple example to get you up and running quickly:

```typescript
import { CapacitorCalendar } from '@ebarooni/capacitor-calendar';

const { result } = await CapacitorCalendar.requestFullCalendarAccess();

if (result !== 'granted') {
  throw new Error('Calendar permission denied');
}

// Create an event starting in 1 hour, lasting 1 hour
const startDate = Date.now() + 60 * 60 * 1000;
const endDate = startDate + 60 * 60 * 1000;

const { id } = await CapacitorCalendar.createEvent({
  title: 'Product review',
  location: 'Office',
  startDate,
  endDate,
  description: 'Created with @ebarooni/capacitor-calendar',
});

console.log('Event created with ID:', id);
```

> [!NOTE]  
> Dates are expected as Unix timestamps in milliseconds.

## Usage Examples

### Open the native event editor

Use the system calendar UI to let users create or edit events:

```typescript
await CapacitorCalendar.createEventWithPrompt({
  title: 'Planning session',
  location: 'Office',
  startDate: Date.now() + 24 * 60 * 60 * 1000,
  endDate: Date.now() + 25 * 60 * 60 * 1000,
});
```

> [!NOTE]  
> On Android, this method always returns null. If you need the event ID, call `listEventsInRange(...)` afterward.

### List upcoming events

```typescript
const now = Date.now();
const oneWeekLater = now + 7 * 24 * 60 * 60 * 1000;

const { result: events } = await CapacitorCalendar.listEventsInRange({
  from: now,
  to: oneWeekLater,
});

console.log('Upcoming events:', events);
```

### Working with Calendars

```typescript
// Get all calendars and default calendar
const { result: calendars } = await CapacitorCalendar.listCalendars();
const { result: defaultCalendar } = await CapacitorCalendar.getDefaultCalendar();

// Use default or fall back to first calendar
const targetCalendarId = defaultCalendar?.id ?? calendars[0]?.id;
```

> [!NOTE]  
> On iOS you can also use `selectCalendarsWithPrompt()` to let the user pick calendars via the native interface.

### Create a Reminder (iOS only)

```typescript
const { result } = await CapacitorCalendar.requestFullRemindersAccess();

if (result === 'granted') {
  await CapacitorCalendar.createReminder({
    title: 'Send launch notes',
    dueDate: Date.now() + 2 * 24 * 60 * 60 * 1000,
    notes: 'Created with @ebarooni/capacitor-calendar',
  });
}
```

## Documentation

The full documentation is generated from TypeScript definitions and is available online:

- **[Complete Documentation](https://ebarooni.github.io/capacitor-calendar/)** — Guides, examples, and full API reference (recommended)
- **[Source Definitions](src/definitions.ts)** — The TypeScript source used to generate the docs

## Changelog

See [CHANGELOG.md](CHANGELOG.md) for the latest updates and release history.

## 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)
* [`createRemindersList(...)`](#createreminderslist)
* [`deleteRemindersList(...)`](#deletereminderslist)
* [`fetchAllRemindersSources()`](#fetchallreminderssources)
* [`openReminders()`](#openreminders)
* [`getDefaultRemindersList()`](#getdefaultreminderslist)
* [`getRemindersLists()`](#getreminderslists)
* [`createReminder(...)`](#createreminder)
* [`deleteRemindersById(...)`](#deleteremindersbyid)
* [`deleteReminder(...)`](#deletereminder)
* [`modifyReminder(...)`](#modifyreminder)
* [`getReminderById(...)`](#getreminderbyid)
* [`getRemindersFromLists(...)`](#getremindersfromlists)
* [`deleteReminderWithPrompt(...)`](#deletereminderwithprompt)
* [`updateRemindersList(...)`](#updatereminderslist)
* [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&lt;{ result: <a href="#permissionstate">PermissionState</a>; }&gt;</code>

**Since:** 0.1.0

**Platform:** Android, iOS

--------------------


### checkAllPermissions()

```typescript
checkAllPermissions() => Promise<{ result: CheckAllPermissionsResult; }>
```

Retrieves the current state of all permissions.

**Returns:** <code>Promise&lt;{ result: <a href="#checkallpermissionsresult">CheckAllPermissionsResult</a>; }&gt;</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&lt;{ result: <a href="#permissionstate">PermissionState</a>; }&gt;</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&lt;{ result: <a href="#checkallpermissionsresult">CheckAllPermissionsResult</a>; }&gt;</code>

**Since:** 0.1.0

**Platform:** Android, iOS

--------------------


### requestWriteOnlyCalendarAccess()

```typescript
requestWriteOnlyCalendarAccess() => Promise<{ result: PermissionState; }>
```

Requests write access to the calendar.

**Returns:** <code>Promise&lt;{ result: <a href="#permissionstate">PermissionState</a>; }&gt;</code>

**Since:** 5.4.0

**Platform:** Android, iOS

--------------------


### requestReadOnlyCalendarAccess()

```typescript
requestReadOnlyCalendarAccess() => Promise<{ result: PermissionState; }>
```

Requests read access to the calendar.

**Returns:** <code>Promise&lt;{ result: <a href="#permissionstate">PermissionState</a>; }&gt;</code>

**Since:** 5.4.0

**Platform:** Android

--------------------


### requestFullCalendarAccess()

```typescript
requestFullCalendarAccess() => Promise<{ result: PermissionState; }>
```

Requests read and write access to the calendar.

**Returns:** <code>Promise&lt;{ result: <a href="#permissionstate">PermissionState</a>; }&gt;</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&lt;{ result: <a href="#permissionstate">PermissionState</a>; }&gt;</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&lt;{ id: string | null; }&gt;</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&lt;{ result: <a href="#eventeditaction">EventEditAction</a> | null; }&gt;</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&lt;{ id: string; }&gt;</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&lt;{ result: <a href="#deleteeventsbyidresult">DeleteEventsByIdResult</a>; }&gt;</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&lt;{ deleted: boolean; }&gt;</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&lt;{ result: CalendarEvent[]; }&gt;</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&lt;{ result: Calendar[]; }&gt;</code>

**Since:** 0.2.0

**Platform:** iOS

--------------------


### fetchAllCalendarSources()

```typescript
fetchAllCalendarSources() => Promise<{ result: CalendarSource[]; }>
```

Retrieves a list of calendar sources.

**Returns:** <code>Promise&lt;{ result: CalendarSource[]; }&gt;</code>

**Since:** 6.6.0

**Platform:** iOS

--------------------


### listCalendars()

```typescript
listCalendars() => Promise<{ result: Calendar[]; }>
```

Retrieves a list of all available calendars.

**Returns:** <code>Promise&lt;{ result: Calendar[]; }&gt;</code>

**Since:** 7.1.0

**Platform:** Android, iOS

--------------------


### getDefaultCalendar()

```typescript
getDefaultCalendar() => Promise<{ result: Calendar | null; }>
```

Retrieves the default calendar.

**Returns:** <code>Promise&lt;{ result: <a href="#calendar">Calendar</a> | null; }&gt;</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&lt;{ id: string; }&gt;</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

--------------------


### createRemindersList(...)

```typescript
createRemindersList(options: CreateRemindersListOptions) => Promise<CreateRemindersListResult>
```

Creates a new reminders list.

| Param         | Type                                                                              |
| ------------- | --------------------------------------------------------------------------------- |
| **`options`** | <code><a href="#createreminderslistoptions">CreateRemindersListOptions</a></code> |

**Returns:** <code>Promise&lt;<a href="#createreminderslistresult">CreateRemindersListResult</a>&gt;</code>

**Since:** 8.1.0

**Platform:** iOS

--------------------


### deleteRemindersList(...)

```typescript
deleteRemindersList(options: DeleteRemindersListOptions) => Promise<void>
```

Deletes a reminders list.

| Param         | Type                                                                              |
| ------------- | --------------------------------------------------------------------------------- |
| **`options`** | <code><a href="#deletereminderslistoptions">DeleteRemindersListOptions</a></code> |

**Since:** 8.2.0

**Platform:** iOS

--------------------


### fetchAllRemindersSources()

```typescript
fetchAllRemindersSources() => Promise<{ result: CalendarSource[]; }>
```

Retrieves a list of calendar sources.

**Returns:** <code>Promise&lt;{ result: CalendarSource[]; }&gt;</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&lt;{ result: <a href="#calendar">Calendar</a> | null; }&gt;</code>

**Since:** 7.1.0

**Platform:** iOS

--------------------


### getRemindersLists()

```typescript
getRemindersLists() => Promise<{ result: RemindersList[]; }>
```

Retrieves all available reminders lists.

**Returns:** <code>Promise&lt;{ result: Calendar[]; }&gt;</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&lt;{ id: string; }&gt;</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&lt;{ result: <a href="#deleteremindersbyidresult">DeleteRemindersByIdResult</a>; }&gt;</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&lt;{ result: <a href="#reminder">Reminder</a> | null; }&gt;</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&lt;{ result: Reminder[]; }&gt;</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&lt;{ deleted: boolean; }&gt;</code>

**Since:** 7.2.0

**Platform:** iOS

--------------------


### updateRemindersList(...)

```typescript
updateRemindersList(options: UpdateRemindersListOptions) => Promise<UpdateRemindersListResult>
```

Update a reminders list with options.

| Param         | Type                                                                              |
| ------------- | --------------------------------------------------------------------------------- |
| **`options`** | <code><a href="#updatereminderslistoptions">UpdateRemindersListOptions</a></code> |

**Returns:** <code>Promise&lt;<a href="#updatereminderslistresult">UpdateRemindersListResult</a>&gt;</code>

**Since:** 8.2.0

**Platform:** iOS

--------------------


### Interfaces


#### CreateEventWithPromptOptions

| Prop               | Type                                                                | Description                                                                                                                                                                                      | Since | Platform     |
| ------------------ | ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----- | ------------ |
| **`alerts`**       | <code>number[]</code>                                               | 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 | iOS          |
| **`availability`** | <code><a href="#eventavailability">EventAvailability</a></code>     |                                                                                                                                                                                                  | 7.1.0 | Android, iOS |
| **`calendarId`**   | <code>string</code>                                                 |                                                                                                                                                                                                  | 0.1.0 | iOS          |
| **`description`**  | <code>string</code>                                                 |                                                                                                                                                                                                  | 7.1.0 | Android, iOS |
| **`endDate`**      | <code>number</code>                                                 |                                                                                                                                                                                                  | 0.1.0 | Android, iOS |
| **`invitees`**     | <code>string[]</code>                                               | An array of emails to invite.                                                                                                                                                                    | 7.1.0 | Android      |
| **`isAllDay`**     | <code>boolean</code>                                                |                                                                                                                                                                                                  | 0.1.0 | Android, iOS |
| **`location`**     | <code>string</code>                                                 |                                                                                                                                                                                                  | 0.1.0 | Android, iOS |
| **`recurrence`**   | <code><a href="#eventrecurrencerule">EventRecurrenceRule</a></code> | Rules for creating a recurring event.                                                                                                                                                            | 7.3.0 | Android, iOS |
| **`startDate`**    | <code>number</code>                                                 |                                                                                                                                                                                                  | 0.1.0 | Android, iOS |
| **`title`**        | <code>string</code>                                                 |                                                                                                                                                                                                  | 0.1.0 | Android, iOS |
| **`url`**          | <code>string</code>                                                 |                                                                                                                                                                                                  | 0.1.0 | iOS          |


#### EventRecurrenceRule

| Prop                 | Type                                                                | Description                                                                                                                                                             | Default        | Since | Platform     |
| -------------------- | ------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | ----- | ------------ |
| **`byMonth`**        | <code>number[]</code>                                               | Limits a yearly recurrence to specific months of the year. The values should be between 1 and 12.                                                                       |                | 7.1.0 | Android, iOS |
| **`byMonthDay`**     | <code>number[]</code>                                               | Limits a monthly recurrence to specific days of the month. The values should be between 1 and 31.                                                                       |                | 7.1.0 | Android, iOS |
| **`byWeekDay`**      | <code>number[]</code>                                               | 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 | Android, iOS |
| **`count`**          | <code>number</code>                                                 | The total number of occurrences. If set, the recurrence ends after this many occurrences. If `count` is provided, `end` is ignored.                                     |                | 7.3.0 | Android, iOS |
| **`daysOfTheYear`**  | <code>number[]</code>                                               | Limits a yearly recurrence to specific days of the year (1 to 366).                                                                                                     |                | 7.3.0 | iOS          |
| **`end`**            | <code>number</code>                                                 | End date of the recurrence series as a Unix timestamp in milliseconds.                                                                                                  |                | 7.1.0 | Android, iOS |
| **`frequency`**      | <code><a href="#recurrencefrequency">RecurrenceFrequency</a></code> | How often the event repeats.                                                                                                                                            |                | 7.3.0 | Android, iOS |
| **`interval`**       | <code>number</code>                                                 | 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. | <code>1</code> | 7.3.0 | Android, iOS |
| **`weeksOfTheYear`** | <code>number[]</code>                                               | Limits a yearly recurrence to specific ISO week numbers (1 to 53).                                                                                                      |                | 7.3.0 | iOS          |


#### ModifyEventWithPromptOptions

| Prop               | Type                                                                | Description                                                                                                                                                                                      | Since | Platform     |
| ------------------ | ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----- | ------------ |
| **`alerts`**       | <code>number[]</code>                                               | 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 | iOS          |
| **`availability`** | <code><a href="#eventavailability">EventAvailability</a></code>     |                                                                                                                                                                                                  | 7.1.0 | Android, iOS |
| **`calendarId`**   | <code>string</code>                                                 |                                                                                                                                                                                                  | 0.1.0 | iOS          |
| **`description`**  | <code>string</code>                                                 |                                                                                                                                                                                                  | 7.1.0 | Android, iOS |
| **`endDate`**      | <code>number</code>                                                 |                                                                                                                                                                                                  | 0.1.0 | Android, iOS |
| **`invitees`**     | <code>string[]</code>                                               | An array of emails to invite.                                                                                                                                                                    | 7.1.0 | Android      |
| **`isAllDay`**     | <code>boolean</code>                                                |                                                                                                                                                                                                  | 0.1.0 | Android, iOS |
| **`location`**     | <code>string</code>                                                 |                                                                                                                                                                                                  | 0.1.0 | Android, iOS |
| **`recurrence`**   | <code><a href="#eventrecurrencerule">EventRecurrenceRule</a></code> | Rules for creating a recurring event.                                                                                                                                                            | 7.3.0 | Android, iOS |
| **`startDate`**    | <code>number</code>                                                 |                                                                                                                                                                                                  | 0.1.0 | Android, iOS |
| **`title`**        | <code>string</code>                                                 |                                                                                                                                                                                                  | 0.1.0 | Android, iOS |
| **`url`**          | <code>string</code>                                                 |                                                                                                                                                                                                  | 0.1.0 | iOS          |
| **`id`**           | <code>string</code>                                                 | The ID of the event to be modified.                                                                                                                                                              | 7.1.0 | Android, iOS |


#### CreateEventOptions

| Prop               | Type                                                                | Description                                                                                                                                            | Default           | Since | Platform     |
| ------------------ | ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------- | ----- | ------------ |
| **`alerts`**       | <code>number[]</code>                                               | 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 | Android, iOS |
| **`attendees`**    | <code>EventGuest[]</code>                                           | The event guests.                                                                                                                                      |                   | 7.1.0 | Android      |
| **`availability`** | <code><a href="#eventavailability">EventAvailability</a></code>     |                                                                                                                                                        |                   | 7.1.0 | Android, iOS |
| **`calendarId`**   | <code>string</code>                                                 |                                                                                                                                                        |                   | 0.1.0 | Android, iOS |
| **`color`**        | <code>string</code>                                                 |                                                                                                                                                        |                   | 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          |
| **`description`**  | <code>string</code>                                                 |                                                                                                                                                        |                   | 7.1.0 | Android, iOS |
| **`duration`**     | <code>string</code>                                                 | Duration of the event in RFC2445 format.                                                                                                               |                   | 7.1.0 | Android      |
| **`endDate`**      | <code>number</code>                                                 |                                                                                                                                                        |                   | 0.1.0 | Android, iOS |
| **`isAllDay`**     | <code>boolean</code>                                                |                                                                                                                                                        |                   | 0.1.0 | Android, iOS |
| **`location`**     | <code>string</code>                                                 |                                                                                                                                                        |                   | 0.1.0 | Android, iOS |
| **`organizer`**    | <code>string</code>                                                 | Email of the event organizer.                                                                                                                          |                   | 7.1.0 | Android      |
| **`recurrence`**   | <code><a href="#eventrecurrencerule">EventRecurrenceRule</a></code> | Rules for creating a recurring event.                                                                                                                  |                   | 7.3.0 | Android, iOS |
| **`startDate`**    | <code>number</code>                                                 |                                                                                                                                                        |                   | 0.1.0 | Android, iOS |
| **`title`**        | <code>string</code>                                                 |                                                                                                                                                        |                   | 0.4.0 | Android, iOS |
| **`url`**          | <code>string</code>                                                 |                                                                                                                                                        |                   | 0.1.0 | iOS          |


#### 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     |
| ------------------ | ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------- | ----- | ------------ |
| **`alerts`**       | <code>number[]</code>                                               | 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 | Android, iOS |
| **`attendees`**    | <code>EventGuest[]</code>                                           | The event guests.                                                                                                                                      |                                   | 7.1.0 | Android      |
| **`availability`** | <code><a href="#eventavailability">EventAvailability</a></code>     |                                                                                                                                                        |                                   | 7.1.0 | Android, iOS |
| **`calendarId`**   | <code>string</code>                                                 |                                                                                                                                                        |                                   | 0.1.0 | Android, iOS |
| **`color`**        | <code>string</code>                                                 |                                                                                                                                                        |                                   | 7.1.0 | Android      |
| **`description`**  | <code>string</code>                                                 |                                                                                                                                                        |                                   | 7.1.0 | Android, iOS |
| **`duration`**     | <code>string</code>                                                 | Duration of the event in RFC2445 format.                                                                                                               |                                   | 7.1.0 | Android      |
| **`endDate`**      | <code>number</code>                                                 |                                                                                                                                                        |                                   | 0.1.0 | Android, iOS |
| **`id`**           | <code>string</code>                                                 | The ID of the event to be modified.                                                                                                                    |                                   | 7.1.0 | Android, iOS |
| **`isAllDay`**     | <code>boolean</code>                                                |                                                                                                                                                        |                                   | 0.1.0 | Android, iOS |
| **`location`**     | <code>string</code>                                                 |                                                                                                                                                        |                                   | 0.1.0 | Android, iOS |
| **`recurrence`**   | <code><a href="#eventrecurrencerule">EventRecurrenceRule</a></code> | Rules for creating a recurring event.                                                                                                                  |                                   | 7.3.0 | Android, iOS |
| **`organizer`**    | <code>string</code>                                                 | Email of the event organizer.                                                                                                                          |                                   | 7.1.0 | Android      |
| **`span`**         | <code><a href="#eventspan">EventSpan</a></code>                     | The span of modifications.                                                                                                                             | <code>EventSpan.THIS_EVENT</code> |       | iOS          |
| **`startDate`**    | <code>number</code>                                                 |                                                                                                                                                        |                                   | 0.1.0 | Android, iOS |
| **`title`**        | <code>string</code>                                                 |                                                                                                                                                        |                                   | 0.4.0 | Android, iOS |
| **`url`**          | <code>string</code>                                                 |                                                                                                                                                        |                                   | 0.1.0 | 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                                                                                                                                                                                                                                          | Description                                         | 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>                                                                                                                                                                                                                         | Alert times in minutes relative to the event start. | 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 Android. Typically set to an email address. | 7.1.0 | Android      |
| **`ownerAccount`** | <code>string</code> | Only needed on Android. Typically set to an email address. | 7.1.0 | Android      |


#### DeleteCalendarOptions

| Prop     | Type                | Since |
| -------- | ------------------- | ----- |
| **`id`** | <code>string</code> | 7.1.0 |


#### ModifyCalendarOptions

| Prop        | Type                | Since | Platform     |
| ----------- | ------------------- | ----- | ------------ |
| **`id`**    | <code>string</code> | 7.2.0 | Android, iOS |
| **`title`** | <code>string</code> | 7.2.0 | Android, iOS |
| **`color`** | <code>string</code> | 7.2.0 | Android, iOS |


#### CreateRemindersListResult

| Prop     | Type                | Description                                     | Since | Platform |
| -------- | ------------------- | ----------------------------------------------- | ----- | -------- |
| **`id`** | <code>string</code> | Identifier of the newly created reminders list. | 8.1.0 | iOS      |


#### CreateRemindersListOptions

| Prop           | Type                                                                                                                             | Description                                                                                                                                                                                                                  | Default             | Since | Platform |
| -------------- | -------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- | ----- | -------- |
| **`color`**    | <code>'blue' \| 'brown' \| 'gray' \| 'green' \| 'indigo' \| 'orange' \| 'pink' \| 'purple' \| 'red' \| 'teal' \| 'yellow'</code> | The color of the list.                                                                                                                                                                                                       | <code>'blue'</code> | 8.1.0 | iOS      |
| **`commit`**   | <code>boolean</code>                                                                                                             | Whether to save the list to the event store immediately. Pass `false` to batch multiple changes and commit them together using `CapacitorCalendar.commit()`, which is more efficient than committing each save individually. | <code>true</code>   | 8.1.0 | iOS      |
| **`sourceId`** | <code>string</code>                                                                                                              | The EKSource identifier (account) where the list should be created. If left undefined, iCloud will be used if available, otherwise falls back to local.                                                                      |                     | 8.1.0 | iOS      |
| **`title`**    | <code>string</code>                                                                                                              | The title of the list.                                                                                                                                                                                                       |                     | 8.1.0 | iOS      |


#### DeleteRemindersListOptions

| Prop         | Type                 | Description                                                                                                                                                                                                                      | Default           | Since | Platform |
| ------------ | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | ----- | -------- |
| **`commit`** | <code>boolean</code> | Whether to save the deletion to the event store immediately. Pass `false` to batch multiple changes and commit them together using `CapacitorCalendar.commit()`, which is more efficient than committing each save individually. | <code>true</code> | 8.2.0 | iOS      |
| **`id`**     | <code>string</code>  | Identifier of the reminders list to delete.                                                                                                                                                                                      |                   | 8.2.0 | iOS      |


#### CreateReminderOptions

| Prop                 | Type                                                      | Description                                                                                                                                               | Since |
| -------------------- | --------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- |
| **`title`**          | <code>string</code>                                       |                                                                                                                                                           | 7.1.0 |
| **`listId`**         | <code>string</code>                                       |                                                                                                                                                           | 7.1.0 |
| **`priority`**       | <code>number</code>                                       |                                                                                                                                                           | 7.1.0 |
| **`isCompleted`**    | <code>boolean</code>                                      |                                                                                                                                                           | 7.1.0 |
| **`startDate`**      | <code>number</code>                                       |                                                                                                                                                           | 7.1.0 |
| **`dueDate`**        | <code>number</code>                                       |                                                                                                                                                           | 7.1.0 |
| **`completionDate`** | <code>number</code>                                       |                                                                                                                                                           | 7.1.0 |
| **`notes`**          | <code>string</code>                                       |                                                                                                                                                           | 7.1.0 |
| **`url`**            | <code>string</code>                                       |                                                                                                                                                           | 7.1.0 |
| **`location`**       | <code>string</code>                                       |                                                                                                                                                           | 7.1.0 |
| **`recurrence`**     | <code><a href="#recurrencerule">RecurrenceRule</a></code> |                                                                                                                                                           | 7.1.0 |
| **`alerts`**         | <code>number[]</code>                                     | 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 |
| --------------- | ------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ----- |
| **`frequency`** | <code><a href="#recurrencefrequency">RecurrenceFrequency</a></code> |                                                                                    | 7.1.0 |
| **`interval`**  | <code>number</code>                                                 | How often it repeats (e.g. 1 for every occurrence, 2 for every second occurrence). | 7.1.0 |
| **`end`**       | <code>number</code>                                                 | Timestamp of when the recurrence ends.                                             | 7.1.0 |


#### DeleteRemindersByIdResult

| Prop          | Type                  | Since |
| ------------- | --------------------- | ----- |
| **`deleted`** | <code>string[]</code> | 7.1.0 |
| **`failed`**  | <code>string[]</code> | 7.1.0 |


#### DeleteRemindersByIdOptions

| Prop      | Type                  | Since |
| --------- | --------------------- | ----- |
| **`ids`** | <code>string[]</code> | 7.1.0 |


#### DeleteReminderOptions

| Prop     | Type                | Since |
| -------- | ------------------- | ----- |
| **`id`** | <code>string</code> | 7.1.0 |


#### ModifyReminderOptions

| Prop                 | Type                                                      | Description                                                                                                                                                                                   | Since |
| -------------------- | --------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- |
| **`id`**             | <code>string</code>                                       |                                                                                                                                                                                               | 7.1.0 |
| **`title`**          | <code>string</code>                                       |                                                                                                                                                                                               | 7.1.0 |
| **`listId`**         | <code>string</code>                                       |                                                                                                                                                                                               | 7.1.0 |
| **`priority`**       | <code>number</code>                                       |                                                                                                                                                                                               | 7.1.0 |
| **`isCompleted`**    | <code>boolean</code>                                      |                                                                                                                                                                                               | 7.1.0 |
| **`startDate`**      | <code>number</code>                                       |                                                                                                                                                                                               | 7.1.0 |
| **`dueDate`**        | <code>number</code>                                       |                                                                                                                                                                                               | 7.1.0 |
| **`completionDate`** | <code>number</code>                                       |                                                                                                                                                                                               | 7.1.0 |
| **`notes`**          | <code>string</code>                                       |                                                                                                                                                                                               | 7.1.0 |
| **`url`**            | <code>string</code>                                       |                                                                                                                                                                                               | 7.1.0 |
| **`location`**       | <code>string</code>                                       |                                                                                                                                                                                               | 7.1.0 |
| **`recurrence`**     | <code><a href="#recurrencerule">RecurrenceRule</a></code> |                                                                                                                                                                                               | 7.1.0 |
| **`alerts`**         | <code>number[]</code>                                     | 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. On iOS only 2 alerts are supported. | 7.1.0 |


#### Reminder

| Prop                 | Type                          | Since |
| -------------------- | ----------------------------- | ----- |
| **`id`**             | <code>string</code>           | 7.1.0 |
| **`title`**          | <code>string \| null</code>   | 7.1.0 |
| **`listId`**         | <code>string \| null</code>   | 7.1.0 |
| **`isCompleted`**    | <code>boolean</code>          | 7.1.0 |
| **`priority`**       | <code>number \| null</code>   | 7.1.0 |
| **`notes`**          | <code>string \| null</code>   | 7.1.0 |
| **`location`**       | <code>string \| null</code>   | 7.1.0 |
| **`url`**            | <code>string \| null</code>   | 7.1.0 |
| **`startDate`**      | <code>number \| null</code>   | 7.1.0 |
| **`dueDate`**        | <code>number \| null</code>   | 7.1.0 |
| **`completionDate`** | <code>number \| null</code>   | 7.1.0 |
| **`recurrence`**     | <code>RecurrenceRule[]</code> | 7.1.0 |
| **`alerts`**         | <code>number[]</code>         | 7.1.0 |


#### GetReminderByIdOptions

| Prop     | Type                | Since |
| -------- | ------------------- | ----- |
| **`id`** | <code>string</code> | 7.1.0 |


#### GetRemindersFromListsOptions

| Prop          | Type                  | Since |
| ------------- | --------------------- | ----- |
| **`listIds`** | <code>string[]</code> | 7.1.0 |


#### DeleteReminderWithPromptOptions

| Prop                    | Type                | Description                         | Default               | Since |
| ----------------------- | ------------------- | ----------------------------------- | --------------------- | ----- |
| **`id`**                | <code>string</code> |                                     |                       | 7.2.0 |
| **`title`**             | <code>string</code> | Title of the dialog.                |                       | 7.2.0 |
| **`message`**           | <code>string</code> | Message of the dialog.              |                       | 7.2.0 |
| **`confirmButtonText`** | <code>string</code> | Text to show on the confirm button. | <code>'Delete'</code> | 7.2.0 |
| **`cancelButtonText`**  | <code>string</code> | Text to show on the cancel button.  | <code>'Cancel'</code> | 7.2.0 |


#### UpdateRemindersListResult

| Prop     | Type                | Description                               | Since | Platform |
| -------- | ------------------- | ----------------------------------------- | ----- | -------- |
| **`id`** | <code>string</code> | Identifier of the updated reminders list. | 8.2.0 | iOS      |


#### UpdateRemindersListOptions

| Prop         | Type                                                                                                                             | Description                                                                                                                                                                                                             | Default           | Since | Platform |
| ------------ | -------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | ----- | -------- |
| **`color`**  | <code>'blue' \| 'brown' \| 'gray' \| 'green' \| 'indigo' \| 'orange' \| 'pink' \| 'purple' \| 'red' \| 'teal' \| 'yellow'</code> | The new color of the list. If omitted, the color is left unchanged.                                                                                                                                                     |                   | 8.1.0 | iOS      |
| **`commit`** | <code>boolean</code>                                                                                                             | Whether to save the update to the event store immediately. Pass `false` to batch multiple changes and commit them together using `eventStore.commit()`, which is more efficient than committing each save individually. | <code>true</code> | 8.2.0 | iOS      |
| **`id`**     | <code>string</code>                                                                                                              | The identifier of the list to update.                                                                                                                                                                                   |                   | 8.2.0 | iOS      |
| **`title`**  | <code>string</code>                                                                                                              | The new title of the list. If omitted, the title is left unchanged.                                                                                                                                                     |                   | 8.2.0 | iOS      |


### Type Aliases


#### PermissionState

<code>'prompt' | 'prompt-with-rationale' | 'granted' | 'denied'</code>


#### CheckAllPermissionsResult

<code><a href="#record">Record</a>&lt;<a href="#calendarpermissionscope">CalendarPermissionScope</a>, <a href="#permissionstate">PermissionState</a>&gt;</code>


#### Record

Construct a type with a set of properties K of type T

<code>{ [P in K]: T; }</code>


#### RequestAllPermissionsResult

<code><a href="#checkallpermissionsresult">CheckAllPermissionsResult</a></code>


#### RecurrenceFrequency

<code>'daily' | 'weekly' | 'monthly' | 'yearly'</code>


#### EventEditAction

<code>'canceled' | 'saved' | 'deleted'</code>


#### RemindersList

<code><a href="#calendar">Calendar</a></code>


### Enums


#### CalendarPermissionScope

| Members               | Value                         | Description                                                  | Since | Platform     |
| --------------------- | ----------------------------- | ------------------------------------------------------------ | ----- | ------------ |
| **`READ_CALENDAR`**   | <code>'readCalendar'</code>   | Permission required for reading calendar events.             | 7.1.0 | Android, iOS |
| **`READ_REMINDERS`**  | <code>'readReminders'</code>  | Permission required for reading reminders.                   | 7.1.0 | iOS          |
| **`WRITE_CALENDAR`**  | <code>'writeCalendar'</code>  | Permission required for adding or modifying calendar events. | 7.1.0 | Android, iOS |
| **`WRITE_REMINDERS`** | <code>'writeReminders'</code> | Permission required for adding or modifying reminders.       | 7.1.0 | iOS          |


#### EventAvailability

| Members             | Value           | Since | Platform     |
| ------------------- | --------------- | ----- | ------------ |
| **`NOT_SUPPORTED`** | <code>-1</code> | 7.1.0 | iOS          |
| **`BUSY`**          |                 | 7.1.0 | Android, iOS |
| **`FREE`**          |                 | 7.1.0 | Android, iOS |
| **`TENTATIVE`**     |                 | 7.1.0 | Android, iOS |
| **`UNAVAILABLE`**   |                 | 7.1.0 | iOS          |


#### EventSpan

| Members                      | Since |
| ---------------------------- | ----- |
| **`THIS_EVENT`**             | 7.1.0 |
| **`THIS_AND_FUTURE_EVENTS`** | 7.1.0 |


#### EventStatus

| Members         | Value                    | Since | Platform     |
| --------------- | ------------------------ | ----- | ------------ |
| **`NONE`**      | <code>'none'</code>      | 7.1.0 | iOS          |
| **`CONFIRMED`** | <code>'confirmed'</code> | 7.1.0 | Android, iOS |
| **`TENTATIVE`** | <code>'tentative'</code> | 7.1.0 | Android, iOS |
| **`CANCELED`**  | <code>'canceled'</code>  | 7.1.0 | Android, iOS |


#### AttendeeRole

| Members               | Value                         | Since | Platform     |
| --------------------- | ----------------------------- | ----- | ------------ |
| **`UNKNOWN`**         | <code>'unknown'</code>        | 7.1.0 | Android, iOS |
| **`REQUIRED`**        | <code>'required'</code>       | 7.1.0 | iOS          |
| **`OPTIONAL`**        | <code>'optional'</code>       | 7.1.0 | iOS          |
| **`CHAIR`**           | <code>'chair'</code>          | 7.1.0 | iOS          |
| **`NON_PARTICIPANT`** | <code>'nonParticipant'</code> | 7.1.0 | Android, iOS |
| **`ATTENDEE`**        | <code>'attendee'</code>       | 7.1.0 | Android      |
| **`ORGANIZER`**       | <code>'organizer'</code>      | 7.1.0 | Android      |
| **`PERFORMER`**       | <code>'performer'</code>      | 7.1.0 | Android      |
| **`SPEAKER`**         | <code>'speaker'</code>        | 7.1.0 | Android      |


#### AttendeeStatus

| Members          | Value                    | Since | Platform     |
| ---------------- | ------------------------ | ----- | ------------ |
| **`NONE`**       | <code>'none'</code>      | 7.1.0 | Android      |
| **`ACCEPTED`**   | <code>'accepted'</code>  | 7.1.0 | Android, iOS |
| **`DECLINED`**   | <code>'declined'</code>  | 7.1.0 | Android, iOS |
| **`INVITED`**    | <code>'invited'</code>   | 7.1.0 | Android      |
| **`UNKNOWN`**    | <code>'unknown'</code>   | 7.1.0 | iOS          |
| **`PENDING`**    | <code>'pending'</code>   | 7.1.0 | iOS          |
| **`TENTATIVE`**  | <code>'tentative'</code> | 7.1.0 | Android, iOS |
| **`DELEGATED`**  | <code>'delegated'</code> | 7.1.0 | iOS          |
| **`COMPLETED`**  | <code>'completed'</code> | 7.1.0 | iOS          |
| **`IN_PROCESS`** | <code>'inProcess'</code> | 7.1.0 | iOS          |


#### AttendeeType

| Members        | Value                   | Since | Platform     |
| -------------- | ----------------------- | ----- | ------------ |
| **`UNKNOWN`**  | <code>'unknown'</code>  | 7.1.0 | Android, iOS |
| **`PERSON`**   | <code>'person'</code>   | 7.1.0 | iOS          |
| **`ROOM`**     | <code>'room'</code>     | 7.1.0 | iOS          |
| **`RESOURCE`** | <code>'resource'</code> | 7.1.0 | Android, iOS |
| **`GROUP`**    | <code>'group'</code>    | 7.1.0 | iOS          |
| **`REQUIRED`** | <code>'required'</code> | 7.1.0 | Android      |
| **`NONE`**     | <code>'none'</code>     | 7.1.0 | Android      |
| **`OPTIONAL`** | <code>'optional'</code> | 7.1.0 | Android      |


#### CalendarType

| Members            | Since |
| ------------------ | ----- |
| **`LOCAL`**        | 7.1.0 |
| **`CAL_DAV`**      | 7.1.0 |
| **`EXCHANGE`**     | 7.1.0 |
| **`SUBSCRIPTION`** | 7.1.0 |
| **`BIRTHDAY`**     | 7.1.0 |


#### CalendarSourceType

| Members          | Since |
| ---------------- | ----- |
| **`LOCAL`**      | 7.1.0 |
| **`EXCHANGE`**   | 7.1.0 |
| **`CAL_DAV`**    | 7.1.0 |
| **`MOBILE_ME`**  | 7.1.0 |
| **`SUBSCRIBED`** | 7.1.0 |
| **`BIRTHDAYS`**  | 7.1.0 |


#### CalendarChooserDisplayStyle

| Members                       | Since |
| ----------------------------- | ----- |
| **`ALL_CALENDARS`**           | 0.2.0 |
| **`WRITABLE_CALENDARS_ONLY`** | 0.2.0 |

</docgen-api>

## Contributing

See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.

## License

This project is licensed under the **MIT License**. See [LICENSE](LICENSE) for details.
