entityType (string) -- (iOS only) Not required, but if defined, filters the returned calendars to a specific entity type. Possible values are Calendar.EntityTypes.EVENT (for calendars shown in the Calendar app) and Calendar.EntityTypes.REMINDER (for the Reminders app). Note: if not defined, you will need both permissions: CALENDAR and REMINDERS.
A map of details for the calendar to be created (see below for a description of these fields):
title (string) -- Required
color (string) -- Required
entityType (string) -- Required (iOS only)
sourceId (string) -- (iOS only) ID of the source to be used for the calendar. Likely the same as the source for any other locally stored calendars.
source (object) -- Required (Android only). Object representing the source to be used for the calendar.
isLocalAccount (boolean) -- Whether this source is the local phone account. Must be true if type is undefined.
name (string) -- Required. Name for the account that owns this calendar and was used to sync the calendar to the device.
type (string) -- Type of the account that owns this calendar and was used to sync it to the device. If isLocalAccount is falsy then this must be defined, and must match an account on the device along with name, or the OS will delete the calendar.
name (string) -- Required (Android only)
ownerAccount (string) -- Required (Android only)
timeZone (string) -- (Android only)
allowedAvailabilities (array) -- (Android only)
allowedReminders (array) -- (Android only)
allowedAttendeeTypes (array) -- (Android only)
isVisible (boolean) -- (Android only)
isSynced (boolean) -- (Android only) Whether or not the calendar is synced from a remote source. Unexpected behavior may occur if this is not set to true.
Returns all events in a given set of calendars over a specified time period. The filtering has slightly different behavior per-platform -- on iOS, all events that overlap at all with the [startDate, endDate] interval are returned, whereas on Android, only events that begin on or after the startDate and end on or before the endDate will be returned.
Returns a specific event selected by ID. If a specific instance of a recurring event is desired, the start date of this instance must also be provided, as instances of recurring events do not have their own unique and stable IDs on either iOS or Android.
id (string) -- ID of the event to return. Required.
recurringEventOptions (object) --
A map of options for recurring events:
instanceStartDate (Date) -- Date object representing the start time of the desired instance, if looking for a single instance of a recurring event. If this is not provided and id represents a recurring event, the first instance of that event will be returned by default.
id (string) -- ID of the event to be updated. Required.
details (object) --
A map of properties to be updated (see below for a description of these fields):
title (string)
startDate (Date)
endDate (Date)
allDay (boolean)
location (string)
notes (string)
alarms (Array\<Alarm>)
recurrenceRule (RecurrenceRule)
availability (string)
timeZone (string)
endTimeZone (string) -- (Android only)
url (string) -- (iOS only)
organizerEmail (string) -- (Android only)
accessLevel (string) -- (Android only)
guestsCanModify (boolean) -- (Android only)
guestsCanInviteOthers (boolean) -- (Android only)
guestsCanSeeGuests (boolean) -- (Android only)
recurringEventOptions (object) --
A map of options for recurring events:
instanceStartDate (Date) -- Date object representing the start time of the desired instance, if wanting to update a single instance of a recurring event. If this is not provided and id represents a recurring event, the first instance of that event will be updated by default.
futureEvents (boolean) -- Whether or not future events in the recurring series should also be updated. If true, will apply the given changes to the recurring instance specified by instanceStartDate and all future events in the series. If false, will only apply the given changes to the instance specified by instanceStartDate.
id (string) -- ID of the event to be deleted. Required.
recurringEventOptions (object) --
A map of options for recurring events:
instanceStartDate (Date) -- Date object representing the start time of the desired instance, if wanting to delete a single instance of a recurring event. If this is not provided and id represents a recurring event, the first instance of that event will be deleted by default.
futureEvents (boolean) -- Whether or not future events in the recurring series should also be deleted. If true, will delete the instance specified by instanceStartDate and all future events in the series. If false, will only delete the instance specified by instanceStartDate.
eventId (string) -- ID of the event to return attendees for. Required.
recurringEventOptions (object) --
A map of options for recurring events:
instanceStartDate (Date) -- Date object representing the start time of the desired instance, if looking for a single instance of a recurring event. If this is not provided and eventId represents a recurring event, the attendees of the first instance of that event will be returned by default.
Available on Android only. Creates a new attendee record and adds it to the specified event. Note that if eventId specifies a recurring event, this will add the attendee to every instance of the event.
Available on iOS only. Returns a list of reminders matching the provided criteria. If startDate and endDate are defined, returns all reminders that overlap at all with the [startDate, endDate] interval -- i.e. all reminders that end after the startDate or begin before the endDate.
calendarId (string) -- ID of the calendar to create this reminder in (or null to add the calendar to the OS-specified default calendar for reminders). Required.
details (object) --
A map of details for the reminder to be created: (see below for a description of these fields)
Available on iOS only. Updates the provided details of an existing reminder stored on the device. To remove a property, explicitly set it to null in details.
A calendar record upon which events (or, on iOS, reminders) can be stored. Settings here apply to the calendar as a whole and how its events are displayed in the OS calendar app.
Field name
Type
Platforms
Description
Possible values
id
string
both
Internal ID that represents this calendar on the device
title
string
both
Visible name of the calendar
entityType
string
iOS
Whether the calendar is used in the Calendar or Reminders OS app
A recurrence rule for events or reminders, allowing the same calendar item to recur multiple times. This interface is
based on the iOS interface which is in turn based on
the iCal RFC so you can refer to those to learn more about this
potentially complex interface.
Not all of the combinations make sense. For example, when frequency is DAILY, setting daysOfTheMonth makes no sense.
Interval at which the calendar item should recur. For example, an interval: 2 with frequency: DAILY would yield an event that recurs every other day. Defaults to 1.
endDate
Date
Date on which the calendar item should stop recurring; overrides occurrence if both are specified
occurrence
number
Number of times the calendar item should recur before stopping
daysOfTheWeek
array
(Optional, iOS only) the days of the week the event should recur on. An array of { dayOfTheWeek: DayOfTheWeek; weekNumber?: number }
dayOfTheWeek: Sunday to Saturday (enum DayOfTheWeek), weekNumber: -53 to 53 (0 ignores this field, and a negative indicates a value from the end of the range).
daysOfTheMonth
number[]
(Optional, iOS only) They days of the month this event occurs on
-31 to 31 (not including 0). Negative indicates a value from the end of the range. This field is only valid for Calendar.Frequency.Monthly.
monthsOfTheYear
MonthOfTheYear[]
(Optional, iOS only) The months this event occurs on.
This field is only valid for Calendar.Frequency.Yearly.
weeksOfTheYear
number[]
(Optional, iOS only) The weeks of the year this event occurs on.
-53 to 53 (not including 0). Negative indicates a value from the end of the range. This field is only valid for Calendar.Frequency.Yearly.
daysOfTheYear
number[]
(Optional, iOS only) The days of the year this event occurs on.
-366 to 366 (not including 0). Negative indicates a value from the end of the range. This field is only valid for Calendar.Frequency.Yearly.
setPositions
number[]
(Optional, iOS only) An array of numbers that filters which recurrences to include. For example, for an event that recurs every Monday, passing 2 here will make it recur every other Monday.
-366 to 366 (not including 0). Negative indicates a value from the end of the range. This field is only valid for Calendar.Frequency.Yearly.
A method for having the OS automatically remind the user about an calendar item
Field name
Type
Platforms
Description
Possible values
absoluteDate
Date
iOS
Date object or string representing an absolute time the alarm should occur; overrides relativeOffset and structuredLocation if specified alongside either
relativeOffset
number
both
Number of minutes from the startDate of the calendar item that the alarm should occur; use negative values to have the alarm occur before the startDate
method
string
Android
Method of alerting the user that this alarm should use; on iOS this is always a notification
A source account that owns a particular calendar. Expo apps will typically not need to interact with Source objects.
Field name
Type
Platforms
Description
Possible values
id
string
iOS
Internal ID that represents this source on the device
name
string
both
Name for the account that owns this calendar
type
string
both
Type of account that owns this calendar
on iOS, one of Calendar.SourceType.LOCAL, Calendar.SourceType.EXCHANGE, Calendar.SourceType.CALDAV, Calendar.SourceType.MOBILEME, Calendar.SourceType.SUBSCRIBED, or Calendar.SourceType.BIRTHDAYS