React Native Module for IOS Calendar Reminders
React Native Module for IOS Calendar Reminders
npm install --save react-native-calendar-reminders
react-native link react-native-calendar-reminders
Setting up privacy usage descriptions may also be require depending on which iOS version is supported. This involves updating the Property List, Info.plist
, with the corresponding key for the EKEventStore api. Info.plist reference.
For updating the Info.plist
key/value via Xcode, add a Privacy - Reminders Usage Description
key with a usage description as the value.
Require the react-native-calendar-reminders
module.
import RNCalendarReminders from 'react-native-calendar-reminders';
Property | Value | Description |
---|---|---|
id | String (read only) | Unique id for the reminder. |
calendarId | String (write only) | Unique id for the calendar where the reminder will be saved. Defaults to the device’s default calendar. |
title | String | The title for the reminder. |
startDate | Date | The start date of the reminder. |
dueDate | Date | The date by which the reminder should be completed. |
completionDate | Date (read only) | The date on which the reminder was completed. |
location | String | The location associated with the reminder. |
notes | String | The notes associated with the reminder. |
alarms | Array | The alarms associated with the reminder, as an array of alarm objects. |
recurrence | String | The simple recurrence frequency of the reminder [‘daily’, ‘weekly’, ‘monthly’, ‘yearly’]. |
recurrenceInterval | String | The interval between instances of this recurrence. For example, a weekly recurrence rule with an interval of 2 occurs every other week. Must be greater than 0. |
isCompleted | Bool | A Boolean value determining whether or not the reminder is marked completed. |
calendar | Object (read-only) | The calendar containing the reminder. |
Get authorization status for IOS EventStore.
RNCalendarReminders.authorizationStatus()
Returns: Promise
denied
, restricted
, authorized
or undetermined
Example:
RNCalendarReminders.authorizationStatus()
.then(status => {
// handle status
})
.catch(error => {
// handle error
});
Request authorization to IOS EventStore. Authorization must be granted before accessing calendar events.
RNCalendarReminders.authorizeEventStore()
Returns: Promise
denied
, restricted
, authorized
or undetermined
Example:
RNCalendarReminders.authorizeEventStore()
.then(status => {
// handle status
})
.catch(error => {
// handle error
});
Find calendar reminder by id.
Returns a promise fulfilled with found reminder.
RNCalendarReminders.findEventById(id)
Parameters:
Returns: Promise
Example:
RNCalendarReminders.findEventById('FE6B128F-C0D8-4FB8-8FC6-D1D6BA015CDE')
.then(event => {
// handle reminder
})
.catch(error => {
// handle error
});
Find all reminders.
RNCalendarReminders.fetchAllReminders()
Returns: Promise
Example:
RNCalendarReminders.fetchAllReminders()
.then(reminders => {
// handle reminders
})
.catch(error => {
// handle error
});
Finds completed reminders in a set of calendars within an optional range.
RNCalendarReminders.fetchCompletedReminders()
Parameters:
Returns: Promise
Example:
RNCalendarReminders.fetchCompletedReminders(startDate, endDate)
.then(reminders => {
// handle reminders
})
.catch(error => {
// handle error
});
Finds incomplete reminders in a set of calendars within an optional range.
RNCalendarReminders.fetchIncompleteReminders(startDate, endDate)
Parameters:
Returns: Promise
Example:
RNCalendarReminders.fetchIncompleteReminders(startDate, endDate)
.then(reminders => {
// handle reminders
})
.catch(error => {
// handle error
});
Creates a new reminder.
RNCalendarReminders.saveReminder(title, settings);
Parameters:
Returns: Promise
Example:
RNCalendarReminders.saveReminder('title', {
location: 'location',
notes: 'notes',
startDate: '2016-10-01T09:45:00.000UTC'
})
.then(id => {
// handle success
})
.catch(error => {
// handle error
});
Property | Value | Description |
---|---|---|
date | Date or Number | If a Date is given, an alarm will be set with an absolute date. If a Number is given, an alarm will be set with a relative offset (in minutes) from the start date. |
structuredLocation | Object | The location to trigger an alarm. |
Property | Value | Description |
---|---|---|
title | String | The title of the location. |
proximity | String | A value indicating how a location-based alarm is triggered. Possible values: enter , leave , none . |
radius | Number | A minimum distance from the core location that would trigger the reminder’s alarm. |
coords | Object | The geolocation coordinates, as an object with latitude and longitude properties |
Example with date:
RNCalendarReminders.saveReminder('title', {
location: 'location',
notes: 'notes',
startDate: '2016-10-01T09:45:00.000UTC',
alarms: [{
date: -1 // or absolute date
}]
});
Example with structuredLocation:
RNCalendarReminders.saveReminder('title', {
location: 'location',
notes: 'notes',
startDate: '2016-10-01T09:45:00.000UTC',
alarms: [{
structuredLocation: {
title: 'title',
proximity: 'enter',
radius: 500,
coords: {
latitude: 30.0000,
longitude: 97.0000
}
}
}]
});
Example with recurrence:
RNCalendarReminders.saveReminder('title', {
location: 'location',
notes: 'notes',
startDate: '2016-10-01T09:45:00.000UTC',
alarms: [{
date: -1 // or absolute date
}],
recurrence: 'daily'
});
Example with recurrenceInterval:
RNCalendarReminders.saveReminder('title', {
location: 'location',
notes: 'notes',
startDate: '2016-10-01T09:45:00.000UTC',
alarms: [{
date: -1 // or absolute date
}],
recurrence: 'weekly',
recurrenceInterval: '2'
});
Updates an existing reminder.
RNCalendarReminders.updateReminder(id, settings)
Parameters:
Returns: Promise
Example:
RNCalendarReminders.updateReminder('465E5BEB-F8B0-49D6-9174-272A4E5DEEFC', {
title: 'another title',
startDate: '2016-10-01T09:55:00.000UTC',
})
.then(id => {
// handle success
})
.catch(error => {
// handle error
});
Or save save the reminder again with id property set in the optional settings.
Example:
RNCalendarReminders.saveReminder('title', {
id: 'id',
location: 'location',
notes: 'notes',
startDate: '2016-10-02T09:45:00.000UTC'
})
.then(id => {
// handle success
})
.catch(error => {
// handle error
});
Update reminder with alarms. This will overwrite any alarms already set on the reminder.
RNCalendarReminders.addAlarms(id, alarms)
Parameters:
Returns: Promise
RNCalendarReminders.addAlarms('465E5BEB-F8B0-49D6-9174-272A4E5DEEFC', [{
date: -2 // or absolute date
}])
.then(id => {
// handle success
})
.catch(error => {
// handle error
});
Update reminder with added alarm
RNCalendarReminders.addAlarm(id, alarm)
Parameters:
Returns: Promise
RNCalendarReminders.addAlarm('465E5BEB-F8B0-49D6-9174-272A4E5DEEFC', {
date: -3 // or absolute date
})
.then(id => {
// handle success
})
.catch(error => {
// handle error
});
Remove existing reminder
Parameters:
Returns: Promise
RNCalendarReminders.removeReminder('465E5BEB-F8B0-49D6-9174-272A4E5DEEFC')
.then(successful => {
// handle success
})
.catch(error => {
// handle error
});
Finds all the calendars on the device.
RNCalendarReminders.findCalendars();
Returns: Promise
Example:
RNCalendarEvents.findCalendars()
.then(calendars => {
// handle calendars
})
.catch(error => {
// handle error
});