react-native-big-calendar
gcal/outlook like calendar component for React Native.
Features
- Cross Platform: Runs on the Web, iOS, Android with the power of React
- Type-safe: Fully written in TypeScript
- Customizable: Adjust styles of components
- Lightweight: ~15kb, only one dependency is
dayjs
Install
npm install --save react-native-big-calendar
Or if you use Yarn:
yarn add react-native-big-calendar
Getting Started
API Documentation
Summary
<Calendar />
Props are:
name | required | type | description |
---|---|---|---|
events |
yes | Array<{ title: string, start: Date, end: Date }> |
The events which will be rendered on the calendar. |
height |
yes | number |
Calendar height. |
onPressEvent |
no | (event: { title: string, start: Date, end: Date } => void) |
Event handler which will be fired when the user clicks an event. |
onChangeDate |
no | ([start, end]: [Date, Date]) => void |
Event handler which will be fired when the current date range changed. |
onPressCell |
no | (date: Date) => void |
Event handler which will be fired when the current date cell is clicked. The minute set to 0. |
onPressDateHeader |
no | (date: Date) => void |
Event handler which will be fired when the user clicks a date from the header. |
mode |
no | 3days , week , day |
|
style |
no | import('react-native').ViewStyle |
|
eventCellStyle |
no | ViewStyle or ((event: { title: string, start: Date, end: Date } ) => ViewStyle) |
The style of Event cell. Accepts either style object (static) or function (dynamic). |
scrollOffsetMinutes |
no | number |
Scroll to specific minutes in a day. e.g.) set 480 to scroll to 8am when the calendar rendered. |
date |
no | Date |
Initial date. Defualts to Date |
swipeEnabled |
no | boolean |
|
showTime |
no | boolean |
|
weekStartsOn |
no | 0, 1, 2, 3, 4, 5, 6 | Which day the week starts on. Sunday is 0 . |
locale |
no | string |
Custom locale. See I18n section |
For more information, see Storybook
I18n
Please specity your locale via locale
prop and import day.js locale file:
You can find your dayjs locale here:
https://github.com/iamkun/dayjs/tree/dev/src/locale
Screenshots
Who's using this?
If you are using this library, please send a PR to add your organization!
TODO
- [x] Add API Documentation
- [x] Add
onClickCell
feature - [ ] Add
onDrugCell
feature - [ ] Style customize
- [ ] Blue active day
- [ ] Blue active day text
- [ ] Today indicator
- [ ] Support the month view layout