wix/react-native-calendars(opens in a new tab)
Language: TypeScript
React Native Calendar Components 🗓️ 📆
- stars
- 10,328
- watchers
- 328
- forks
- 3,051
- open issues
- 151
- Last updated
- 10/17/2026
Language: TypeScript
React Native Calendar Components 🗓️ 📆
This module includes information on how to use this customizable React Native calendar component.
The package is compatible with both Android and iOS
This README provides basic examples of how to get started with
react-native-calendars. For detailed information, refer to the official documentation site.
You can run a sample module using these steps:
$ git clone git@github.com:wix/react-native-calendars.git
$ cd react-native-calendars
$ yarn install
$ cd ios && pod install && cd ..
$ react-native run-ios
You can check example screens source code in example module screens
This project is compatible with Expo/CRNA (without ejecting), and the examples have been published on Expo
Here's how to get started with react-native-calendars in your React Native project:
$ yarn add react-native-calendars
RN Calendars is implemented in JavaScript, so no native module linking is required.
Basic usage examples of the library
import {Calendar, CalendarList, Agenda} from 'react-native-calendars';
<Calendar onDayPress={day => { console.log('selected day', day); }} />
Here are a few code snippets that demonstrate how to use some of the key features of react-native-calendars:
import React, {useState} from 'react'; import {Calendar, LocaleConfig} from 'react-native-calendars'; const App = () => { const [selected, setSelected] = useState(''); return ( <Calendar onDayPress={day => { setSelected(day.dateString); }} markedDates={{ [selected]: {selected: true, disableTouchEvent: true, selectedDotColor: 'orange'} }} /> ); }; export default App;
<Calendar // Customize the appearance of the calendar style={{ borderWidth: 1, borderColor: 'gray', height: 350 }} // Specify the current date current={'2012-03-01'} // Callback that gets called when the user selects a day onDayPress={day => { console.log('selected day', day); }} // Mark specific dates as marked markedDates={{ '2012-03-01': {selected: true, marked: true, selectedColor: 'blue'}, '2012-03-02': {marked: true}, '2012-03-03': {selected: true, marked: true, selectedColor: 'blue'} }} />
import {LocaleConfig} from 'react-native-calendars'; import React, {useState} from 'react'; import {Calendar, LocaleConfig} from 'react-native-calendars'; LocaleConfig.locales['fr'] = { monthNames: [ 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre' ], monthNamesShort: ['Janv.', 'Févr.', 'Mars', 'Avril', 'Mai', 'Juin', 'Juil.', 'Août', 'Sept.', 'Oct.', 'Nov.', 'Déc.'], dayNames: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'], dayNamesShort: ['Dim.', 'Lun.', 'Mar.', 'Mer.', 'Jeu.', 'Ven.', 'Sam.'], today: "Aujourd'hui" }; LocaleConfig.defaultLocale = 'fr'; const App = () => { const [selected, setSelected] = useState(''); return ( <Calendar onDayPress={day => { setSelected(day.dateString); }} markedDates={{ [selected]: {selected: true, disableTouchEvent: true, selectedDotColor: 'orange'} }} /> ); }; export default App;
<Calendar style={{ borderWidth: 1, borderColor: 'gray', height: 350, }} theme={{ backgroundColor: '#ffffff', calendarBackground: '#ffffff', textSectionTitleColor: '#b6c1cd', selectedDayBackgroundColor: '#00adf5', selectedDayTextColor: '#ffffff', todayTextColor: '#00adf5', dayTextColor: '#2d4150', textDisabledColor: '#dd99ee' }} />
See also the list of contributors who participated in this project.
We welcome contributions to react-native-calendars.
If you have an idea for a new feature or have discovered a bug, please open an issue.
Please yarn test and yarn lint before pushing changes.
Don't forget to add a title and a description explaining the issue you're trying to solve and your proposed solution.
Screenshots and Gifs are VERY helpful to add to the PR for reviews.
Please DO NOT format the files - we're trying to keep a unified syntax and keep the reviewing process fast and simple.
React Native Calendars is MIT licensed