{"_id":"@capacitor/calendar","_rev":"5-dca91e911587e11ea9cad46938dfd737","name":"@capacitor/calendar","dist-tags":{"dev":"0.0.1-dev.0","latest":"1.0.1"},"versions":{"0.0.1-dev.0":{"name":"@capacitor/calendar","version":"0.0.1-dev.0","keywords":["capacitor","plugin","native"],"author":{"name":"OutSystems","email":"support@outsystems.com"},"license":"MIT","_id":"@capacitor/calendar@0.0.1-dev.0","maintainers":[{"name":"itschaced","email":"chace.daniels@outsystems.com"},{"name":"ionicjs","email":"hi@ionic.io"},{"name":"jcesarmobile","email":"jcesarmobile@gmail.com"},{"name":"vmfo","email":"vitor.oliveira@outsystems.com"},{"name":"jpender","email":"joey@ionic.io"},{"name":"mark-ionic","email":"mark@ionic.io"},{"name":"chuckytuh","email":"chuckynes@gmail.com"},{"name":"alexgerardojacinto","email":"agerardojacinto@gmail.com"},{"name":"os-pedrobilro","email":"pedro.gustavo.bilro@outsystems.com"},{"name":"harvdoggy","email":"eric.harvey@outsystems.com"},{"name":"jpender-os","email":"joey.pender@outsystems.com"},{"name":"ndr","email":"andre.destro@outsystems.com"},{"name":"kepatoto","email":"kepa.baum.totorica@outsystems.com"},{"name":"rui.mendes","email":"rui.moreira.mendes@outsystems.com"},{"name":"markemer","email":"emer@emer.net"},{"name":"capacitor-plugin-bot","email":"ossplugins@outsystems.com"},{"name":"eric-ionic","email":"horodyski@ionic.io"},{"name":"os-ruialves","email":"rui.alves@outsystems.com"}],"homepage":"https://github.com/ionic-team/capacitor-calendar#readme","bugs":{"url":"https://github.com/ionic-team/capacitor-calendar/issues"},"dist":{"shasum":"1428fe596e155d0365aaa54df21bef9c1301f735","tarball":"https://registry.npmjs.org/@capacitor/calendar/-/calendar-0.0.1-dev.0.tgz","fileCount":31,"integrity":"sha512-CzwgEhpi/0/KB5hEu2O02FCh//yuhTLWJKnxUmIxvjnuz8eQ9mBbeLzz1heZTRC1d9Xx90OxpI58Sf3Aq9qf3w==","signatures":[{"sig":"MEUCIQDVO/MRbgcoMJXKEST2tTlgVDW+FQ4dZ2XpYmbYS9I8iwIgGdub999Xbb15eBY0M72f8RRZtB1fbuG2+qazq0SwXzE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":179995},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"2b18c58bb2d94a42dbd85583339a5541cc63f71f","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api CalendarPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prepare":"npm run build","prettier":"prettier \"**/*.{css,html,ts,js,java}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme CapacitorCalendar -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","publish:cocoapod":"pod trunk push ./CapacitorCalendar.podspec --allow-warnings"},"_npmUser":{"name":"alexgerardojacinto","email":"agerardojacinto@gmail.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/ionic-team/capacitor-calendar.git","type":"git"},"_npmVersion":"10.9.2","description":"Create, find, modify and remove events in the device calendar.","directories":{},"_nodeVersion":"22.14.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.1","rimraf":"^6.1.0","rollup":"^4.53.2","prettier":"^3.6.2","swiftlint":"^2.0.0","typescript":"^5.9.3","@capacitor/ios":"^8.0.0","@capacitor/core":"^8.0.0","semantic-release":"^25.0.2","@capacitor/docgen":"^0.3.1","@capacitor/android":"^8.0.0","@ionic/eslint-config":"^0.4.0","prettier-plugin-java":"^2.7.7","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.2","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0","@semantic-release/github":"^12.0.2","@semantic-release/changelog":"^6.0.3"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/calendar_0.0.1-dev.0_1785272622493_0.4693335971406105","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@capacitor/calendar","version":"1.0.0","keywords":["capacitor","plugin","native"],"author":{"name":"OutSystems","email":"support@outsystems.com"},"license":"MIT","_id":"@capacitor/calendar@1.0.0","maintainers":[{"name":"itschaced","email":"chace.daniels@outsystems.com"},{"name":"ionicjs","email":"hi@ionic.io"},{"name":"jcesarmobile","email":"jcesarmobile@gmail.com"},{"name":"vmfo","email":"vitor.oliveira@outsystems.com"},{"name":"jpender","email":"joey@ionic.io"},{"name":"mark-ionic","email":"mark@ionic.io"},{"name":"chuckytuh","email":"chuckynes@gmail.com"},{"name":"alexgerardojacinto","email":"agerardojacinto@gmail.com"},{"name":"os-pedrobilro","email":"pedro.gustavo.bilro@outsystems.com"},{"name":"harvdoggy","email":"eric.harvey@outsystems.com"},{"name":"jpender-os","email":"joey.pender@outsystems.com"},{"name":"ndr","email":"andre.destro@outsystems.com"},{"name":"kepatoto","email":"kepa.baum.totorica@outsystems.com"},{"name":"rui.mendes","email":"rui.moreira.mendes@outsystems.com"},{"name":"markemer","email":"emer@emer.net"},{"name":"capacitor-plugin-bot","email":"ossplugins@outsystems.com"},{"name":"eric-ionic","email":"horodyski@ionic.io"},{"name":"os-ruialves","email":"rui.alves@outsystems.com"}],"homepage":"https://github.com/ionic-team/capacitor-calendar#readme","bugs":{"url":"https://github.com/ionic-team/capacitor-calendar/issues"},"dist":{"shasum":"deb1f9f7c6431e80f2476dac509db1a77a2c0734","tarball":"https://registry.npmjs.org/@capacitor/calendar/-/calendar-1.0.0.tgz","fileCount":31,"integrity":"sha512-B93ZFtFLNuE23sTeIJc9V8eEAZJsS5LDYMLeOzl2rSWnw0DFtxqrrNa9k7g3LpgpeDUygrqEZsn2tPuevsN2lA==","signatures":[{"sig":"MEYCIQCZu1sONvXH/GWOATPyKi44mwtuGhknHAZOowBbUTE9hwIhANcivS6xtmzx/UR+qQHCt9RfusfH8pxqiF5igW6OBnJj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capacitor%2fcalendar@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":179989},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"d4816b617d0cb052282d3c05b1bb91c40c6c9534","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api CalendarPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prepare":"npm run build","prettier":"prettier \"**/*.{css,html,ts,js,java}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme CapacitorCalendar -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","publish:cocoapod":"pod trunk push ./CapacitorCalendar.podspec --allow-warnings"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:55a56096-c9e0-4408-85ce-d80425f968fd"}},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/ionic-team/capacitor-calendar.git","type":"git"},"_npmVersion":"11.18.0","description":"Create, find, modify and remove events in the device calendar.","directories":{},"_nodeVersion":"22.23.1","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.1","rimraf":"^6.1.0","rollup":"^4.53.2","prettier":"^3.6.2","swiftlint":"^2.0.0","typescript":"^5.9.3","@capacitor/ios":"^8.0.0","@capacitor/core":"^8.0.0","semantic-release":"^25.0.2","@capacitor/docgen":"^0.3.1","@capacitor/android":"^8.0.0","@ionic/eslint-config":"^0.4.0","prettier-plugin-java":"^2.7.7","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.2","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0","@semantic-release/github":"^12.0.2","@semantic-release/changelog":"^6.0.3"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/calendar_1.0.0_1785337051260_0.20996235225351367","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@capacitor/calendar","version":"1.0.1","keywords":["capacitor","plugin","native"],"author":{"name":"OutSystems","email":"support@outsystems.com"},"license":"MIT","_id":"@capacitor/calendar@1.0.1","maintainers":[{"name":"itschaced","email":"chace.daniels@outsystems.com"},{"name":"ionicjs","email":"hi@ionic.io"},{"name":"jcesarmobile","email":"jcesarmobile@gmail.com"},{"name":"vmfo","email":"vitor.oliveira@outsystems.com"},{"name":"jpender","email":"joey@ionic.io"},{"name":"mark-ionic","email":"mark@ionic.io"},{"name":"chuckytuh","email":"chuckynes@gmail.com"},{"name":"alexgerardojacinto","email":"agerardojacinto@gmail.com"},{"name":"os-pedrobilro","email":"pedro.gustavo.bilro@outsystems.com"},{"name":"harvdoggy","email":"eric.harvey@outsystems.com"},{"name":"jpender-os","email":"joey.pender@outsystems.com"},{"name":"ndr","email":"andre.destro@outsystems.com"},{"name":"kepatoto","email":"kepa.baum.totorica@outsystems.com"},{"name":"rui.mendes","email":"rui.moreira.mendes@outsystems.com"},{"name":"markemer","email":"emer@emer.net"},{"name":"capacitor-plugin-bot","email":"ossplugins@outsystems.com"},{"name":"eric-ionic","email":"horodyski@ionic.io"},{"name":"os-ruialves","email":"rui.alves@outsystems.com"}],"homepage":"https://github.com/ionic-team/capacitor-calendar#readme","bugs":{"url":"https://github.com/ionic-team/capacitor-calendar/issues"},"dist":{"shasum":"820a81f041e64f51e4a9a9392fdb89c78da6091c","tarball":"https://registry.npmjs.org/@capacitor/calendar/-/calendar-1.0.1.tgz","fileCount":31,"integrity":"sha512-2ogW+Jlamy6BJkZmaggB/Jx282G+o3aBPfgx3GxmjlLjl8hqcorQKFhlCiveDui6xEKoVy13AQpKhukHQ8MrCQ==","signatures":[{"sig":"MEQCIGhMa9nurykKFatYeaaUqN4kQMJKkIah4epyLHD9BxGtAiAo+J4EOjFd3e66KCV5B5K1B5ZsoUMZsU38iw2clOm6+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capacitor%2fcalendar@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":180072},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"ff307b7a5b75ae578dd941a50d512cbc3f637506","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api CalendarPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prepare":"npm run build","prettier":"prettier \"**/*.{css,html,ts,js,java}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme CapacitorCalendar -destination generic/platform=iOS","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","publish:cocoapod":"pod trunk push ./CapacitorCalendar.podspec --allow-warnings"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:55a56096-c9e0-4408-85ce-d80425f968fd"}},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/ionic-team/capacitor-calendar.git","type":"git"},"_npmVersion":"11.19.0","description":"Create, find, modify and remove events in the device calendar.","directories":{},"_nodeVersion":"22.23.2","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.1","rimraf":"^6.1.0","rollup":"^4.53.2","prettier":"^3.6.2","swiftlint":"^2.0.0","typescript":"^5.9.3","@capacitor/ios":"^8.0.0","@capacitor/core":"^8.0.0","semantic-release":"^25.0.2","@capacitor/docgen":"^0.3.1","@capacitor/android":"^8.0.0","@ionic/eslint-config":"^0.4.0","prettier-plugin-java":"^2.7.7","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.2","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0","@semantic-release/github":"^12.0.2","@semantic-release/changelog":"^6.0.3"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/calendar_1.0.1_1787155113043_0.6288963702310186","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-07-28T21:03:42.372Z","modified":"2026-09-28T18:17:05.703Z","0.0.1-dev.0":"2026-07-28T21:03:42.642Z","1.0.0":"2026-07-29T14:57:31.405Z","1.0.1":"2026-08-19T15:58:33.196Z"},"bugs":{"url":"https://github.com/ionic-team/capacitor-calendar/issues"},"author":{"name":"OutSystems","email":"support@outsystems.com"},"license":"MIT","homepage":"https://github.com/ionic-team/capacitor-calendar#readme","keywords":["capacitor","plugin","native"],"repository":{"url":"git+https://github.com/ionic-team/capacitor-calendar.git","type":"git"},"description":"Create, find, modify and remove events in the device calendar.","maintainers":[{"email":"chace.daniels@outsystems.com","name":"itschaced"},{"email":"hi@ionic.io","name":"ionicjs"},{"email":"jcesarmobile@gmail.com","name":"jcesarmobile"},{"email":"vitor.oliveira@outsystems.com","name":"vmfo"},{"email":"joey@ionic.io","name":"jpender"},{"email":"mark@ionic.io","name":"mark-ionic"},{"email":"chuckynes@gmail.com","name":"chuckytuh"},{"email":"nuno.azevedo@outsystems.com","name":"nuno.azevedo-outsystems"},{"email":"trevorlambert11@gmail.com","name":"trevorlambert"},{"email":"agerardojacinto@gmail.com","name":"alexgerardojacinto"},{"email":"pedro.gustavo.bilro@outsystems.com","name":"os-pedrobilro"},{"email":"eric.harvey@outsystems.com","name":"harvdoggy"},{"email":"joey.pender@outsystems.com","name":"jpender-os"},{"email":"andre.destro@outsystems.com","name":"ndr"},{"email":"kepa.baum.totorica@outsystems.com","name":"kepatoto"},{"email":"rui.moreira.mendes@outsystems.com","name":"rui.mendes"},{"email":"emer@emer.net","name":"markemer"},{"email":"ossplugins@outsystems.com","name":"capacitor-plugin-bot"},{"email":"horodyski@ionic.io","name":"eric-ionic"},{"email":"rui.alves@outsystems.com","name":"os-ruialves"}],"readme":"# @capacitor/calendar\n\nCreate, find, modify and remove events in the device calendar. Not available on web.\n\n## Install\n\nTo use npm\n\n```bash\nnpm install @capacitor/calendar\n```\n\nTo use yarn\n\n```bash\nyarn add @capacitor/calendar\n```\n\nSync native files\n\n```bash\nnpx cap sync\n```\n\n## iOS\n\nAdd the calendar usage-description keys to your app's `Info.plist`; iOS\ncrashes on first calendar access without them. iOS 17 split calendar access\ninto two levels with their own keys; keep the pre-17 key for older devices:\n\n```xml\n<key>NSCalendarsFullAccessUsageDescription</key>\n<string>We need access to your calendar to search, create and remove events.</string>\n<key>NSCalendarsWriteOnlyAccessUsageDescription</key>\n<string>We need access to your calendar to create events.</string>\n<key>NSCalendarsUsageDescription</key>\n<string>We need access to your calendar to search, create and remove events.</string>\n```\n\nNotes:\n\n- The plugin uses the current EventKit access APIs\n  (`requestFullAccessToEvents` / `requestWriteOnlyAccessToEvents` on iOS\n  17+), never the deprecated `requestAccess(to:)`. `writeCalendar` is\n  satisfied by write-only access (\"Add Events Only\"); `readCalendar`\n  requires full access.\n- `createEventInteractively` presents the system event editor, which on\n  iOS 17+ needs no calendar permission at all.\n- EventKit stores dates at second granularity, so `startDate`/`endDate`\n  read back with milliseconds truncated. Android keeps exact milliseconds.\n\n## Android\n\nThe plugin declares `READ_CALENDAR` and `WRITE_CALENDAR` in its own\nmanifest; Gradle manifest merging adds them to your app automatically.\nMethods also request the runtime permission they need when it has not been\ngranted yet: read for `findEvents`/`listCalendars`, write for\n`createEvent`/`createCalendar`, both for `modifyEvent`/`deleteEvent`/\n`deleteCalendar`.\n\nPlatform notes:\n\n- `createEventInteractively` opens the system calendar editor, which\n  reports neither the saved event's id nor a cancel, so the call resolves\n  with an empty result when the editor closes.\n- `CreateEventOptions.url` is ignored: the platform's event model has no\n  URL field.\n\n## Errors\n\nEvery rejection carries a structured code + message:\n\n| Code                 | Meaning                                      |\n| -------------------- | -------------------------------------------- |\n| `OS-PLUG-CLDR-0000` | Unknown error                                |\n| `OS-PLUG-CLDR-0001` | Invalid argument (e.g. no matching event)    |\n| `OS-PLUG-CLDR-0003` | Pending operation (e.g. editor already open) |\n| `OS-PLUG-CLDR-0004` | I/O error                                    |\n| `OS-PLUG-CLDR-0005` | Not supported                                |\n| `OS-PLUG-CLDR-0006` | Operation cancelled (editor closed)          |\n| `OS-PLUG-CLDR-0020` | Permission denied                            |\n\n## API\n\n<docgen-index>\n\n* [`checkPermissions()`](#checkpermissions)\n* [`requestPermissions(...)`](#requestpermissions)\n* [`createEvent(...)`](#createevent)\n* [`createEventInteractively(...)`](#createeventinteractively)\n* [`modifyEvent(...)`](#modifyevent)\n* [`findEvents(...)`](#findevents)\n* [`deleteEvent(...)`](#deleteevent)\n* [`listCalendars()`](#listcalendars)\n* [`createCalendar(...)`](#createcalendar)\n* [`deleteCalendar(...)`](#deletecalendar)\n* [`openCalendar(...)`](#opencalendar)\n* [Interfaces](#interfaces)\n* [Type Aliases](#type-aliases)\n\n</docgen-index>\n\n<docgen-api>\n<!--Update the source file JSDoc comments and rerun docgen to update the docs below-->\n\n### checkPermissions()\n\n```typescript\ncheckPermissions() => Promise<CalendarPermissionStatus>\n```\n\nReturns the current calendar permission state without prompting.\n\nOn iOS 17+, `readCalendar` reflects full access; `writeCalendar` is also\ngranted by write-only access (\"Add Events Only\").\n\n**Returns:** <code>Promise&lt;<a href=\"#calendarpermissionstatus\">CalendarPermissionStatus</a>&gt;</code>\n\n**Since:** 1.0.0\n\n--------------------\n\n\n### requestPermissions(...)\n\n```typescript\nrequestPermissions(options?: RequestPermissionsOptions | undefined) => Promise<CalendarPermissionStatus>\n```\n\nPrompts for the given calendar permissions (both when omitted).\n\nOn iOS, requesting `readCalendar` prompts for full access; requesting only\n`writeCalendar` prompts for write-only access on iOS 17+.\n\n| Param         | Type                                                                            |\n| ------------- | ------------------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#requestpermissionsoptions\">RequestPermissionsOptions</a></code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#calendarpermissionstatus\">CalendarPermissionStatus</a>&gt;</code>\n\n**Since:** 1.0.0\n\n--------------------\n\n\n### createEvent(...)\n\n```typescript\ncreateEvent(options: CreateEventOptions) => Promise<CreateEventResult>\n```\n\nCreates a calendar event silently and resolves with its id.\n\nRequires write permission; requests it when not yet determined.\n\n| Param         | Type                                                              |\n| ------------- | ----------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#createeventoptions\">CreateEventOptions</a></code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#createeventresult\">CreateEventResult</a>&gt;</code>\n\n**Since:** 1.0.0\n\n--------------------\n\n\n### createEventInteractively(...)\n\n```typescript\ncreateEventInteractively(options: CreateEventOptions) => Promise<CreateEventResult>\n```\n\nOpens the system event-editing UI prefilled with the given values.\nResolves when the user saves (with the new event's id where the platform\nprovides one; Android does not) and fails with `OS-PLUG-CLDR-0006` when\nthe user cancels.\n\nOn iOS 17+ the editor needs no calendar permission. On Android and older\niOS versions, write permission is requested first.\n\n| Param         | Type                                                              |\n| ------------- | ----------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#createeventoptions\">CreateEventOptions</a></code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#createeventresult\">CreateEventResult</a>&gt;</code>\n\n**Since:** 1.0.0\n\n--------------------\n\n\n### modifyEvent(...)\n\n```typescript\nmodifyEvent(options: ModifyEventOptions) => Promise<void>\n```\n\nUpdates the first event matching `filter` with the values in `newEvent`.\nOnly the fields present in `newEvent` are changed. Fails with\n`OS-PLUG-CLDR-0001` when no event matches.\n\nRequires read and write permission.\n\n| Param         | Type                                                              |\n| ------------- | ----------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#modifyeventoptions\">ModifyEventOptions</a></code> |\n\n**Since:** 1.0.0\n\n--------------------\n\n\n### findEvents(...)\n\n```typescript\nfindEvents(options: FindEventsOptions) => Promise<FindEventsResult>\n```\n\nReturns events matching the filter fields within the date range.\n`title`, `location` and `notes` match case-insensitive substrings;\n`calendarName` restricts the search to that calendar. A recurring\nevent is returned once per occurrence in the range, each with its\nown dates.\n\nRequires read permission.\n\n| Param         | Type                                                            |\n| ------------- | --------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#findeventsoptions\">FindEventsOptions</a></code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#findeventsresult\">FindEventsResult</a>&gt;</code>\n\n**Since:** 1.0.0\n\n--------------------\n\n\n### deleteEvent(...)\n\n```typescript\ndeleteEvent(options: DeleteEventOptions) => Promise<void>\n```\n\nDeletes events: by `id` when given, otherwise every event matching the\nfilter fields. Fails with `OS-PLUG-CLDR-0001` when nothing matches.\nDeleting a recurring event removes the entire series.\n\nRequires read and write permission.\n\n| Param         | Type                                                              |\n| ------------- | ----------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#deleteeventoptions\">DeleteEventOptions</a></code> |\n\n**Since:** 1.0.0\n\n--------------------\n\n\n### listCalendars()\n\n```typescript\nlistCalendars() => Promise<ListCalendarsResult>\n```\n\nReturns the calendars available on the device.\n\nRequires read permission.\n\n**Returns:** <code>Promise&lt;<a href=\"#listcalendarsresult\">ListCalendarsResult</a>&gt;</code>\n\n**Since:** 1.0.0\n\n--------------------\n\n\n### createCalendar(...)\n\n```typescript\ncreateCalendar(options: CreateCalendarOptions) => Promise<CreateCalendarResult>\n```\n\nCreates a calendar and resolves with its id.\n\nRequires write permission.\n\n| Param         | Type                                                                    |\n| ------------- | ----------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#createcalendaroptions\">CreateCalendarOptions</a></code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#createcalendarresult\">CreateCalendarResult</a>&gt;</code>\n\n**Since:** 1.0.0\n\n--------------------\n\n\n### deleteCalendar(...)\n\n```typescript\ndeleteCalendar(options: DeleteCalendarOptions) => Promise<void>\n```\n\nDeletes the calendar with the given name. Fails with\n`OS-PLUG-CLDR-0001` when no calendar has that name.\n\nRequires read and write permission.\n\n| Param         | Type                                                                    |\n| ------------- | ----------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#deletecalendaroptions\">DeleteCalendarOptions</a></code> |\n\n**Since:** 1.0.0\n\n--------------------\n\n\n### openCalendar(...)\n\n```typescript\nopenCalendar(options?: OpenCalendarOptions | undefined) => Promise<void>\n```\n\nOpens the system calendar app at the given date (today when omitted).\nNeeds no calendar permission.\n\n| Param         | Type                                                                |\n| ------------- | ------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#opencalendaroptions\">OpenCalendarOptions</a></code> |\n\n**Since:** 1.0.0\n\n--------------------\n\n\n### Interfaces\n\n\n#### CalendarPermissionStatus\n\nPermission state per calendar permission.\n\n| Prop                | Type                                                        | Description                               | Since |\n| ------------------- | ----------------------------------------------------------- | ----------------------------------------- | ----- |\n| **`readCalendar`**  | <code><a href=\"#permissionstate\">PermissionState</a></code> | Permission to read calendar events.       | 1.0.0 |\n| **`writeCalendar`** | <code><a href=\"#permissionstate\">PermissionState</a></code> | Permission to add events to the calendar. | 1.0.0 |\n\n\n#### RequestPermissionsOptions\n\nOptions accepted by {@link CalendarPlugin.requestPermissions}.\n\n| Prop              | Type                                  | Description                                                  | Since |\n| ----------------- | ------------------------------------- | ------------------------------------------------------------ | ----- |\n| **`permissions`** | <code>CalendarPermissionType[]</code> | The permissions to request. Both are requested when omitted. | 1.0.0 |\n\n\n#### CreateEventResult\n\nResult of {@link CalendarPlugin.createEvent} and\n{@link CalendarPlugin.createEventInteractively}.\n\n| Prop     | Type                | Description                                                                                         | Since |\n| -------- | ------------------- | --------------------------------------------------------------------------------------------------- | ----- |\n| **`id`** | <code>string</code> | The created event's id. Absent when the platform does not report it (Android's interactive editor). | 1.0.0 |\n\n\n#### CreateEventOptions\n\nOptions accepted by {@link CalendarPlugin.createEvent} and\n{@link CalendarPlugin.createEventInteractively}, and the new values of\n{@link CalendarPlugin.modifyEvent}.\n\n| Prop                        | Type                                                        | Description                                                                                                                        | Since |\n| --------------------------- | ----------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ----- |\n| **`title`**                 | <code>string</code>                                         | The event title.                                                                                                                   | 1.0.0 |\n| **`location`**              | <code>string</code>                                         | The event location.                                                                                                                | 1.0.0 |\n| **`notes`**                 | <code>string</code>                                         | Free-form event notes.                                                                                                             | 1.0.0 |\n| **`startDate`**             | <code>number</code>                                         | Event start as epoch milliseconds.                                                                                                 | 1.0.0 |\n| **`endDate`**               | <code>number</code>                                         | Event end as epoch milliseconds.                                                                                                   | 1.0.0 |\n| **`isAllDay`**              | <code>boolean</code>                                        | Whether the event lasts all day.                                                                                                   | 1.0.0 |\n| **`calendarId`**            | <code>string</code>                                         | Id of the calendar to create the event in. Takes precedence over `calendarName`; the default calendar is used when neither is set. | 1.0.0 |\n| **`calendarName`**          | <code>string</code>                                         | Name of the calendar to create the event in.                                                                                       | 1.0.0 |\n| **`url`**                   | <code>string</code>                                         | URL attached to the event. **Android:** the platform's event model has no URL field; the value is ignored.                         | 1.0.0 |\n| **`firstReminderMinutes`**  | <code>number</code>                                         | Minutes before the event for the first reminder.                                                                                   | 1.0.0 |\n| **`secondReminderMinutes`** | <code>number</code>                                         | Minutes before the event for the second reminder.                                                                                  | 1.0.0 |\n| **`recurrence`**            | <code><a href=\"#eventrecurrence\">EventRecurrence</a></code> | Recurrence rule for a repeating event.                                                                                             | 1.0.0 |\n\n\n#### EventRecurrence\n\nRecurrence rule applied to a created event.\n\n| Prop            | Type                                                                | Description                                                                                                                   | Since |\n| --------------- | ------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----- |\n| **`frequency`** | <code><a href=\"#recurrencefrequency\">RecurrenceFrequency</a></code> | How often the event repeats.                                                                                                  | 1.0.0 |\n| **`interval`**  | <code>number</code>                                                 | Repeat every `interval` periods of `frequency` (default 1).                                                                   | 1.0.0 |\n| **`endDate`**   | <code>number</code>                                                 | Last possible date of a repetition, as epoch milliseconds. Mutually exclusive with `count`; `endDate` wins when both are set. | 1.0.0 |\n| **`count`**     | <code>number</code>                                                 | Total number of repetitions.                                                                                                  | 1.0.0 |\n\n\n#### ModifyEventOptions\n\nOptions accepted by {@link CalendarPlugin.modifyEvent}.\n\n| Prop           | Type                                                                                                    | Description                                               | Since |\n| -------------- | ------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | ----- |\n| **`filter`**   | <code><a href=\"#eventfilter\">EventFilter</a></code>                                                     | Fields identifying the event to change.                   | 1.0.0 |\n| **`newEvent`** | <code><a href=\"#partial\">Partial</a>&lt;<a href=\"#createeventoptions\">CreateEventOptions</a>&gt;</code> | New values to apply. Only the fields present are changed. | 1.0.0 |\n\n\n#### EventFilter\n\nFields used to locate the event to change in\n{@link CalendarPlugin.modifyEvent}. Set fields must all match.\n\n| Prop               | Type                | Description                                        | Since |\n| ------------------ | ------------------- | -------------------------------------------------- | ----- |\n| **`title`**        | <code>string</code> | Title substring to match (case-insensitive).       | 1.0.0 |\n| **`location`**     | <code>string</code> | Location substring to match (case-insensitive).    | 1.0.0 |\n| **`notes`**        | <code>string</code> | Notes substring to match (case-insensitive).       | 1.0.0 |\n| **`startDate`**    | <code>number</code> | Start of the date range as epoch milliseconds.     | 1.0.0 |\n| **`endDate`**      | <code>number</code> | End of the date range as epoch milliseconds.       | 1.0.0 |\n| **`calendarName`** | <code>string</code> | Restrict the match to the calendar with this name. | 1.0.0 |\n\n\n#### FindEventsResult\n\nResult of {@link CalendarPlugin.findEvents}.\n\n| Prop         | Type                         | Description                     | Since |\n| ------------ | ---------------------------- | ------------------------------- | ----- |\n| **`events`** | <code>CalendarEvent[]</code> | The events matching the search. | 1.0.0 |\n\n\n#### CalendarEvent\n\nA calendar event.\n\n| Prop               | Type                         | Description                                            | Since |\n| ------------------ | ---------------------------- | ------------------------------------------------------ | ----- |\n| **`id`**           | <code>string</code>          | Platform-assigned event id.                            | 1.0.0 |\n| **`title`**        | <code>string</code>          | The event title.                                       | 1.0.0 |\n| **`location`**     | <code>string</code>          | The event location.                                    | 1.0.0 |\n| **`notes`**        | <code>string</code>          | Free-form event notes.                                 | 1.0.0 |\n| **`startDate`**    | <code>number</code>          | Event start as epoch milliseconds.                     | 1.0.0 |\n| **`endDate`**      | <code>number</code>          | Event end as epoch milliseconds.                       | 1.0.0 |\n| **`isAllDay`**     | <code>boolean</code>         | Whether the event lasts all day.                       | 1.0.0 |\n| **`calendarId`**   | <code>string</code>          | Id of the calendar containing the event.               | 1.0.0 |\n| **`calendarName`** | <code>string</code>          | Name of the calendar containing the event.             | 1.0.0 |\n| **`attendees`**    | <code>EventAttendee[]</code> | The event's attendees. Absent when the event has none. | 1.0.0 |\n\n\n#### EventAttendee\n\nAn attendee of a {@link <a href=\"#calendarevent\">CalendarEvent</a>}.\n\n| Prop         | Type                                                                                                                         | Description                          | Since |\n| ------------ | ---------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ | ----- |\n| **`name`**   | <code>string</code>                                                                                                          | The attendee's display name.         | 1.0.0 |\n| **`email`**  | <code>string</code>                                                                                                          | The attendee's email address.        | 1.0.0 |\n| **`status`** | <code>'unknown' \\| 'pending' \\| 'accepted' \\| 'declined' \\| 'tentative' \\| 'delegated' \\| 'completed' \\| 'in-process'</code> | The attendee's participation status. | 1.0.0 |\n\n\n#### FindEventsOptions\n\nOptions accepted by {@link CalendarPlugin.findEvents}.\n\n| Prop               | Type                | Description                                                                                     | Since |\n| ------------------ | ------------------- | ----------------------------------------------------------------------------------------------- | ----- |\n| **`title`**        | <code>string</code> | Title substring to match (case-insensitive).                                                    | 1.0.0 |\n| **`location`**     | <code>string</code> | Location substring to match (case-insensitive).                                                 | 1.0.0 |\n| **`notes`**        | <code>string</code> | Notes substring to match (case-insensitive).                                                    | 1.0.0 |\n| **`startDate`**    | <code>number</code> | Start of the search range as epoch milliseconds. Defaults to the current time minus six months. | 1.0.0 |\n| **`endDate`**      | <code>number</code> | End of the search range as epoch milliseconds. Defaults to the current time plus two years.     | 1.0.0 |\n| **`calendarName`** | <code>string</code> | Restrict the search to the calendar with this name.                                             | 1.0.0 |\n\n\n#### DeleteEventOptions\n\nOptions accepted by {@link CalendarPlugin.deleteEvent}.\n\n| Prop               | Type                | Description                                                                                                                        | Since |\n| ------------------ | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ----- |\n| **`id`**           | <code>string</code> | Id of the event to delete. When set, the filter fields are ignored.                                                                | 1.0.0 |\n| **`fromDate`**     | <code>number</code> | Only with `id`, for a recurring event: keeps occurrences before this date (epoch milliseconds) and removes the rest of the series. | 1.0.0 |\n| **`title`**        | <code>string</code> | Title substring to match (case-insensitive).                                                                                       | 1.0.0 |\n| **`location`**     | <code>string</code> | Location substring to match (case-insensitive).                                                                                    | 1.0.0 |\n| **`notes`**        | <code>string</code> | Notes substring to match (case-insensitive).                                                                                       | 1.0.0 |\n| **`startDate`**    | <code>number</code> | Start of the date range as epoch milliseconds.                                                                                     | 1.0.0 |\n| **`endDate`**      | <code>number</code> | End of the date range as epoch milliseconds.                                                                                       | 1.0.0 |\n| **`calendarName`** | <code>string</code> | Restrict the match to the calendar with this name.                                                                                 | 1.0.0 |\n\n\n#### ListCalendarsResult\n\nResult of {@link CalendarPlugin.listCalendars}.\n\n| Prop            | Type                          | Description                  | Since |\n| --------------- | ----------------------------- | ---------------------------- | ----- |\n| **`calendars`** | <code>DeviceCalendar[]</code> | The calendars on the device. | 1.0.0 |\n\n\n#### DeviceCalendar\n\nA calendar available on the device.\n\n| Prop              | Type                 | Description                                                             | Since |\n| ----------------- | -------------------- | ----------------------------------------------------------------------- | ----- |\n| **`id`**          | <code>string</code>  | Platform-assigned calendar id.                                          | 1.0.0 |\n| **`name`**        | <code>string</code>  | The calendar name.                                                      | 1.0.0 |\n| **`displayName`** | <code>string</code>  | Name shown to the user, when the platform distinguishes it from `name`. | 1.0.0 |\n| **`isPrimary`**   | <code>boolean</code> | Whether this is the default calendar for new events.                    | 1.0.0 |\n\n\n#### CreateCalendarResult\n\nResult of {@link CalendarPlugin.createCalendar}.\n\n| Prop     | Type                | Description                | Since |\n| -------- | ------------------- | -------------------------- | ----- |\n| **`id`** | <code>string</code> | The created calendar's id. | 1.0.0 |\n\n\n#### CreateCalendarOptions\n\nOptions accepted by {@link CalendarPlugin.createCalendar}.\n\n| Prop        | Type                | Description                                                                    | Since |\n| ----------- | ------------------- | ------------------------------------------------------------------------------ | ----- |\n| **`name`**  | <code>string</code> | The calendar name.                                                             | 1.0.0 |\n| **`color`** | <code>string</code> | Calendar color as a `#RRGGBB` hex string. The platform picks one when omitted. | 1.0.0 |\n\n\n#### DeleteCalendarOptions\n\nOptions accepted by {@link CalendarPlugin.deleteCalendar}.\n\n| Prop       | Type                | Description                     | Since |\n| ---------- | ------------------- | ------------------------------- | ----- |\n| **`name`** | <code>string</code> | Name of the calendar to delete. | 1.0.0 |\n\n\n#### OpenCalendarOptions\n\nOptions accepted by {@link CalendarPlugin.openCalendar}.\n\n| Prop       | Type                | Description                                              | Since |\n| ---------- | ------------------- | -------------------------------------------------------- | ----- |\n| **`date`** | <code>number</code> | Date to show, as epoch milliseconds. Today when omitted. | 1.0.0 |\n\n\n### Type Aliases\n\n\n#### PermissionState\n\n<code>'prompt' | 'prompt-with-rationale' | 'granted' | 'denied'</code>\n\n\n#### CalendarPermissionType\n\nThe individually requestable calendar permissions.\n\n<code>'readCalendar' | 'writeCalendar'</code>\n\n\n#### RecurrenceFrequency\n\nHow often a recurring event repeats.\n\n<code>'daily' | 'weekly' | 'monthly' | 'yearly'</code>\n\n\n#### Partial\n\nMake all properties in T optional\n\n<code>{\r [P in keyof T]?: T[P];\r }</code>\n\n</docgen-api>\n","readmeFilename":"README.md"}