npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@capgo/capacitor-calendar

v8.0.8

Published

Capacitor plugin for managing calendar events on iOS and Android, with reminders support on iOS.

Downloads

18,664

Readme

@capgo/capacitor-calendar

npm version npm downloads license Capacitor 8

Native calendar and reminders access for Capacitor apps. Use it to request calendar permissions, create and edit events, open the system calendar UI, list calendars and events, and manage Reminders on iOS.

This package is a Capgo-maintained version of the calendar plugin originally built by Ehsan Barooni, ported to the Capgo Capacitor plugin template and Capacitor 8.

Table of Contents

Installation

You can use our AI-Assisted Setup to install the plugin. Add the Capgo skills to your AI tool using the following command:

npx skills add https://github.com/cap-go/capacitor-skills --skill capacitor-plugins

Then use the following prompt:

Use the `capacitor-plugins` skill from `cap-go/capacitor-skills` to install the `@capgo/capacitor-calendar` plugin in my project.

If you prefer Manual Setup, install the plugin by running the following commands and follow the platform-specific instructions below:

npm install @capgo/capacitor-calendar
npx cap sync

Demo

| iOS | Android | | :---------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------: | | iOS demo of native calendar event creation | Android demo of native calendar event creation |

Setup

This plugin uses native calendar APIs, so each platform needs permission configuration before you request access at runtime.

Official platform references:

iOS

Add the usage descriptions your app needs to ios/App/App/Info.plist. iOS 17 and newer distinguish between write-only and full calendar access.

<key>NSCalendarsUsageDescription</key>
<string>This app needs calendar access.</string>
<key>NSCalendarsWriteOnlyAccessUsageDescription</key>
<string>This app needs permission to add calendar events.</string>
<key>NSCalendarsFullAccessUsageDescription</key>
<string>This app needs permission to read and manage calendar events.</string>
<key>NSRemindersUsageDescription</key>
<string>This app needs reminders access.</string>
<key>NSRemindersFullAccessUsageDescription</key>
<string>This app needs permission to read and manage reminders.</string>

Only include the keys that match the APIs your app calls. For example, an app that only creates calendar events with write-only access does not need the Reminders keys.

Android

Add the permissions your app needs to android/app/src/main/AndroidManifest.xml:

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

Then request the matching permission at runtime before reading or writing calendar data.

Quick Start

import { CapacitorCalendar } from '@capgo/capacitor-calendar';

const permission = await CapacitorCalendar.requestFullCalendarAccess();

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

const startDate = Date.now() + 60 * 60 * 1000;
const endDate = startDate + 60 * 60 * 1000;

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

console.log('Created event', id);

Dates are Unix timestamps in milliseconds.

Common Recipes

Open the native event editor

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

On Android, createEventWithPrompt and modifyEventWithPrompt always return null. List events afterward if you need to find the created event ID.

List upcoming events

const now = Date.now();
const oneWeekFromNow = now + 7 * 24 * 60 * 60 * 1000;

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

Choose a calendar

const { result: calendars } = await CapacitorCalendar.listCalendars();
const { result: defaultCalendar } = await CapacitorCalendar.getDefaultCalendar();

const calendarId = defaultCalendar?.id ?? calendars[0]?.id;

selectCalendarsWithPrompt is available on iOS when you want to show the system calendar picker.

Create an iOS reminder

const permission = await CapacitorCalendar.requestFullRemindersAccess();

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

Reminder APIs are iOS-only.

Platform Support

| Feature | iOS | Android | Web | | --------------------------------------------- | --- | ------- | --- | | Permission checks and requests | Yes | Yes | No | | Create, modify, delete, and list events | Yes | Yes | No | | Native event create, edit, and delete prompts | Yes | Yes | No | | Open the Calendar app | Yes | Yes | No | | List calendars and get the default calendar | Yes | Yes | No | | Calendar sources | Yes | No | No | | System calendar picker | Yes | No | No | | Create, modify, and delete calendars | Yes | Yes | No | | Reminder lists and reminder CRUD | Yes | No | No |

The web implementation exists only as a Capacitor stub and rejects native-only calls.

Compatibility

| Plugin version | Capacitor compatibility | Maintained | | -------------- | ----------------------- | ---------- | | v8.x.x | v8.x.x | Yes |

Documentation

The generated API reference is below. The source type definitions are in src/definitions.ts, and the package homepage is capgo.app/docs/plugins/calendar.

For compatibility with older code, requestPermission(...) and requestAllPermissions() are still available. New apps should prefer requestWriteOnlyCalendarAccess(), requestReadOnlyCalendarAccess(), requestFullCalendarAccess(), and requestFullRemindersAccess().

Changelog

See CHANGELOG.md for release notes.

License and Attribution

This package is released under MPL-2.0. The original @ebarooni/capacitor-calendar project was released under MIT by Ehsan Barooni; see THIRD_PARTY_NOTICES.md for attribution.

API

checkPermission(...)

checkPermission(options: { scope: CalendarPermissionScope; }) => Promise<{ result: PermissionState; }>

Retrieves the current permission state for a given scope.

| Param | Type | | ------------- | --------------------------------------------------------------------------------------- | | options | { scope: CalendarPermissionScope; } |

Returns: Promise<{ result: PermissionState; }>

Since: 0.1.0


checkAllPermissions()

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

Retrieves the current state of all permissions.

Returns: Promise<{ result: CheckAllPermissionsResult; }>

Since: 0.1.0


requestPermission(...)

requestPermission(options: { scope: CalendarPermissionScope; }) => Promise<{ result: PermissionState; }>

Requests permission for a given scope.

| Param | Type | | ------------- | --------------------------------------------------------------------------------------- | | options | { scope: CalendarPermissionScope; } |

Returns: Promise<{ result: PermissionState; }>

Since: 0.1.0


requestAllPermissions()

requestAllPermissions() => Promise<{ result: RequestAllPermissionsResult; }>

Requests permission for all calendar and reminder permissions.

Returns: Promise<{ result: CheckAllPermissionsResult; }>

Since: 0.1.0


requestWriteOnlyCalendarAccess()

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

Requests write access to the calendar.

Returns: Promise<{ result: PermissionState; }>

Since: 5.4.0


requestReadOnlyCalendarAccess()

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

Requests read access to the calendar.

Returns: Promise<{ result: PermissionState; }>

Since: 5.4.0


requestFullCalendarAccess()

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

Requests read and write access to the calendar.

Returns: Promise<{ result: PermissionState; }>

Since: 5.4.0


requestFullRemindersAccess()

requestFullRemindersAccess() => Promise<{ result: PermissionState; }>

Requests read and write access to reminders.

Returns: Promise<{ result: PermissionState; }>

Since: 5.4.0


createEventWithPrompt(...)

createEventWithPrompt(options?: CreateEventWithPromptOptions | undefined) => Promise<{ id: string | null; }>

Opens the system calendar interface to create a new event. On Android this always returns null; fetch events to find the newly created event ID.

| Param | Type | | ------------- | ------------------------------------------------------------------------------------- | | options | CreateEventWithPromptOptions |

Returns: Promise<{ id: string | null; }>

Since: 0.1.0


modifyEventWithPrompt(...)

modifyEventWithPrompt(options: ModifyEventWithPromptOptions) => Promise<{ result: EventEditAction | null; }>

Opens a system calendar interface to modify an event. On Android this always returns null.

| Param | Type | | ------------- | ------------------------------------------------------------------------------------- | | options | ModifyEventWithPromptOptions |

Returns: Promise<{ result: EventEditAction | null; }>

Since: 6.6.0


createEvent(...)

createEvent(options: CreateEventOptions) => Promise<{ id: string; }>

Creates an event in the calendar.

| Param | Type | | ------------- | ----------------------------------------------------------------- | | options | CreateEventOptions |

Returns: Promise<{ id: string; }>

Since: 0.4.0


modifyEvent(...)

modifyEvent(options: ModifyEventOptions) => Promise<void>

Modifies an event.

| Param | Type | | ------------- | ----------------------------------------------------------------- | | options | ModifyEventOptions |

Since: 6.6.0


deleteEventsById(...)

deleteEventsById(options: DeleteEventsByIdOptions) => Promise<{ result: DeleteEventsByIdResult; }>

Deletes multiple events.

| Param | Type | | ------------- | --------------------------------------------------------------------------- | | options | DeleteEventsByIdOptions |

Returns: Promise<{ result: DeleteEventsByIdResult; }>

Since: 0.11.0


deleteEvent(...)

deleteEvent(options: DeleteEventOptions) => Promise<void>

Deletes an event.

| Param | Type | | ------------- | ----------------------------------------------------------------- | | options | DeleteEventOptions |

Since: 7.1.0


deleteEventWithPrompt(...)

deleteEventWithPrompt(options: DeleteEventWithPromptOptions) => Promise<{ deleted: boolean; }>

Opens a dialog to delete an event.

| Param | Type | | ------------- | ------------------------------------------------------------------------------------- | | options | DeleteEventWithPromptOptions |

Returns: Promise<{ deleted: boolean; }>

Since: 7.1.0


listEventsInRange(...)

listEventsInRange(options: ListEventsInRangeOptions) => Promise<{ result: CalendarEvent[]; }>

Retrieves events within a date range.

| Param | Type | | ------------- | ----------------------------------------------------------------------------- | | options | ListEventsInRangeOptions |

Returns: Promise<{ result: CalendarEvent[]; }>

Since: 0.10.0


commit()

commit() => Promise<void>

Saves pending iOS calendar changes.

Since: 7.1.0


selectCalendarsWithPrompt(...)

selectCalendarsWithPrompt(options?: SelectCalendarsWithPromptOptions | undefined) => Promise<{ result: Calendar[]; }>

Opens a system interface to choose one or multiple calendars.

| Param | Type | | ------------- | --------------------------------------------------------------------------------------------- | | options | SelectCalendarsWithPromptOptions |

Returns: Promise<{ result: Calendar[]; }>

Since: 0.2.0


fetchAllCalendarSources()

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

Retrieves a list of calendar sources.

Returns: Promise<{ result: CalendarSource[]; }>

Since: 6.6.0


listCalendars()

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

Retrieves all available calendars.

Returns: Promise<{ result: Calendar[]; }>

Since: 7.1.0


getDefaultCalendar()

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

Retrieves the default calendar.

Returns: Promise<{ result: Calendar | null; }>

Since: 0.3.0


openCalendar(...)

openCalendar(options?: OpenCalendarOptions | undefined) => Promise<void>

Opens the calendar app.

| Param | Type | | ------------- | ------------------------------------------------------------------- | | options | OpenCalendarOptions |

Since: 7.1.0


createCalendar(...)

createCalendar(options: CreateCalendarOptions) => Promise<{ id: string; }>

Creates a calendar.

| Param | Type | | ------------- | ----------------------------------------------------------------------- | | options | CreateCalendarOptions |

Returns: Promise<{ id: string; }>

Since: 5.2.0


deleteCalendar(...)

deleteCalendar(options: DeleteCalendarOptions) => Promise<void>

Deletes a calendar by ID.

| Param | Type | | ------------- | ----------------------------------------------------------------------- | | options | DeleteCalendarOptions |

Since: 5.2.0


modifyCalendar(...)

modifyCalendar(options: ModifyCalendarOptions) => Promise<void>

Modifies a calendar.

| Param | Type | | ------------- | ----------------------------------------------------------------------- | | options | ModifyCalendarOptions |

Since: 7.2.0


fetchAllRemindersSources()

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

Retrieves a list of reminder sources.

Returns: Promise<{ result: CalendarSource[]; }>

Since: 6.6.0


openReminders()

openReminders() => Promise<void>

Opens the reminders app.

Since: 7.1.0


getDefaultRemindersList()

getDefaultRemindersList() => Promise<{ result: RemindersList | null; }>

Retrieves the default reminders list.

Returns: Promise<{ result: Calendar | null; }>

Since: 7.1.0


getRemindersLists()

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

Retrieves all available reminders lists.

Returns: Promise<{ result: Calendar[]; }>

Since: 7.1.0


createReminder(...)

createReminder(options: CreateReminderOptions) => Promise<{ id: string; }>

Creates a reminder.

| Param | Type | | ------------- | ----------------------------------------------------------------------- | | options | CreateReminderOptions |

Returns: Promise<{ id: string; }>

Since: 0.5.0


deleteRemindersById(...)

deleteRemindersById(options: DeleteRemindersByIdOptions) => Promise<{ result: DeleteRemindersByIdResult; }>

Deletes multiple reminders.

| Param | Type | | ------------- | --------------------------------------------------------------------------------- | | options | DeleteRemindersByIdOptions |

Returns: Promise<{ result: DeleteRemindersByIdResult; }>

Since: 5.3.0


deleteReminder(...)

deleteReminder(options: DeleteReminderOptions) => Promise<void>

Deletes a reminder.

| Param | Type | | ------------- | ----------------------------------------------------------------------- | | options | DeleteReminderOptions |

Since: 7.1.0


modifyReminder(...)

modifyReminder(options: ModifyReminderOptions) => Promise<void>

Modifies a reminder.

| Param | Type | | ------------- | ----------------------------------------------------------------------- | | options | ModifyReminderOptions |

Since: 6.7.0


getReminderById(...)

getReminderById(options: GetReminderByIdOptions) => Promise<{ result: Reminder | null; }>

Retrieves a reminder by ID.

| Param | Type | | ------------- | ------------------------------------------------------------------------- | | options | GetReminderByIdOptions |

Returns: Promise<{ result: Reminder | null; }>

Since: 7.1.0


getRemindersFromLists(...)

getRemindersFromLists(options: GetRemindersFromListsOptions) => Promise<{ result: Reminder[]; }>

Retrieves reminders from multiple lists.

| Param | Type | | ------------- | ------------------------------------------------------------------------------------- | | options | GetRemindersFromListsOptions |

Returns: Promise<{ result: Reminder[]; }>

Since: 5.3.0


deleteReminderWithPrompt(...)

deleteReminderWithPrompt(options: DeleteReminderWithPromptOptions) => Promise<{ deleted: boolean; }>

Opens a dialog to delete a reminder.

| Param | Type | | ------------- | ------------------------------------------------------------------------------------------- | | options | DeleteReminderWithPromptOptions |

Returns: Promise<{ deleted: boolean; }>

Since: 7.2.0


Interfaces

CreateEventWithPromptOptions

| Prop | Type | Description | Since | | ------------------ | ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----- | | alerts | number[] | Alert times in minutes relative to the event start. Use negative numbers for reminders before the start, and positive numbers for reminders after the start. On iOS only 2 alerts are supported. | 7.1.0 | | availability | EventAvailability | | 7.1.0 | | calendarId | string | | 0.1.0 | | description | string | | 7.1.0 | | endDate | number | | 0.1.0 | | invitees | string[] | An array of emails to invite. | 7.1.0 | | isAllDay | boolean | | 0.1.0 | | location | string | | 0.1.0 | | recurrence | EventRecurrenceRule | Rules for creating a recurring event. | 7.3.0 | | startDate | number | | 0.1.0 | | title | string | | 0.1.0 | | url | string | | 0.1.0 |

EventRecurrenceRule

| Prop | Type | Description | Default | Since | | -------------------- | ------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | ----- | | byMonth | number[] | Limits a yearly recurrence to specific months of the year. The values should be between 1 and 12. | | 7.1.0 | | byMonthDay | number[] | Limits a monthly recurrence to specific days of the month. The values should be between 1 and 31. | | 7.1.0 | | byWeekDay | number[] | Limits a weekly recurrence to specific weekdays. The values should be between 1 and 7. 1 means Monday and 7 means Sunday. | | 7.3.0 | | count | number | The total number of occurrences. If set, the recurrence ends after this many occurrences. If count is provided, end is ignored. | | 7.3.0 | | daysOfTheYear | number[] | Limits a yearly recurrence to specific days of the year (1 to 366). | | 7.3.0 | | end | number | End date of the recurrence series as a Unix timestamp in milliseconds. | | 7.1.0 | | frequency | RecurrenceFrequency | How often the event repeats. | | 7.3.0 | | interval | number | The interval between recurrences. Use in combination with frequency. For example, a weekly event with an interval of 2, results in the event occurring every 2 weeks. | 1 | 7.3.0 | | weeksOfTheYear | number[] | Limits a yearly recurrence to specific ISO week numbers (1 to 53). | | 7.3.0 |

ModifyEventWithPromptOptions

| Prop | Type | Description | Since | | -------- | ------------------- | ----------------------------------- | ----- | | id | string | The ID of the event to be modified. | 7.1.0 |

CreateEventOptions

| Prop | Type | Description | Default | Since | | ------------------ | ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------- | ----- | | alerts | number[] | Alert times in minutes relative to the event start. Use negative numbers for alerts before the start, and positive numbers for alerts after the start. | | 7.1.0 | | attendees | EventGuest[] | The event guests. | | 7.1.0 | | availability | EventAvailability | | | 7.1.0 | | calendarId | string | | | 0.1.0 | | color | string | | | 7.1.0 | | commit | boolean | Whether to save immediately (true) or batch changes for later (false). | true | 7.1.0 | | description | string | | | 7.1.0 | | duration | string | Duration of the event in RFC2445 format. | | 7.1.0 | | endDate | number | | | 0.1.0 | | isAllDay | boolean | | | 0.1.0 | | location | string | | | 0.1.0 | | organizer | string | Email of the event organizer. | | 7.1.0 | | recurrence | EventRecurrenceRule | Rules for creating a recurring event. | | 7.3.0 | | startDate | number | | | 0.1.0 | | title | string | | | 0.4.0 | | url | string | | | 0.1.0 |

EventGuest

| Prop | Type | Since | | ----------- | ------------------- | ----- | | name | string | 7.1.0 | | email | string | 7.1.0 |

ModifyEventOptions

| Prop | Type | Description | Default | Since | | ------------------ | ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------- | ----- | | alerts | number[] | Alert times in minutes relative to the event start. Use negative numbers for alerts before the start, and positive numbers for alerts after the start. | | 7.1.0 | | attendees | EventGuest[] | The event guests. | | 7.1.0 | | availability | EventAvailability | | | 7.1.0 | | calendarId | string | | | 0.1.0 | | color | string | | | 7.1.0 | | description | string | | | 7.1.0 | | duration | string | Duration of the event in RFC2445 format. | | 7.1.0 | | endDate | number | | | 0.1.0 | | id | string | The ID of the event to be modified. | | 7.1.0 | | isAllDay | boolean | | | 0.1.0 | | location | string | | | 0.1.0 | | recurrence | EventRecurrenceRule | Rules for creating a recurring event. | | 7.3.0 | | organizer | string | Email of the event organizer. | | 7.1.0 | | span | EventSpan | The span of modifications. | EventSpan.THIS_EVENT | | | startDate | number | | | 0.1.0 | | title | string | | | 0.4.0 | | url | string | | | 0.1.0 |

DeleteEventsByIdResult

| Prop | Type | Since | | ------------- | --------------------- | ----- | | deleted | string[] | 7.1.0 | | failed | string[] | 7.1.0 |

DeleteEventsByIdOptions

| Prop | Type | Description | Default | Since | | ---------- | ----------------------------------------------- | --------------------- | --------------------------------- | ----- | | ids | string[] | | | 7.1.0 | | span | EventSpan | The span of deletion. | EventSpan.THIS_EVENT | |

DeleteEventOptions

| Prop | Type | Description | Default | Since | | ---------- | ----------------------------------------------- | --------------------- | --------------------------------- | ----- | | id | string | | | 7.1.0 | | span | EventSpan | The span of deletion. | EventSpan.THIS_EVENT | |

DeleteEventWithPromptOptions

| Prop | Type | Description | Default | Since | | ----------------------- | ----------------------------------------------- | ----------------------------------- | --------------------------------- | ----- | | id | string | | | 7.1.0 | | span | EventSpan | The span of deletion. | EventSpan.THIS_EVENT | | | title | string | Title of the dialog. | | 7.1.0 | | message | string | Message of the dialog. | | 7.1.0 | | confirmButtonText | string | Text to show on the confirm button. | 'Delete' | 7.1.0 | | cancelButtonText | string | Text to show on the cancel button. | 'Cancel' | 7.1.0 |

CalendarEvent

| Prop | Type | Description | Since | | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- | ----- | | id | string | | 7.1.0 | | title | string | | 7.1.0 | | calendarId | string | null | | 7.1.0 | | location | string | null | | 7.1.0 | | startDate | number | | 7.1.0 | | endDate | number | | 7.1.0 | | isAllDay | boolean | | 7.1.0 | | alerts | number[] | Alert times in minutes relative to the event start. | 7.1.0 | | url | string | null | | 7.1.0 | | description | string | null | | 7.1.0 | | availability | EventAvailability | null | | 7.1.0 | | organizer | string | null | | 7.1.0 | | color | string | null | | 7.1.0 | | duration | string | null | | 7.1.0 | | isDetached | boolean | null | | 7.1.0 | | birthdayContactIdentifier | string | null | | 7.1.0 | | status | EventStatus | null | | 7.1.0 | | creationDate | number | null | | 7.1.0 | | lastModifiedDate | number | null | | 7.1.0 | | attendees | { email: string | null; name: string | null; role: AttendeeRole | null; status: AttendeeStatus | null; type: AttendeeType | null; }[] | | 7.1.0 | | timezone | string | null | | 7.1.0 |

ListEventsInRangeOptions

| Prop | Type | Description | Since | | ---------- | ------------------- | ------------------------------ | ----- | | from | number | The timestamp in milliseconds. | 7.1.0 | | to | number | The timestamp in milliseconds. | 7.1.0 |

Calendar

| Prop | Type | Description | Since | | -------------------------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------ | ----- | | id | string | | 7.1.0 | | title | string | | 7.1.0 | | internalTitle | string | null | Internal name of the calendar (CalendarContract.Calendars.NAME). | 7.1.0 | | color | string | | 7.1.0 | | isImmutable | boolean | null | | 7.1.0 | | allowsContentModifications | boolean | null | | 7.1.0 | | type | CalendarType | null | | 7.1.0 | | isSubscribed | boolean | null | | 7.1.0 | | source | CalendarSource | null | | 7.1.0 | | visible | boolean | null | Indicates if the events from this calendar should be shown. | 7.1.0 | | accountName | string | null | The account under which the calendar is registered. | 7.1.0 | | ownerAccount | string | null | The owner of the calendar. | 7.1.0 | | maxReminders | number | null | Maximum number of reminders allowed per event. | 7.1.0 | | location | string | null | | 7.1.0 |

CalendarSource

| Prop | Type | Since | | ----------- | ----------------------------------------------------------------- | ----- | | type | CalendarSourceType | 7.1.0 | | id | string | 7.1.0 | | title | string | 7.1.0 |

SelectCalendarsWithPromptOptions

| Prop | Type | Description | Default | Since | | ------------------ | ----------------------------------------------------------------------------------- | -------------------------- | ------------------------------------------------------ | ----- | | displayStyle | CalendarChooserDisplayStyle | | CalendarChooserDisplayStyle.ALL_CALENDARS | 7.1.0 | | multiple | boolean | Allow multiple selections. | false | 7.1.0 |

OpenCalendarOptions

| Prop | Type | Default | Since | | ---------- | ------------------- | ----------------------- | ----- | | date | number | Date.now() | 7.1.0 |

CreateCalendarOptions

| Prop | Type | Description | Since | | ------------------ | ------------------- | ---------------------------------------------------------- | ----- | | title | string | | 5.2.0 | | color | string | The color of the calendar. Should be provided on Android. | 5.2.0 | | sourceId | string | | 5.2.0 | | accountName | string | Only needed on Android. Typically set to an email address. | 7.1.0 | | ownerAccount | string | Only needed on Android. Typically set to an email address. | 7.1.0 |

DeleteCalendarOptions

| Prop | Type | Since | | -------- | ------------------- | ----- | | id | string | 7.1.0 |

ModifyCalendarOptions

| Prop | Type | Since | | ----------- | ------------------- | ----- | | id | string | 7.2.0 | | title | string | 7.2.0 | | color | string | 7.2.0 |

CreateReminderOptions

| Prop | Type | Description | Since | | -------------------- | --------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- | | title | string | | 7.1.0 | | listId | string | | 7.1.0 | | priority | number | | 7.1.0 | | isCompleted | boolean | | 7.1.0 | | startDate | number | | 7.1.0 | | dueDate | number | | 7.1.0 | | completionDate | number | | 7.1.0 | | notes | string | | 7.1.0 | | url | string | | 7.1.0 | | location | string | | 7.1.0 | | recurrence | RecurrenceRule | | 7.1.0 | | alerts | number[] | Alert times in minutes relative to the reminder start. Use negative numbers for alerts before the start, and positive numbers for alerts after the start. | 7.1.0 |

RecurrenceRule

| Prop | Type | Description | Since | | --------------- | ----------------------------------------