- BREAKING CHANGE: React Native 0.74.0+ required
- BREAKING CHANGE: Unified the API between Android and iOS. Platform specific functions that are not implemented act as no-ops.
findCalendars -> getCalendars findEventById -> getEventById findAllEvents (Android) / fetchAllEvents (iOS) -> getEvents
- POSSIBLE BREAKING CHANGE: Permission check parameter changed from
readOnly
tolimited
. The switch was made to accommodate the new iOS 17 write-only access while still applying to Android's read-only access - Feature: iOS17 permission handling
- Feature: New arch support
- Fix: Handle Exception on Android
- Fix: Android event reminder times
- Fix: iOS can't edit recurring events
-
Fixed
findEventByID
on iOS - return null if event is not found (for consistency with Android) #337 by @dstop75 -
Fixed android calendar query to catch events that intersect date range but aren't entirely a subset (for consistency with iOS) #333 by @jenniferburch
-
Added ability to set timezone on events in iOS (necessary for recurrence expansion to work correctly across daylight savings time transitions) #335 by @LorienHW and @mcarlson
Also includes minor documentation tweaks.
- Fixed TypeScript declaration in
package.json
file #328 by @wmcmahan - Fixed Android import into the README manual linking section #321 by @chiformihai
- Added ability to restrict to read-only permission on Android #320 by @mikehardy
- Added a Troubleshooting section in README, to document the issue about saved event not being kept on device during sync #317 by @MoOx
In addition to bugfixes, this release introduces some minor breaking changes:
- Support for React Native 0.60+ only
- AndroidX support!
- Android & iOS package name have changed. If you rely on React Native autolinking, you don't have to change a thing, otherwise, please see README to update installation instruction.
- Permissions method names have changed for more explicit
checkPermissions
&requestPermissions
. - For iOS, we now avoid crashes at all cost, which means
- if a native method fails, it should be recoverable from JavaScript (promise rejection) - we tried to cover most native code part in the bridge to be able to catch all kind of exception
- An exception has been made for fetching event: if some part of the serialization fails, a NSLog is emitted & the specific problematic part is ommited (eg: an alarm or a structuredLocation could be missing) and the process continues on other events.
We keep in mind the idea of adding an
error
field into calendar event so the information is explicitely available from JavaScript. This is to avoid receving a promise rejection if you fetch 2 months of events & have a single tiny information that we failed to serialize. In this cases, you will receive all fetched calendar events with just a tiny information missing, which offers a better UX.
- Package is now
com.calendarevents.RNCalendarEvents
a39efe7 by @MoOx - Fixed
'boolean android.database.Cursor.moveToNext()' on a null object reference
error e7c9680 by @MoOx - Fixed parsing allowed availability #268 by @saghul
- Added AndroidX support for react-native 0.60 #263 by @yfuks
- Added: use PermissionListener to avoid Android manual steps #252 by @saghul
- Added "NEVER ASK ME AGAIN" status added in Android #273 by @webtaculars
- Added key to skip setting timezone on Android #271 by @eleddie
- Package is now
RNCalendarEvents
5ea007c by @MoOx - Fixed crashes related to structured location #253 by @eladgel & 4560a2f by @MoOx
- Fixed iOS 13 show bug #279 by @huang303513
- Minimal version to iOS 9.0, like react-native 0.60 5ea007c by @MoOx
- Avoid iOS crashes at all cost 314 by @MoOx
- Various minor README update 92c3238 by @MoOx
- Updated docs with correct type for string dates #250 by @hugofelp
For 1.7.x & before, please refer to git history.