Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

expo-calendar

expo217kMIT14.1.4TypeScript support: included

Provides an API for interacting with the device's system calendars, events, reminders, and associated records.

react-native, expo, calendar, reminders

readme

Expo logo

Expo

Expo SDK version Chat or ask a question License: MIT Downloads

Try Expo in the Browser  •  Read the Documentation  •  Learn more on our blog  •  Request a feature

Follow us on

Expo on X   Expo on GitHub   Expo on Reddit   Expo on Bluesky   Expo on LinkedIn

Introduction

Expo is an open-source platform for making universal native apps that run on Android, iOS, and the web. It includes a universal runtime and libraries that let you build native apps by writing React and JavaScript.

This repository includes the Expo SDK, Modules API, Go app, CLI, Router, documentation, and various other supporting tools. Expo Application Services (EAS) is a platform of hosted services that are deeply integrated with Expo open source tools. EAS helps you build, ship, and iterate on your app as an individual or a team.

Read the Expo Community Guidelines before interacting in the repository. Thank you for helping keep the Expo community open and welcoming!

Table of contents

📚 Documentation

Learn about building and deploying universal apps in our official docs!

🗺 Project Layout

  • packages All the source code for Expo modules, if you want to edit a library or just see how it works this is where you'll find it.
  • apps This is where you can find Expo projects which are linked to the development modules. You'll do most of your testing in here.
  • apps/expo-go This is where you can find the source code for Expo Go.
  • apps/expo-go/ios/Exponent.xcworkspace is the Xcode workspace. When developing iOS, always open this instead of Exponent.xcodeproj because the workspace also loads the CocoaPods dependencies.
  • docs The source code for https://docs.expo.dev
  • templates The template projects you get when you run npx create-expo-app
  • react-native-lab This is our fork of react-native used to build Expo Go.
  • guides In-depth tutorials for advanced topics like contributing to the client.
  • tools contain build and configuration tools.
  • template-files contains templates for files that require private keys. They are populated using the keys in template-files/keys.json.
  • template-files/ios/dependencies.json specifies the CocoaPods dependencies of the app.

🏅 Badges

Let everyone know your app can be run instantly in the Expo Go app!

runs with Expo Go

runs with Expo Go

[![runs with Expo Go](https://img.shields.io/badge/Runs%20with%20Expo%20Go-000.svg?style=flat-square&logo=EXPO&labelColor=f3f3f3&logoColor=000)](https://expo.dev/client)

[![runs with Expo Go](https://img.shields.io/badge/Runs%20with%20Expo%20Go-4630EB.svg?style=flat-square&logo=EXPO&labelColor=f3f3f3&logoColor=000)](https://expo.dev/client)

👏 Contributing

If you like Expo and want to help make it better then check out our contributing guide! Check out the CLI package to work on the Expo CLI.

❓ FAQ

If you have questions about Expo and want answers, then check out our Frequently Asked Questions!

If you still have questions you can ask them on our Discord and Forums or X @expo.

💙 The Team

Curious about who makes Expo? Here are our team members!

License

The Expo source code is made available under the MIT license. Some of the dependencies are licensed differently, with the BSD license, for example.

Star the Expo repo on GitHub to support the project

changelog

Changelog

Unpublished

🛠 Breaking changes

🎉 New features

🐛 Bug fixes

💡 Others

14.1.4 — 2025-04-30

🐛 Bug fixes

  • [iOS] Fix event recurrence rules returning dayOfTheWeek as undefined. (#36482 by @ouwargui)

14.1.3 — 2025-04-25

This version does not introduce any user-facing changes.

14.1.2 — 2025-04-14

This version does not introduce any user-facing changes.

14.1.1 — 2025-04-09

This version does not introduce any user-facing changes.

14.1.0 — 2025-04-04

🎉 New features

🐛 Bug fixes

💡 Others

  • [android][calendar] Add EventRecurrenceUtils unit tests. (#33863 by @mateoguzmana)
  • [ios][calendar] Use EXPermissionStatus instead of CalendarPermissionsStatus in calendar permissions requesters (#33453 by @ryanduffin
  • [Android] Started using expo modules gradle plugin. (#34176 by @lukmccall)
  • [apple] Migrate remaining expo-module.config.json to unified platform syntax. (#34445 by @reichhartd)
  • [iOS] Fix warnings which will become errors in Swift 6. (#35428 by @behenate)

14.0.6 - 2025-01-10

🐛 Bug fixes

14.0.4 - 2024-11-29

🐛 Bug fixes

14.0.3 — 2024-11-22

🐛 Bug fixes

  • [iOS] Fixed missing deserialization of calendarId field when calling createEventInCalendarAsync (#33142 by @chrfalch)

14.0.2 — 2024-10-24

This version does not introduce any user-facing changes.

14.0.1 — 2024-10-22

This version does not introduce any user-facing changes.

14.0.0 — 2024-10-22

🛠 Breaking changes

🎉 New features

  • Add new methods for managing events using the system-provided calendar UI (#30102 by @vonovak)

🐛 Bug fixes

13.0.5 — 2024-05-14

🐛 Bug fixes

13.0.4 — 2024-05-09

🐛 Bug fixes

  • On iOS, workaround a bug in iOS 15 where an invalid EKCalendarType is returned in the calendar object when siri suggestions are enabled. (#28714 by @alanjhughes)

13.0.3 — 2024-05-01

This version does not introduce any user-facing changes.

13.0.2 — 2024-04-24

💡 Others

13.0.1 — 2024-04-23

This version does not introduce any user-facing changes.

13.0.0 — 2024-04-18

🐛 Bug fixes

  • [iOS] Don't check calendar permissions for saving reminders, and fix missing details when saving calendar events. (#28265 by @robertying)
  • Fix the problem that stringifyDateValues is not compatible with simple type arrays. (#27147 by @XHFkindergarten)

💡 Others

  • Prevent config plugin from writing permissions until prebuild, remove duplicate permissions. (#28107 by @EvanBacon)
  • drop unused web name property. (#27437 by @EvanBacon)
  • On iOS, migrate to Expo Modules API. (#24282 by @alanjhughes)
  • Removed deprecated backward compatible Gradle settings. (#28083 by @kudo)

12.2.1 - 2023-12-19

This version does not introduce any user-facing changes.

12.2.0 — 2023-11-14

🛠 Breaking changes

🐛 Bug fixes

  • [iOS] Fix unnecessary permission check for calendars when calling saveCalendarAsync with entityType "reminder" (#24967 by @robertying)

12.1.0 — 2023-10-17

🛠 Breaking changes

🐛 Bug fixes

11.3.2 — 2023-09-28

🐛 Bug fixes

  • On iOS, fix check that determines if the version of Xcode supports iOS 17. (#24655 by @alanjhughes)

11.3.1 — 2023-09-25

🐛 Bug fixes

12.0.0 — 2023-09-04

🛠 Breaking changes

🎉 New features

  • Added support for React Native 0.73. (#24018 by @kudo)

💡 Others

11.4.1 — 2023-08-02

This version does not introduce any user-facing changes.

11.4.0 — 2023-07-28

This version does not introduce any user-facing changes.

11.3.0 — 2023-06-21

🐛 Bug fixes

11.2.0 — 2023-05-08

💡 Others

  • Android: Switch from deprecated toLowerCase to lowercase function (#22225 by @hbiede)

11.1.1 — 2023-02-09

This version does not introduce any user-facing changes.

11.1.0 — 2023-02-03

💡 Others

  • On Android bump compileSdkVersion and targetSdkVersion to 33. (#20721 by @lukmccall)

11.0.1 — 2022-10-28

This version does not introduce any user-facing changes.

11.0.0 — 2022-10-25

🛠 Breaking changes

  • Bumped iOS deployment target to 13.0 and deprecated support for iOS 12. (#18873 by @tsapeta)

💡 Others

  • [plugin] Migrate import from @expo/config-plugins to expo/config-plugins and @expo/config-types to expo/config. (#18855 by @brentvatne)
  • Drop @expo/config-plugins dependency in favor of peer dependency on expo. (#18595 by @EvanBacon)

10.3.0 — 2022-07-07

This version does not introduce any user-facing changes.

10.2.0 — 2022-04-18

💡 Others

⚠️ Notices

  • On Android bump compileSdkVersion to 31, targetSdkVersion to 31 and Java version to 11. (#16941 by @bbarthec)

10.1.1 - 2022-02-01

🐛 Bug fixes

  • Fix Plugin with id 'maven' not found build error from Android Gradle 7. (#16080 by @kudo)

10.1.0 — 2021-12-03

🐛 Bug fixes

  • [Android] Fix allowModifications always return false in calendar object. (#15307 by @jekiwijaya)

💡 Others

  • Replace custom OptionalKeys type wrapper with embedded in TypeScript Partial. (#15192 by @Simek)
  • Extract nested object in current types to new, separate types: AlarmLocation and DaysOfTheWeek. (#15192 by @Simek)

10.0.1 — 2021-10-01

This version does not introduce any user-facing changes.

10.0.0 — 2021-09-28

🛠 Breaking changes

🎉 New features

  • Add useCalendarPermissions and useRemindersPermissions hooks from modules factory. (#13854 by @bycedric)

🐛 Bug fixes

  • Fix building errors from use_frameworks! in Podfile. (#14523 by @kudo)

💡 Others

  • Rewrote from Java to Kotlin, migrated from AsyncTask to kotlinx.coroutines. (#13527 by @M1ST4KE)
  • Migrated from @unimodules/core to expo-modules-core. (#13756 by @tsapeta)
  • Updated @expo/config-plugins (#14443 by @EvanBacon)

9.2.0 — 2021-06-16

🐛 Bug fixes

  • Fixed ExpoCalendar.getCalendarsAsync() crashing on Android when device has unsupported calendars. (#12724 by @ibraude)
  • Enable kotlin in all modules. (#12716 by @wschurman)

💡 Others

  • Migrated from unimodules-permissions-interface to expo-modules-core. (#12961 by @tsapeta)

9.1.2 — 2021-04-13

This version does not introduce any user-facing changes.

9.1.1 — 2021-03-31

This version does not introduce any user-facing changes.

9.1.0 — 2021-03-10

🎉 New features

  • Converted plugin to TypeScript. (#11715 by @EvanBacon)
  • Updated Android build configuration to target Android 11 (added support for Android SDK 30). (#11647 by @bbarthec)

🐛 Bug fixes

  • Remove peerDependencies and unimodulePeerDependencies from Expo modules. (#11980 by @brentvatne)

9.0.0 — 2021-01-15

🛠 Breaking changes

🎉 New features

8.6.0 — 2020-11-17

This version does not introduce any user-facing changes.

8.5.0 — 2020-08-18

🎉 New features

8.4.0 — 2020-08-11

🎉 New features

8.3.0 — 2020-07-20

🎉 New features

  • createCalendarAsync now uses default calendar for given entityType if sourceId parameter (iOS only) is not provided. (#8570 by @tsapeta)

🐛 Bug fixes

  • Fix Calendar.getEventsAsync crashing when recurrenceRules are incorrect. (#8760 by @lukmccall)
  • Fixed Calendar.createEventAsync crashing when alarms were set or endTimeZone was null. (#9269 by @barthap)

8.2.1 — 2020-05-29

This version does not introduce any user-facing changes.

8.2.0 — 2020-05-27

🐛 Bug fixes

  • Fixed Calendar.getCalendarsAsync requiring not needed permissions on iOS. (#7928 by @lukmccall)
  • Fix recurrence rule and event parsing. (#7527 by @lukmccall)