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

Package detail

react-big-calendar

jquense1.7mMIT1.18.0TypeScript support: definitely-typed

Calendar! with events

scheduler, react-component, react, calendar, events, full calendar

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.

Big Calendar Demo Image

DEMO and Docs

Inspired by Full Calendar.

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 topic.

Starters

Run examples locally

$ git clone git@github.com:jquense/react-big-calendar.git
$ cd react-big-calendar
$ yarn
$ yarn storybook

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, Globalize.js, date-fns, Day.js localizers.

Regardless of your choice, you must choose a localizer to use this library:

Moment.js

import { Calendar, momentLocalizer } from 'react-big-calendar'
import moment from 'moment'

const localizer = momentLocalizer(moment)

const MyCalendar = (props) => (
  <div>
    <Calendar
      localizer={localizer}
      events={myEventsList}
      startAccessor="start"
      endAccessor="end"
      style={{ height: 500 }}
    />
  </div>
)

Globalize.js v0.1.1

import { Calendar, globalizeLocalizer } from 'react-big-calendar'
import globalize from 'globalize'

const localizer = globalizeLocalizer(globalize)

const MyCalendar = (props) => (
  <div>
    <Calendar
      localizer={localizer}
      events={myEventsList}
      startAccessor="start"
      endAccessor="end"
      style={{ height: 500 }}
    />
  </div>
)

date-fns v2

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) => (
  <div>
    <Calendar
      localizer={localizer}
      events={myEventsList}
      startAccessor="start"
      endAccessor="end"
      style={{ height: 500 }}
    />
  </div>
)

Day.js

Note that the dayjsLocalizer extends Day.js with the following plugins:

import { Calendar, dayjsLocalizer } from 'react-big-calendar'
import dayjs from 'dayjs'

const localizer = dayjsLocalizer(dayjs)

const MyCalendar = (props) => (
  <div>
    <Calendar
      localizer={localizer}
      events={myEventsList}
      startAccessor="start"
      endAccessor="end"
      style={{ height: 500 }}
    />
  </div>
)

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. (Slack invite links do expire. If you can't get in, just file an issue and we'll get a new link.)

Translations

changelog

1.18.0 (2025-02-24)

Features

1.17.1 (2024-12-19)

Bug Fixes

1.17.0 (2024-12-11)

Features

1.16.3 (2024-11-26)

Bug Fixes

  • update doc type of onDropFromOutside function signature (5438fb5)

1.16.2 (2024-11-25)

Bug Fixes

1.16.1 (2024-11-25)

Bug Fixes

  • add appearance: button for better cross-browser button styling c… (#2677) (85be249), closes #2676

1.16.0 (2024-11-21)

Features

1.15.0 (2024-10-01)

Features

1.14.1 (2024-09-16)

Bug Fixes

1.14.0 (2024-09-12)

Features

1.13.4 (2024-08-23)

Bug Fixes

  • Update Slack channel invite in README.md (47dadc3)
  • Update Slack channel invite link in README-ar.md (de8dd0f)

1.13.3 (2024-08-19)

Bug Fixes

  • Sass warning on latest version (d5b6b87)

1.13.2 (2024-08-06)

Bug Fixes

1.13.1 (2024-07-12)

Bug Fixes

1.13.0 (2024-06-11)

Features

  • pass resource prop to DayColumnWrapper (77760aa), closes #2607

1.12.2 (2024-05-14)

Bug Fixes

1.12.1 (2024-04-30)

Bug Fixes

  • fixing Drag and Drop Examples link (fa4a378), closes #2585

1.12.0 (2024-04-25)

Features

  • translations: translate CONTRIBUTING.md to Arabic (#2558) (ae64158)

1.11.7 (2024-04-25)

Bug Fixes

1.11.6 (2024-04-15)

Bug Fixes

  • docs: correct link for 'props' in 'Understanding Dates' guide (#2562) (59982ae)

1.11.5 (2024-04-15)

Bug Fixes

1.11.4 (2024-04-15)

Bug Fixes

  • Correct selection issues (def4934)

1.11.3 (2024-04-02)

Bug Fixes

  • Selection: handling of terminating event (937b4c5)

1.11.2 (2024-03-12)

Bug Fixes

  • correct slotMetrics issue in TimeGrid (e25f187), closes #2529

1.11.1 (2024-03-04)

Bug Fixes

  • replace deprecated onKeyPress by onKeyDown (21f51f2)

1.11.0 (2024-02-26)

Features

1.10.3 (2024-02-21)

Bug Fixes

1.10.2 (2024-02-19)

Bug Fixes

1.10.1 (2024-02-14)

Bug Fixes

1.10.0 (2024-02-09)

Features

  • event sort: update event sort for multi day (#2502) (ff209d0)

1.9.2 (2024-02-09)

Bug Fixes

1.9.1 (2024-02-07)

Bug Fixes

1.9.0 (2024-02-07)

Features

1.8.7 (2024-01-26)

Bug Fixes

  • add isBackgroundEvent to onSelectEvent event obj (#2491) (fdbb496)

1.8.6 (2024-01-08)

Bug Fixes

  • DnD: dragAndDrop EventWrapper.js error: cannot add property 'X', object is not extensible (0c4826a)

1.8.5 (2023-10-30)

Bug Fixes

  • fixing invalid ref with invalid scrollHeight (#2459) (a4bc8f3)

1.8.4 (2023-09-18)

Bug Fixes

1.8.3 (2023-09-18)

Bug Fixes

1.8.2 (2023-08-07)

Bug Fixes

  • rtl DnD: Dragging an event in the RTL month view calendar gets confused to the wrong side (#2426) (ebe8c2c), closes #2310 #1801

1.8.1 (2023-06-05)

Bug Fixes

  • scrollToTime does not work properly, when min specified (#2051) (04c1888)

1.8.0 (2023-06-02)

Features

  • allDayMaxRows: Allow for more granular control (36871bf), closes #2386

1.7.0 (2023-06-02)

Features

1.6.9 (2023-03-24)

Bug Fixes

1.6.8 (2023-02-17)

Bug Fixes

  • correct treatment of boolean view in 'views' (#2368) (0e6b771)

1.6.7 (2023-02-15)

Bug Fixes

1.6.6 (2023-02-15)

Bug Fixes

1.6.5 (2023-02-14)

Bug Fixes

  • calendar auto scroll while dragging event at top/bottom edge (#2230) (d1c5085), closes #2231

1.6.4 (2023-02-09)

Bug Fixes

1.6.3 (2023-02-01)

Bug Fixes

1.6.2 (2023-01-31)

Bug Fixes

1.6.1 (2023-01-05)

Bug Fixes

1.6.0 (2023-01-04)

Features

1.5.2 (2022-11-10)

Bug Fixes

  • do not send undefined/null gutterRef to getWidth (#2300) (7b5f5b8)

1.5.1 (2022-11-09)

Bug Fixes

1.5.0 (2022-07-19)

Features

  • time-gutter-wrapper: expose time gutter wrapper component (#2236) (39ff8a1)

1.4.3 (2022-07-19)

Bug Fixes

1.4.2 (2022-07-15)

Bug Fixes

1.4.1 (2022-07-15)

Bug Fixes

1.4.0 (2022-07-12)

Features

  • allow using custom event wrapper component while dragging (#2228) (afa8824), closes #1864

1.3.3 (2022-07-12)

Bug Fixes

1.3.2 (2022-07-12)

Bug Fixes

1.3.1 (2022-07-12)

Bug Fixes

1.3.0 (2022-07-11)

Features

1.2.4 (2022-07-11)

Bug Fixes

1.2.3 (2022-07-11)

Bug Fixes

1.2.2 (2022-07-11)

Bug Fixes

1.2.1 (2022-07-08)

Bug Fixes

1.2.0 (2022-07-08)

Features

1.1.0 (2022-07-08)

Features

1.0.1 (2022-07-07)

Bug Fixes

1.0.0 (2022-07-07)

Features

  • localizers: move localizer dependencies (e4a3235)

BREAKING CHANGES

  • localizers: moment, luxon and globalize are no longer bundled

0.40.8 (2022-07-07)

Bug Fixes

  • resolve resizing events in Month view (c7b105f), closes #2207

0.40.7 (2022-07-05)

Bug Fixes

0.40.6 (2022-07-05)

Bug Fixes

0.40.5 (2022-07-05)

Bug Fixes

0.40.4 (2022-07-01)

Bug Fixes

0.40.3 (2022-07-01)

Bug Fixes

  • DND: Corrects issue of losing droppable event when releasing on non-event related containers (#2199) (508b668), closes #2198 #1902

0.40.2 (2022-06-16)

Bug Fixes

0.40.1 (2022-04-18)

Bug Fixes

0.40.0 (2022-03-24)

Features

0.39.7 (2022-03-23)

Bug Fixes

  • move react, react-dom to devDependencies (#2160) (6917c15)

0.39.6 (2022-03-23)

Bug Fixes

  • incorrect babel imports in CJS/ESM builds (#2157) (687b121)

0.39.5 (2022-03-21)

Bug Fixes

  • disable absoluteRuntime in babel-preset-react-app (#2155) (b8fcb93)

0.39.4 (2022-03-15)

Bug Fixes

0.39.3 (2022-03-11)

Bug Fixes

  • Trade href="#" anchors for stylized buttons (#2074) (cd385f5)

0.39.2 (2022-03-10)

Bug Fixes

0.39.1 (2022-03-10)

Bug Fixes

  • Correct resizing event bug in Week & Day (#2143) (afa8468)

0.39.0 (2022-03-02)

Features

  • Disable autoscroll functionality, Add a functionality to disable auto-scroll on calendar render. (aa8f374)

0.38.9 (2022-02-10)

Bug Fixes

  • Correct no overlap algorithm stretch behavior (#2120) (c3f25eb)

0.38.8 (2022-02-10)

Bug Fixes

  • Correct variable name that gets passed on to EventWrapper so dragndrop ha… (#2121) (19294de)

0.38.7 (2022-02-03)

Bug Fixes

0.38.6 (2022-01-25)

Bug Fixes

  • Correct DragAndDrop event resizing in 'month' view (e3d96e5), closes #2012

0.38.5 (2022-01-16)

Bug Fixes

  • Correct issue with semantic-release and yarn-lock (cc48854), closes #2096

0.38.4 (2022-01-04)

Bug Fixes

0.38.3 (2022-01-04)

Bug Fixes

  • Correct typo in custom view example (267629b)

0.22.1 (2019-09-13)

Bug Fixes

  • add new method to get correct time indicator top position | fixes #1396 (#1447) (1cf0205)
  • drag cancelation for month view (#1322) (9c81e9e)
  • invalid prop-types. (#1435) (61e1a1e)
  • update time indicator position if max prop changes (#1379) (ac945b7)
  • use fixed date arithmetic lib and move bt-sass to devdepen… (#1374) (b223a61)

Features

0.22.0 (2019-06-18)

  • Chore: clean up prop-types (#1344) (94e3679), closes #1344
  • Publish v0.22.0 (321d8cf)
  • save snapshot (8480413)
  • stale-bot (0e0ebb2)
  • chore: fix linting (976faf1)
  • chore: remove prop-types-extra (#1349) (c3b7734), closes #1349
  • chore(deps): upgrade date-math (#1354) (762e8cf), closes #1354
  • chore(deps): upgrade uncontrollable (#1357) (689f74e), closes #1357
  • fix: bad propType. (#1351) (e704e17), closes #1351
  • fix: bug where appointments can appear outside the calendar (#1204) (9689b7d), closes #1204
  • fix: bug with dayWrapper not applying (#1196) (f3ea6f8), closes #1196
  • fix: ie fix for event bindings on unmounted components (#1338) (8ef00d6), closes #1338
  • fix: rtl incorrectly named or not propagated (#1353) (caa863f), closes #1353
  • fix(addons): do not cut end while dragging multiday event (#1342) (6fab261), closes #1342
  • docs: update docs and examples with named exports (#1352) (f478be0), closes #1352
  • docs(dnd): remove deprecated comment about react-dnd (#1323) (4d933c1), closes #1323
  • feat: provide named exports api (#1348) (4e09704), closes #1348
  • feat: redeclared all sass variables as !default (#1321) (c4f09cd), closes #1321
  • feat: use lodash-es for esm bundle (#1350) (fb0fe5e), closes #1350
  • Feat: expose date localizer (#1347) (5d93c9d), closes #1347

BREAKING CHANGE

  • must use named exports for additional RBC imports
import {
  Calendar,
  DateLocalizer,
  momentLocalizer,
  globalizeLocalizer,
  move,
  Views,
  Navigate,
  components,
} from 'react-big-calendar'

0.21.0 (2019-05-14)

Bug Fixes

Features

BREAKING CHANGES

  • Less files have been replaced with Sass versions

0.20.4 (2019-03-21)

Bug Fixes

Features

0.20.2 (2018-11-07)

Bug Fixes

Features

Performance Improvements

v0.19.2 - Wed, 27 Jun 2018 14:24:55 GMT

v0.19.1 - Thu, 03 May 2018 15:22:43 GMT

v0.19.0 - Fri, 23 Mar 2018 17:13:33 GMT

v0.18.0 - Wed, 07 Feb 2018 16:14:20 GMT

v0.17.1 - Tue, 05 Dec 2017 19:42:18 GMT

  • #634 added a new optional callback dayPropGetter to allow customization of the cell backgrounds of month, week, and work week views without the need for custom components

v0.17.0 - Thu, 02 Nov 2017 15:26:08 GMT

v0.16.1 - Fri, 29 Sep 2017 15:49:07 GMT

v0.16.0 - Fri, 29 Sep 2017 15:42:08 GMT

v0.15.0 - Tue, 29 Aug 2017 18:20:39 GMT

v0.14.4 - Fri, 23 Jun 2017 13:59:31 GMT

v0.14.3 - Wed, 21 Jun 2017 14:23:07 GMT

v0.14.2 - Mon, 19 Jun 2017 15:41:40 GMT

v0.14.1 - Mon, 19 Jun 2017 15:41:20 GMT

v0.14.0 - Tue, 02 May 2017 13:14:45 GMT

v0.13.0 - Wed, 22 Mar 2017 15:09:54 GMT

v0.12.3 - Sun, 15 Jan 2017 17:15:59 GMT

v0.12.2 - Sun, 15 Jan 2017 17:09:50 GMT

  • 45687c9 [fixed] allow string names in move()

v0.12.1 - Thu, 12 Jan 2017 20:47:22 GMT

  • 5578559 [fixed] all day event selection

v0.12.0 - Sat, 07 Jan 2017 22:03:45 GMT

v0.11.1 - Sun, 20 Nov 2016 17:48:51 GMT

v0.11.0 - Sat, 08 Oct 2016 20:24:51 GMT

v0.10.3 - Fri, 15 Jul 2016 17:56:54 GMT

v0.10.2 - Fri, 10 Jun 2016 12:50:39 GMT

v0.10.1 - Thu, 09 Jun 2016 18:39:57 GMT

v0.10.0 - Thu, 09 Jun 2016 15:33:06 GMT

v0.9.12 - Fri, 20 May 2016 12:54:29 GMT

v0.9.11 - Fri, 15 Apr 2016 13:39:50 GMT

v0.9.10 - Fri, 15 Apr 2016 13:31:58 GMT

v0.9.9 - Fri, 15 Apr 2016 12:28:00 GMT

  • a2a49c8 [fixed] consistent handling of end dates as exclusive ranges
  • 1c12b16 [fixed] DST issue with events
  • f526e23 [added] onSelecting callback
  • 18c0234 [fixed] incorrect page offset
  • 4eeacd4 [fixed] more cross browser flex issues.
  • 2dc61ec [fixed] add minHeight for week view overflow

v0.9.8 - Thu, 14 Jan 2016 19:35:07 GMT

  • 5fa7012 [fixed] Incorrect gutter widths

v0.9.7 - Sun, 13 Dec 2015 22:01:09 GMT

  • ebf8908 [fixed] agenda header display

v0.9.6 - Sun, 13 Dec 2015 21:39:49 GMT

  • a69600b [fixed] Pass correct date to DaySlot for selections.
  • 5ac5c30 [fixed] reset gutter widths before calculations

v0.9.5 - Wed, 02 Dec 2015 18:09:32 GMT

  • c2e8aa4 [fixed] accidental breaking change on the localizers
  • dc90943 [fixed] some style issues
  • ea8e085 [added] modern globalize support
  • 4b3d3ba [fixed] have gutter use culture prop
  • 7922882 [fixed] better gutter width detection

v0.9.4 - Sun, 29 Nov 2015 02:19:49 GMT

  • a41c9f9 [added] right-to-left support
  • 8bb6589 [fixed] properly select time ranges with min/max set

v0.9.3 - Sat, 28 Nov 2015 20:00:24 GMT

  • fff1914 [fixed] pass culture to View

v0.9.2 - Thu, 12 Nov 2015 23:34:33 GMT

  • 58f008f [fixed] none integer slot spaces (again)
  • f2084ef [fixed] month event rows not fitting in their cells
  • 73e449d [fixed] day view clicks return the correct slot

v0.9.1 - Thu, 12 Nov 2015 14:52:20 GMT

  • d5a0d20 [fixed] month event rows not fitting in their cells
  • f4b18d6 [fixed] day view clicks return the correct slot

v0.9.0 - Tue, 03 Nov 2015 11:33:38 GMT

  • ee53bbc [changed] default "show more" behavior navigates to day view
  • 80aa08f [added] popupOffset prop for configuring distance from viewport edge

v0.8.3 - Thu, 29 Oct 2015 06:07:22 GMT

  • d98af8d [added] edge detection for event popup
  • 69b092d [fixed] accidental hash changes
  • 0351b71 [fixed] incorrect 'show more' layout

v0.8.2 - Wed, 28 Oct 2015 08:09:39 GMT

  • 892af3d [fixed] use correct handler for "show more"

v0.8.1 - Wed, 28 Oct 2015 07:58:13 GMT

  • 4560ff7 [changed] better thin event title collapse
  • 0eeb43f [fixed] event layout sort
  • 0574eed [fixed] show more row layout issues
  • 7ee9959 [added] title to time view events
  • c07d0ab [changed] better event overlays for overlapping events

v0.8.0 - Mon, 26 Oct 2015 12:32:54 GMT

  • 4dac3f5 [added] rbc-event-allday class in month view
  • e314128 [fixed] missing keys in popup
  • 0d5df79 [changed] "show more" behavior is cleaner

v0.7.2 - Sat, 24 Oct 2015 03:21:53 GMT

  • 0b0fa0f [fixed] prevent selection when clicking show more
  • 57c8843 [fixed] allow event selection when selectable, in day views

v0.7.1 - Wed, 30 Sep 2015 12:34:43 GMT

  • f7969b3 [fixed] use client coords to get node during selection

v0.7.0 - Tue, 15 Sep 2015 08:37:50 GMT

  • 8ad4ee7 [changed] selection bound to Calendar container, respects overlays
  • 98b3dad [fixed] selecting events in All Day row of week/Day views

v0.6.1 - Sun, 13 Sep 2015 16:52:20 GMT

  • c3092f4 [fixed] event rows incorrect duration styles
  • dade2b9 [fixed] more month event layout issues

v0.6.0 - Sun, 13 Sep 2015 15:32:08 GMT

  • 49e321f [fixed] layout of events in months that don't start evenly at weekday 0
  • 720675e [added] eventPropsGetter for event markup customization

v0.5.2 - Sun, 13 Sep 2015 12:56:02 GMT

  • 386d4bc [fixed] selectable can properly be toggled on and off

v0.5.1 - Sun, 13 Sep 2015 10:08:24 GMT

  • a7dc435 [fixed] className and style props being applied in multiple places
  • c8f8281 [fixed] null exception on empty agenda view

v0.5.0 - Sun, 13 Sep 2015 09:03:11 GMT

  • 00435ad [fixed] view propType validation
  • ae039b9 [added] expose move and label methods for easier external toolbars
  • 7e7bc17 [changed] clarified accidental ambigious license

v0.4.1 - Thu, 03 Sep 2015 19:08:11 GMT