Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jquense/react-big-calendar
gcal/outlook like calendar component
https://github.com/jquense/react-big-calendar
Last synced: 3 days ago
JSON representation
gcal/outlook like calendar component
- Host: GitHub
- URL: https://github.com/jquense/react-big-calendar
- Owner: jquense
- License: mit
- Created: 2015-08-22T02:56:58.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-11-26T13:31:16.000Z (16 days ago)
- Last Synced: 2024-12-07T19:46:15.047Z (5 days ago)
- Language: JavaScript
- Homepage: http://jquense.github.io/react-big-calendar/examples/index.html
- Size: 76.7 MB
- Stars: 7,955
- Watchers: 81
- Forks: 2,248
- Open Issues: 368
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Citation: CITATION.cff
Awesome Lists containing this project
- stars - jquense/react-big-calendar
- best-of-react - GitHub - 18% open · ⏱️ 14.05.2024): (Other Components)
- awesome-react - react-big-calendar - Calendar component (**Awesome React** [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) / React)
- jimsghstars - jquense/react-big-calendar - gcal/outlook like calendar component (JavaScript)
README
# react-big-calendar
An events calendar component built for React and designed for modern browsers (read: not IE) and uses flexbox over the classic tables-caption approach.
[**DEMO and Docs**](https://jquense.github.io/react-big-calendar/examples/index.html)
Inspired by [Full Calendar](http://fullcalendar.io/).
## Use and Setup
`yarn add react-big-calendar` or `npm install --save react-big-calendar`
Include `react-big-calendar/lib/css/react-big-calendar.css` for styles, and make sure your calendar's container
element has a height, or the calendar won't be visible. To provide your own custom styling, see the [Custom Styling](#custom-styling) topic.## Starters
- [react-big-calendar](https://github.com/arecvlohe/rbc-starter)
- [react-big-calendar with drag and drop](https://github.com/arecvlohe/rbc-with-dnd-starter)
- [react-big-calendar with TypeScript and React hooks bundled with Vite](https://github.com/christopher-caldwell/react-big-calendar-demo)## Run examples locally
```sh
$ git clone [email protected]:jquense/react-big-calendar.git
$ cd react-big-calendar
$ yarn
$ yarn storybook
```- Open [localhost:3000/examples/index.html](http://localhost:3000/examples/index.html).
### Localization and Date Formatting
`react-big-calendar` includes four options for handling the date formatting and culture localization, depending
on your preference of DateTime libraries. You can use either the [Moment.js](https://momentjs.com/), [Globalize.js](https://github.com/jquery/globalize), [date-fns](https://date-fns.org/), [Day.js](https://day.js.org) localizers.Regardless of your choice, you **must** choose a localizer to use this library:
#### Moment.js
```js
import { Calendar, momentLocalizer } from 'react-big-calendar'
import moment from 'moment'const localizer = momentLocalizer(moment)
const MyCalendar = (props) => (
)
```#### Globalize.js v0.1.1
```js
import { Calendar, globalizeLocalizer } from 'react-big-calendar'
import globalize from 'globalize'const localizer = globalizeLocalizer(globalize)
const MyCalendar = (props) => (
)
```#### date-fns v2
```js
import { Calendar, dateFnsLocalizer } from 'react-big-calendar'
import format from 'date-fns/format'
import parse from 'date-fns/parse'
import startOfWeek from 'date-fns/startOfWeek'
import getDay from 'date-fns/getDay'
import enUS from 'date-fns/locale/en-US'const locales = {
'en-US': enUS,
}const localizer = dateFnsLocalizer({
format,
parse,
startOfWeek,
getDay,
locales,
})const MyCalendar = (props) => (
)
```#### Day.js
Note that the dayjsLocalizer extends Day.js with the following plugins:
- [IsBetween](https://day.js.org/docs/en/plugin/is-between)
- [IsSameOrAfter](https://day.js.org/docs/en/plugin/is-same-or-after)
- [IsSameOrBefore](https://day.js.org/docs/en/plugin/is-same-or-before)
- [LocaleData](https://day.js.org/docs/en/plugin/locale-data)
- [LocalizedFormat](https://day.js.org/docs/en/plugin/localized-format)
- [MinMax](https://day.js.org/docs/en/plugin/min-max)
- [UTC](https://day.js.org/docs/en/plugin/utc)```js
import { Calendar, dayjsLocalizer } from 'react-big-calendar'
import dayjs from 'dayjs'const localizer = dayjsLocalizer(dayjs)
const MyCalendar = (props) => (
)
```## Custom Styling
Out of the box, you can include the compiled CSS files and be up and running. But, sometimes, you may want to style
Big Calendar to match your application styling. For this reason, SASS files are included with Big Calendar.```
@import 'react-big-calendar/lib/sass/styles';
@import 'react-big-calendar/lib/addons/dragAndDrop/styles'; // if using DnD
```SASS implementation provides a `variables` file containing color and sizing variables that you can
update to fit your application. _Note:_ Changing and/or overriding styles can cause rendering issues with your
Big Calendar. Carefully test each change accordingly.## Join The Community
Help us improve Big Calendar! Join us on [Slack](https://join.slack.com/t/bigcalendar/shared_invite/zt-2tjko9jqq-ZeXs1U01zulNM~FRU9YTFA).
(Slack invite links do expire. If you can't get in, just file an issue and we'll get a new link.)## Translations
- [العربية](/docs/README-ar.md)