{"id":13777293,"url":"https://github.com/wmcmahan/React-Native-Calendar-Reminders","last_synced_at":"2025-05-11T11:33:14.210Z","repository":{"id":35157793,"uuid":"39394862","full_name":"wmcmahan/react-native-calendar-reminders","owner":"wmcmahan","description":"React Native Module for IOS Calendar Reminders","archived":false,"fork":false,"pushed_at":"2018-03-24T16:48:36.000Z","size":54,"stargazers_count":90,"open_issues_count":3,"forks_count":20,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-04-22T01:55:20.463Z","etag":null,"topics":["alarm","ios","ios-reminders","react-native","reminder"],"latest_commit_sha":null,"homepage":null,"language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"goodnesskay/Laravel-Open-Source-Projects","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wmcmahan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-07-20T16:21:46.000Z","updated_at":"2024-01-21T17:44:34.000Z","dependencies_parsed_at":"2022-09-15T15:10:33.604Z","dependency_job_id":null,"html_url":"https://github.com/wmcmahan/react-native-calendar-reminders","commit_stats":null,"previous_names":["wmcmahan/react-native-calendarreminders"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wmcmahan%2Freact-native-calendar-reminders","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wmcmahan%2Freact-native-calendar-reminders/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wmcmahan%2Freact-native-calendar-reminders/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wmcmahan%2Freact-native-calendar-reminders/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wmcmahan","download_url":"https://codeload.github.com/wmcmahan/react-native-calendar-reminders/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225043090,"owners_count":17411927,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alarm","ios","ios-reminders","react-native","reminder"],"created_at":"2024-08-03T18:00:41.091Z","updated_at":"2024-11-17T13:30:36.713Z","avatar_url":"https://github.com/wmcmahan.png","language":"Objective-C","funding_links":[],"categories":["\u003ca name=\"OS-\u0026-System-\u0026-File-Manager:-Native-Modules\"\u003eOS, System \u0026 File Manager: Native Modules\u003c/a\u003e"],"sub_categories":[],"readme":"# React Native Calendar Reminders\nReact Native Module for IOS Calendar Reminders\n\n## Install\n```\nnpm install --save react-native-calendar-reminders\n```\n\n## Link Library\n\n```\nreact-native link react-native-calendar-reminders\n```\n\n## plist - Usage Description\n\nSetting 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](https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html).\n\nFor updating the `Info.plist` key/value via Xcode, add a `Privacy - Reminders Usage Description` key with a usage description as the value.\n\n## Usage\n\nRequire the `react-native-calendar-reminders` module.\n\n```javascript\nimport RNCalendarReminders from 'react-native-calendar-reminders';\n```\n\n- React-Native 0.40 and above use 1.1.0 and above\n- React-Native 0.39 and below use 1.0.0 and below\n\n\n## Properties\n\n| Property        | Value            | Description |\n| :--------------- | :---------------- | :----------- |\n| id              | String (read only)             | Unique id for the reminder. |\n| calendarId      | String (write only)| Unique id for the calendar where the reminder will be saved. Defaults to the device's default calendar. |\n| title           | String             | The title for the reminder. |\n| startDate       | Date             | The start date of the reminder. |\n| dueDate         | Date             | The date by which the reminder should be completed. |\n| completionDate  | Date (read only) | The date on which the reminder was completed. |\n| location        | String           | The location associated with the reminder. |\n| notes           | String           | The notes associated with the reminder. |\n| alarms          | Array            | The alarms associated with the reminder, as an array of alarm objects. |\n| recurrence      | String           | The simple recurrence frequency of the reminder ['daily', 'weekly', 'monthly', 'yearly']. |\n| 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. |\n| isCompleted     | Bool             | A Boolean value determining whether or not the reminder is marked completed. |\n| calendar     | Object (read-only)  | The calendar containing the reminder. |\n\n\n## authorizationStatus\nGet authorization status for IOS EventStore.\n\n```javascript\nRNCalendarReminders.authorizationStatus()\n```\n\nReturns: Promise \n- fulfilled: String - `denied`, `restricted`, `authorized` or `undetermined`\n- rejected: Error\n\nExample:\n```javascript\nRNCalendarReminders.authorizationStatus()\n  .then(status =\u003e {\n    // handle status\n  })\n  .catch(error =\u003e {\n   // handle error\n  });\n```\n\n## authorizeEventStore\nRequest authorization to IOS EventStore. Authorization must be granted before accessing calendar events.\n\n```javascript\nRNCalendarReminders.authorizeEventStore()\n```\n\nReturns: Promise \n - fulfilled: String - `denied`, `restricted`, `authorized` or `undetermined`\n - rejected: Error\n\nExample:\n```javascript\nRNCalendarReminders.authorizeEventStore()\n  .then(status =\u003e {\n    // handle status\n  })\n  .catch(error =\u003e {\n   // handle error\n  });\n```\n\n## findReminderById\nFind calendar reminder by id.\nReturns a promise fulfilled with found reminder.\n\n```javascript\nRNCalendarReminders.findEventById(id)\n```\n\nParameters:\n - id: String - The reminder's unique id.\n\nReturns: Promise\n - fulfilled: Object | null - reminder.\n - rejected: Error\n\nExample:\n```javascript\nRNCalendarReminders.findEventById('FE6B128F-C0D8-4FB8-8FC6-D1D6BA015CDE')\n  .then(event =\u003e {\n    // handle reminder\n  })\n  .catch(error =\u003e {\n   // handle error\n  });\n```\n\n## fetchAllReminders\nFind all reminders.\n\n```javascript\nRNCalendarReminders.fetchAllReminders()\n```\n\nReturns: Promise\n - fulfilled: Array - List of reminders\n - rejected: Error\n\nExample:\n```javascript\nRNCalendarReminders.fetchAllReminders()\n  .then(reminders =\u003e {\n    // handle reminders\n  })\n  .catch(error =\u003e {\n   // handle error\n  });\n```\n\n## fetchCompletedReminders\nFinds completed reminders in a set of calendars within an optional range.\n\n```javascript\nRNCalendarReminders.fetchCompletedReminders()\n```\n\nParameters: \n - startDate: Date - The starting bound of the range to search.\n - endDate: Date - The ending bound of the range to search.\n\nReturns: Promise \n - fulfilled: Array - List of completed reminders from range\n - rejected: Error\n\nExample:\n```javascript\nRNCalendarReminders.fetchCompletedReminders(startDate, endDate)\n  .then(reminders =\u003e {\n    // handle reminders\n  })\n  .catch(error =\u003e {\n   // handle error\n  });\n```\n\n\n## fetchIncompleteReminders\nFinds incomplete reminders in a set of calendars within an optional range.\n\n```javascript\nRNCalendarReminders.fetchIncompleteReminders(startDate, endDate)\n```\n\nParameters: \n - startDate: Date - The starting bound of the range to search.\n - endDate: Date - The ending bound of the range to search.\n\nReturns: Promise \n - fulfilled: Array - List of incomplete reminders from range\n - rejected: Error\n\nExample:\n```javascript\nRNCalendarReminders.fetchIncompleteReminders(startDate, endDate)\n  .then(reminders =\u003e {\n    // handle reminders\n  })\n  .catch(error =\u003e {\n   // handle error\n  });\n```\n\n## saveReminder\nCreates a new reminder.\n\n```\nRNCalendarReminders.saveReminder(title, settings);\n```\n\nParameters: \n - title: String - The title of the reminder.\n - settings: Object - The settings for the reminder. See available properties above.\n\nReturns: Promise \n - fulfilled: String - ID of created reminder\n - rejected: Error\n\nExample:\n```javascript\nRNCalendarReminders.saveReminder('title', {\n    location: 'location',\n    notes: 'notes',\n    startDate: '2016-10-01T09:45:00.000UTC'\n  })\n  .then(id =\u003e {\n    // handle success\n  })\n  .catch(error =\u003e {\n   // handle error\n  });\n```\n\n## Create reminder with alarms\n\n### Alarm options:\n\n| Property        | Value            | Description |\n| :--------------- | :------------------| :----------- |\n| 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. |\n| structuredLocation | Object             | The location to trigger an alarm. |\n\n### Alarm structuredLocation properties:\n\n| Property        | Value            | Description |\n| :--------------- | :------------------| :----------- |\n| title           | String  | The title of the location.|\n| proximity | String             | A value indicating how a location-based alarm is triggered. Possible values: `enter`, `leave`, `none`. |\n| radius | Number             | A minimum distance from the core location that would trigger the reminder's alarm. |\n| coords | Object             | The geolocation coordinates, as an object with latitude and longitude properties |\n\nExample with date:\n\n```javascript\nRNCalendarReminders.saveReminder('title', {\n  location: 'location',\n  notes: 'notes',\n  startDate: '2016-10-01T09:45:00.000UTC',\n  alarms: [{\n    date: -1 // or absolute date\n  }]\n});\n```\n\nExample with structuredLocation:\n\n```javascript\nRNCalendarReminders.saveReminder('title', {\n  location: 'location',\n  notes: 'notes',\n  startDate: '2016-10-01T09:45:00.000UTC',\n  alarms: [{\n    structuredLocation: {\n      title: 'title',\n      proximity: 'enter',\n      radius: 500,\n      coords: {\n        latitude: 30.0000,\n        longitude: 97.0000\n      }\n    }\n  }]\n});\n```\n\nExample with recurrence:\n\n```javascript\nRNCalendarReminders.saveReminder('title', {\n  location: 'location',\n  notes: 'notes',\n  startDate: '2016-10-01T09:45:00.000UTC',\n  alarms: [{\n    date: -1 // or absolute date\n  }],\n  recurrence: 'daily'\n});\n```\n\nExample with recurrenceInterval:\n\n```javascript\nRNCalendarReminders.saveReminder('title', {\n  location: 'location',\n  notes: 'notes',\n  startDate: '2016-10-01T09:45:00.000UTC',\n  alarms: [{\n    date: -1 // or absolute date\n  }],\n  recurrence: 'weekly',\n  recurrenceInterval: '2'\n});\n```\n\n## updateReminder\nUpdates an existing reminder.\n\n```javascript\nRNCalendarReminders.updateReminder(id, settings)\n```\n\nParameters: \n - id: String - The unique ID of the reminder to edit.\n - settings: Object - The settings for the reminder. See available properties above.\n\nReturns: Promise \n - fulfilled: String - ID of updated reminder\n - rejected: Error\n\nExample:\n```javascript\nRNCalendarReminders.updateReminder('465E5BEB-F8B0-49D6-9174-272A4E5DEEFC', {\n    title: 'another title',\n    startDate: '2016-10-01T09:55:00.000UTC',\n  })\n  .then(id =\u003e {\n    // handle success\n  })\n  .catch(error =\u003e {\n   // handle error\n  });\n```\n\nOr save save the reminder again with **id** property set in the optional settings.\n\nExample:\n```javascript\nRNCalendarReminders.saveReminder('title', {\n    id: 'id',\n    location: 'location',\n    notes: 'notes',\n    startDate: '2016-10-02T09:45:00.000UTC'\n  })\n  .then(id =\u003e {\n    // handle success\n  })\n  .catch(error =\u003e {\n   // handle error\n  });\n```\n\n## addAlarms\nUpdate reminder with alarms. This will overwrite any alarms already set on the reminder.\n\n```javascript\nRNCalendarReminders.addAlarms(id, alarms)\n```\n\nParameters: \n - id: String - The unique ID of the reminder to add alarms to.\n - alarm: Objec - Alarm to add to reminder. See available alarm properties above.\n\nReturns: Promise \n - fulfilled: String - ID of reminder with alarms\n - rejected: Error\n\n```javascript\nRNCalendarReminders.addAlarms('465E5BEB-F8B0-49D6-9174-272A4E5DEEFC', [{\n    date: -2 // or absolute date\n  }])\n  .then(id =\u003e {\n    // handle success\n  })\n  .catch(error =\u003e {\n   // handle error\n  });\n```\n\n## addAlarm\nUpdate reminder with added alarm\n\n```javascript\nRNCalendarReminders.addAlarm(id, alarm)\n```\n\nParameters: \n - id: String - The unique ID of the reminder to add alarms to.\n - alarms: Array - List of alarms to add to reminder. See available alarm properties above.\n\nReturns: Promise \n - fulfilled: String - ID of reminder with alarms\n - rejected: Error\n\n\n```javascript\nRNCalendarReminders.addAlarm('465E5BEB-F8B0-49D6-9174-272A4E5DEEFC', {\n    date: -3 // or absolute date\n  })\n  .then(id =\u003e {\n    // handle success\n  })\n  .catch(error =\u003e {\n   // handle error\n  });\n```\n\n## removeReminder\nRemove existing reminder\n\nParameters: \n - id: String - The unique ID of the reminder to remove.\n\nReturns: Promise \n - fulfilled: Bool - True if successful\n - rejected: Error\n\n```javascript\nRNCalendarReminders.removeReminder('465E5BEB-F8B0-49D6-9174-272A4E5DEEFC')\n.then(successful =\u003e {\n    // handle success\n  })\n  .catch(error =\u003e {\n   // handle error\n  });\n```\n\n## findCalendars\nFinds all the calendars on the device.\n\n```javascript\nRNCalendarReminders.findCalendars();\n```\n\nReturns: Promise\n - fulfilled: Array - A list of known calendars on the device\n - rejected: Error\n\nExample:\n\n```javascript\nRNCalendarEvents.findCalendars()\n  .then(calendars =\u003e {\n    // handle calendars\n  })\n  .catch(error =\u003e {\n    // handle error\n  });\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwmcmahan%2FReact-Native-Calendar-Reminders","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwmcmahan%2FReact-Native-Calendar-Reminders","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwmcmahan%2FReact-Native-Calendar-Reminders/lists"}