- Notifications
You must be signed in to change notification settings - Fork3.1k
React Native Calendar Components 🗓️ 📆
License
wix/react-native-calendars
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This module includes information on how to use this customizableReact Native calendar component.
The package is compatible with bothAndroid andiOS
This README provides basic examples of how to get started with
react-native-calendars
. For detailed information, refer to theofficial documentation site.
- Pure JS. No Native code required
- Date marking - dot, multi-dot, period, multi-period and custom marking
- Customization of style, content (days, months, etc) and dates
- Detailed documentation and examples
- Swipeable calendar with flexible custom rendering
- Scrolling to today, selecting dates, and more
- Allowing or blocking certain dates
- Accessibility support
- Automatic date formatting for different locales
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 inexample module screens
This project is compatible with Expo/CRNA (without ejecting), and the examples have beenpublished 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
For detailed information on using this component, see theofficial documentation site
import{Calendar,CalendarList,Agenda}from'react-native-calendars';
<CalendaronDayPress={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:
importReact,{useState}from'react';import{Calendar,LocaleConfig}from'react-native-calendars';constApp=()=>{const[selected,setSelected]=useState('');return(<CalendaronDayPress={day=>{setSelected(day.dateString);}}markedDates={{[selected]:{selected:true,disableTouchEvent:true,selectedDotColor:'orange'}}}/>);};exportdefaultApp;
<Calendar// Customize the appearance of the calendarstyle={{borderWidth:1,borderColor:'gray',height:350}}// Specify the current datecurrent={'2012-03-01'}// Callback that gets called when the user selects a dayonDayPress={day=>{console.log('selected day',day);}}// Mark specific dates as markedmarkedDates={{'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';importReact,{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';constApp=()=>{const[selected,setSelected]=useState('');return(<CalendaronDayPress={day=>{setSelected(day.dateString);}}markedDates={{[selected]:{selected:true,disableTouchEvent:true,selectedDotColor:'orange'}}}/>);};exportdefaultApp;
<Calendarstyle={{borderWidth:1,borderColor:'gray',height:350,}}theme={{backgroundColor:'#ffffff',calendarBackground:'#ffffff',textSectionTitleColor:'#b6c1cd',selectedDayBackgroundColor:'#00adf5',selectedDayTextColor:'#ffffff',todayTextColor:'#00adf5',dayTextColor:'#2d4150',textDisabledColor:'#dd99ee'}}/>
- Tautvilas Mecinskas - Initial code -@tautvilas
- Katrin Zotchev - Initial design -@katrin_zot
See also the list ofcontributors 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.
Pleaseyarn test
andyarn lint
before pushing changes.
Don't forget to add atitle and adescription 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
About
React Native Calendar Components 🗓️ 📆
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.