{"_id":"react-native-calendar-events-native","_rev":"3-de09f654740c00540e2c62d18141dbf6","name":"react-native-calendar-events-native","dist-tags":{"latest":"1.0.34"},"versions":{"1.0.32":{"name":"react-native-calendar-events-native","version":"1.0.32","author":{"name":"Alissandra25"},"license":"MIT","_id":"react-native-calendar-events-native@1.0.32","maintainers":[{"name":"alissandra","email":"alexa.kucherova@gmail.com"}],"homepage":"https://github.com/Alissandra25/react-native-calendar-events-native","bugs":{"url":"https://github.com/Alissandra25/react-native-calendar-events-native/issues"},"dist":{"shasum":"c13bebf0d576997c51b1a2fa2cb8ea2b21d19655","tarball":"https://registry.npmjs.org/react-native-calendar-events-native/-/react-native-calendar-events-native-1.0.32.tgz","fileCount":26,"integrity":"sha512-Y5v2COG++aInMhW4NauhICT9HZKwKpUP1v9zfJrmiEA4bGt4vkASHLwfJRBpp3gi0ceu8LdQwUm83maBv52v7g==","signatures":[{"sig":"MEUCIQC/zDsgtuH2D8VRF6D5FDy2NDC0Os2m5GcDm+ajY//SmgIgVtFSIVDtJMSOZXkfKrjNOM8kzLK1yroBflRfmry095o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116402},"main":"lib/commonjs/index","types":"lib/typescript/index.d.ts","module":"lib/module/index","source":"src/index","gitHead":"2cc88df19b5643adee00f93dc4e0f4cd4bd8a408","scripts":{"prepare":"bob build"},"_npmUser":{"name":"alissandra","email":"alexa.kucherova@gmail.com"},"repository":{"url":"git+https://github.com/Alissandra25/react-native-calendar-events-native.git","type":"git"},"_npmVersion":"10.9.0","description":"React Native module for native calendar event creation on iOS and Android","directories":{},"_nodeVersion":"22.11.0","react-native":"src/index","codegenConfig":{"name":"RNCalendarEventsNativeSpec","type":"modules","android":{"javaPackageName":"com.calendarevents"},"jsSrcsDir":"./src"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native-builder-bob":"^0.30.2"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-calendar-events-native_1.0.32_1774614968630_0.6499236055365376","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":["commonjs","module",["typescript",{"project":"tsconfig.build.json"}]]}},"1.0.33":{"name":"react-native-calendar-events-native","version":"1.0.33","author":{"name":"Alissandra25"},"license":"MIT","_id":"react-native-calendar-events-native@1.0.33","maintainers":[{"name":"alissandra","email":"alexa.kucherova@gmail.com"}],"homepage":"https://github.com/Alissandra25/react-native-calendar-events-native","bugs":{"url":"https://github.com/Alissandra25/react-native-calendar-events-native/issues"},"dist":{"shasum":"3bf4be6e7d4f0960f3dba443dfefc9b436a5b82a","tarball":"https://registry.npmjs.org/react-native-calendar-events-native/-/react-native-calendar-events-native-1.0.33.tgz","fileCount":26,"integrity":"sha512-0YZfy9fcfpS+Q6M5s20YRSDyHy2PR4tdPtxGvj9dRmRba1vBSQxqtWUPTgTWTGhtSSsrNDIx20cxl4CA13eELA==","signatures":[{"sig":"MEUCIQD39gBNh20iL07YZfkUgeGXCzuNSZElIejSIgJEkyaeSQIgZx4J/xAR2OweZowt868gSgxsCpOc8YEDxSYhkSJHZwo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113815},"main":"lib/commonjs/index","types":"lib/typescript/index.d.ts","module":"lib/module/index","source":"src/index","gitHead":"1b7a8cfba932a38ef6142582c7b2412aa7487a37","scripts":{"prepare":"bob build"},"_npmUser":{"name":"alissandra","email":"alexa.kucherova@gmail.com"},"repository":{"url":"git+https://github.com/Alissandra25/react-native-calendar-events-native.git","type":"git"},"_npmVersion":"10.9.0","description":"React Native module for native calendar event creation on iOS and Android","directories":{},"_nodeVersion":"22.11.0","react-native":"src/index","codegenConfig":{"name":"RNCalendarEventsNativeSpec","type":"modules","android":{"javaPackageName":"com.calendarevents"},"jsSrcsDir":"./src"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","react-native-builder-bob":"^0.30.2"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-calendar-events-native_1.0.33_1775067890673_0.9937455241454485","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":["commonjs","module",["typescript",{"project":"tsconfig.build.json"}]]}},"1.0.34":{"name":"react-native-calendar-events-native","version":"1.0.34","description":"React Native module for native calendar event creation on iOS and Android","main":"lib/commonjs/index","module":"lib/module/index","react-native":"src/index","source":"src/index","types":"lib/typescript/index.d.ts","scripts":{"prepare":"bob build"},"author":{"name":"Alissandra25"},"license":"MIT","homepage":"https://github.com/Alissandra25/react-native-calendar-events-native","repository":{"type":"git","url":"git+https://github.com/Alissandra25/react-native-calendar-events-native.git"},"bugs":{"url":"https://github.com/Alissandra25/react-native-calendar-events-native/issues"},"peerDependencies":{"react":"*","react-native":"*"},"codegenConfig":{"name":"RNCalendarEventsNativeSpec","type":"modules","jsSrcsDir":"./src","android":{"javaPackageName":"com.calendarevents"}},"devDependencies":{"react-native-builder-bob":"^0.30.2","typescript":"^5.0.0"},"react-native-builder-bob":{"source":"src","output":"lib","targets":["commonjs","module",["typescript",{"project":"tsconfig.build.json"}]]},"_id":"react-native-calendar-events-native@1.0.34","gitHead":"c1ffe8b4c1448bf4c0204286b56c1fd8634e691b","_nodeVersion":"22.11.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-DH30S5WwrpqDthYBGCBAOPs3x+7ymUakpJytjD0Hek81hk9FrSZySVQBVPfnQxZ3DOFiJgfTA2kB33xZAAMwVA==","shasum":"9bfbf9cc291a813a873b3cfde17f0c2173cfabdc","tarball":"https://registry.npmjs.org/react-native-calendar-events-native/-/react-native-calendar-events-native-1.0.34.tgz","fileCount":26,"unpackedSize":113125,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCTa1NQp7GztBRZ7RBYqP1tggxHgb2B5XZ4iEUY40A1cQIgZWg7bx7dACkNf3q6i4agEAbMjFdP7sQHR8x/nt85qco="}]},"_npmUser":{"name":"alissandra","email":"alexa.kucherova@gmail.com"},"directories":{},"maintainers":[{"name":"alissandra","email":"alexa.kucherova@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-native-calendar-events-native_1.0.34_1776092793250_0.4899173789112845"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-27T12:36:08.628Z","modified":"2026-04-13T15:06:33.486Z","1.0.32":"2026-03-27T12:36:08.798Z","1.0.33":"2026-04-01T18:24:50.854Z","1.0.34":"2026-04-13T15:06:33.390Z"},"bugs":{"url":"https://github.com/Alissandra25/react-native-calendar-events-native/issues"},"author":{"name":"Alissandra25"},"license":"MIT","homepage":"https://github.com/Alissandra25/react-native-calendar-events-native","repository":{"type":"git","url":"git+https://github.com/Alissandra25/react-native-calendar-events-native.git"},"description":"React Native module for native calendar event creation on iOS and Android","maintainers":[{"name":"alissandra","email":"alexa.kucherova@gmail.com"}],"readme":"# react-native-calendar-events-native\r\n\r\nForked from [react-native-calendar-events](https://github.com/wix/react-native-calendar-events)\r\nAll credit goes to the original author.\r\n\r\nA React Native module for native calendar event creation on iOS and Android, fully compatible with React Native's New Architecture (Fabric/TurboModules).\r\n\r\n## Features\r\n\r\n- ✅ **New Architecture Compatible** - Built with TurboModules for optimal performance\r\n- ✅ **TypeScript Support** - Full TypeScript definitions included\r\n- ✅ **iOS & Android** - Native implementations for both platforms\r\n- ✅ **Permission Management** - Built-in permission handling\r\n- ✅ **Calendar Management** - Create, find, and remove calendars\r\n- ✅ **Event Management** - Full CRUD operations for calendar events\r\n- ✅ **Recurring Events** - Support for complex recurrence rules\r\n- ✅ **Reminders/Alarms** - Add multiple alarms to events\r\n- ✅ **Event Availability** - Set busy/free/tentative status\r\n\r\n## Installation\r\n\r\n```sh\r\nnpm install react-native-calendar-events-native\r\n# or\r\nyarn add react-native-calendar-events-native\r\n```\r\n\r\n### iOS Setup\r\n\r\n1. Add required permissions to `Info.plist`:\r\n\r\n```xml\r\n<key>NSCalendarsUsageDescription</key>\r\n<string>This app needs access to your calendar to create and manage events</string>\r\n<key>NSCalendarsFullAccessUsageDescription</key>\r\n<string>This app needs full access to your calendar to create and manage events</string>\r\n```\r\n\r\n2. Install pods:\r\n\r\n```sh\r\ncd ios && pod install\r\n```\r\n\r\n### Android Setup\r\n\r\nThe required permissions are automatically added by the module. No additional setup needed.\r\n\r\n## Usage\r\n\r\n```typescript\r\nimport CalendarEvents from 'react-native-calendar-events-native';\r\n\r\n// Request permissions\r\nconst status = await CalendarEvents.requestPermissions();\r\nif (status === 'authorized' || status === 'granted') {\r\n  // Permission granted\r\n}\r\n\r\n// Create or find a custom calendar\r\nconst calendar = await CalendarEvents.findOrCreateCalendar({\r\n  title: 'My App Events',\r\n  color: '#2196F3',\r\n});\r\n\r\n// Create an event\r\nconst eventId = await CalendarEvents.saveEvent({\r\n  title: 'Meeting',\r\n  startDate: new Date('2024-01-20 10:00'),\r\n  endDate: new Date('2024-01-20 11:00'),\r\n  location: 'Office',\r\n  notes: 'Important meeting',\r\n  alarms: [{ minutes: 15 }], // Reminder 15 minutes before\r\n});\r\n\r\n// Fetch events\r\nconst events = await CalendarEvents.fetchAllEvents(\r\n  new Date('2024-01-01'),\r\n  new Date('2024-12-31')\r\n);\r\n\r\n// Update an event\r\nawait CalendarEvents.updateEvent(eventId, {\r\n  title: 'Updated Meeting',\r\n  location: 'Conference Room',\r\n});\r\n\r\n// Delete an event\r\nawait CalendarEvents.removeEvent(eventId);\r\n```\r\n\r\n## API Reference\r\n\r\n### Permission Methods\r\n\r\n#### `requestPermissions(writeOnly?: boolean): Promise<AuthorizationStatus>`\r\n\r\nRequest calendar permissions from the user.\r\n\r\n#### `checkPermissions(writeOnly?: boolean): Promise<AuthorizationStatus>`\r\n\r\nCheck current calendar permission status.\r\n\r\n### Calendar Methods\r\n\r\n#### `fetchAllCalendars(): Promise<Calendar[]>`\r\n\r\nFetch all available calendars on the device.\r\n\r\n#### `findOrCreateCalendar(calendar: Partial<Calendar>): Promise<Calendar>`\r\n\r\nFind an existing calendar by title or create a new one if it doesn't exist.\r\n\r\n```typescript\r\nconst calendar = await CalendarEvents.findOrCreateCalendar({\r\n  title: 'My Custom Calendar',\r\n  color: '#FF5722', // Optional: hex color code\r\n});\r\n```\r\n\r\n#### `removeCalendar(calendarId: string): Promise<boolean>`\r\n\r\nRemove a calendar by its ID. Returns `true` if successful.\r\n\r\n```typescript\r\nconst success = await CalendarEvents.removeCalendar(calendarId);\r\n```\r\n\r\n### Event Methods\r\n\r\n#### `fetchAllEvents(startDate: Date | string, endDate: Date | string, calendarIds?: string[]): Promise<CalendarEvent[]>`\r\n\r\nFetch all events within a date range.\r\n\r\n#### `findEventById(eventId: string): Promise<CalendarEvent | null>`\r\n\r\nFind a specific event by ID.\r\n\r\n#### `saveEvent(event: CalendarEvent): Promise<string>`\r\n\r\nCreate a new calendar event.\r\n\r\n#### `updateEvent(eventId: string, event: Partial<CalendarEvent>): Promise<string>`\r\n\r\nUpdate an existing event.\r\n\r\n#### `removeEvent(eventId: string): Promise<boolean>`\r\n\r\nRemove an event from the calendar.\r\n\r\n#### `openEventInCalendar(eventId: string): Promise<void>` (iOS only)\r\n\r\nOpen an event in the native calendar app.\r\n\r\n## Types\r\n\r\n### CalendarEvent\r\n\r\n```typescript\r\ninterface CalendarEvent {\r\n  id?: string;\r\n  title: string;\r\n  startDate: string | Date;\r\n  endDate: string | Date;\r\n  location?: string;\r\n  notes?: string;\r\n  url?: string;\r\n  alarms?: CalendarAlarm[];\r\n  recurrence?: RecurrenceRule;\r\n  availability?: 'busy' | 'free' | 'tentative' | 'unavailable';\r\n  allDay?: boolean;\r\n  calendar?: string;\r\n}\r\n```\r\n\r\n### CalendarAlarm\r\n\r\n```typescript\r\ninterface CalendarAlarm {\r\n  date?: string | Date;\r\n  structuredLocation?: {\r\n    title?: string;\r\n    proximity?: 'enter' | 'leave' | 'none';\r\n    radius?: number;\r\n    coords?: {\r\n      latitude: number;\r\n      longitude: number;\r\n    };\r\n  };\r\n  minutes?: number;\r\n}\r\n```\r\n\r\n### RecurrenceRule\r\n\r\n```typescript\r\ninterface RecurrenceRule {\r\n  frequency: 'daily' | 'weekly' | 'monthly' | 'yearly';\r\n  interval?: number;\r\n  endDate?: string | Date;\r\n  occurrence?: number;\r\n  daysOfWeek?: Array<{\r\n    dayOfWeek: number;\r\n    weekNumber?: number;\r\n  }>;\r\n  daysOfMonth?: number[];\r\n  monthsOfYear?: number[];\r\n  daysOfYear?: number[];\r\n}\r\n```\r\n\r\n### Calendar\r\n\r\n```typescript\r\ninterface Calendar {\r\n  id: string;\r\n  title: string;\r\n  type: string;\r\n  source: string;\r\n  isPrimary?: boolean;\r\n  allowsModifications?: boolean;\r\n  color?: string;\r\n  allowedAvailabilities?: string[];\r\n}\r\n```\r\n\r\n## Examples\r\n\r\n### Creating a Recurring Event\r\n\r\n```typescript\r\nconst eventId = await CalendarEvents.saveEvent({\r\n  title: 'Weekly Team Meeting',\r\n  startDate: new Date('2024-01-20 10:00'),\r\n  endDate: new Date('2024-01-20 11:00'),\r\n  recurrence: {\r\n    frequency: 'weekly',\r\n    interval: 1,\r\n    endDate: new Date('2024-12-31'),\r\n  },\r\n  alarms: [\r\n    { minutes: 15 },\r\n    { minutes: 60 },\r\n  ],\r\n});\r\n```\r\n\r\n### Creating an All-Day Event\r\n\r\n```typescript\r\nconst eventId = await CalendarEvents.saveEvent({\r\n  title: 'Birthday',\r\n  startDate: new Date('2024-03-15'),\r\n  endDate: new Date('2024-03-16'),\r\n  allDay: true,\r\n});\r\n```\r\n\r\n## Platform Differences\r\n\r\n- **iOS**: Supports opening events in the native calendar app via `openEventInCalendar()`\r\n- **Android**: Calendar creation requires specifying account details\r\n- **iOS 17+**: Uses new full access calendar permissions\r\n\r\n## Contributing\r\n\r\nSee the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.\r\n\r\n## License\r\n\r\nMIT\r\n\r\n---\r\n\r\nMade with ❤️ for the React Native community\r\n","readmeFilename":"README.md"}