What is react-big-calendar?
react-big-calendar is a powerful and flexible calendar component for React applications. It provides a variety of views (month, week, day, agenda) and supports features like drag-and-drop, event resizing, and custom styling.
What are react-big-calendar's main functionalities?
Month View
Displays events in a monthly grid format. Users can see all events for the month at a glance.
import { Calendar, momentLocalizer } from 'react-big-calendar';
import moment from 'moment';
import 'react-big-calendar/lib/css/react-big-calendar.css';
const localizer = momentLocalizer(moment);
const MyCalendar = ({ events }) => (
<Calendar
localizer={localizer}
events={events}
startAccessor="start"
endAccessor="end"
style={{ height: 500 }}
views={['month']}
/>
);
Week View
Displays events in a weekly grid format. Users can see all events for the week, including start and end times.
import { Calendar, momentLocalizer } from 'react-big-calendar';
import moment from 'moment';
import 'react-big-calendar/lib/css/react-big-calendar.css';
const localizer = momentLocalizer(moment);
const MyCalendar = ({ events }) => (
<Calendar
localizer={localizer}
events={events}
startAccessor="start"
endAccessor="end"
style={{ height: 500 }}
views={['week']}
/>
);
Day View
Displays events in a daily grid format. Users can see all events for a single day, including start and end times.
import { Calendar, momentLocalizer } from 'react-big-calendar';
import moment from 'moment';
import 'react-big-calendar/lib/css/react-big-calendar.css';
const localizer = momentLocalizer(moment);
const MyCalendar = ({ events }) => (
<Calendar
localizer={localizer}
events={events}
startAccessor="start"
endAccessor="end"
style={{ height: 500 }}
views={['day']}
/>
);
Agenda View
Displays events in a list format. Users can see all events in a list, sorted by date and time.
import { Calendar, momentLocalizer } from 'react-big-calendar';
import moment from 'moment';
import 'react-big-calendar/lib/css/react-big-calendar.css';
const localizer = momentLocalizer(moment);
const MyCalendar = ({ events }) => (
<Calendar
localizer={localizer}
events={events}
startAccessor="start"
endAccessor="end"
style={{ height: 500 }}
views={['agenda']}
/>
);
Drag and Drop
Allows users to drag and drop events to reschedule them. This feature enhances user interaction and flexibility.
import { Calendar, momentLocalizer } from 'react-big-calendar';
import moment from 'moment';
import withDragAndDrop from 'react-big-calendar/lib/addons/dragAndDrop';
import 'react-big-calendar/lib/addons/dragAndDrop/styles.css';
import 'react-big-calendar/lib/css/react-big-calendar.css';
const localizer = momentLocalizer(moment);
const DnDCalendar = withDragAndDrop(Calendar);
const MyCalendar = ({ events, onEventDrop }) => (
<DnDCalendar
localizer={localizer}
events={events}
startAccessor="start"
endAccessor="end"
style={{ height: 500 }}
onEventDrop={onEventDrop}
/>
);
Other packages similar to react-big-calendar
fullcalendar
FullCalendar is a full-featured JavaScript calendar that can be customized to suit various needs. It offers a wide range of views and supports drag-and-drop, event resizing, and custom styling. Compared to react-big-calendar, FullCalendar has a more extensive set of features and plugins but may require more configuration.
react-calendar
react-calendar is a lightweight calendar component for React. It provides basic calendar functionalities like month, year, and decade views. It is simpler and easier to use compared to react-big-calendar but lacks advanced features like drag-and-drop and custom views.
react-datepicker
react-datepicker is a simple and customizable date picker component for React. It focuses on date selection rather than event management. While it does not offer the same level of calendar views and event handling as react-big-calendar, it is a good choice for applications that need a straightforward date picker.
react-big-calendar
An event Calendar component built for React.
DEMO and Docs.
big calendar is built for modern browsers (read: ie10+) and uses flexbox over the classic tables-ception approach.
To run the example locally, git clone
, npm install
and npm run examples
, hosted at localhost:3000.
Inspired by Full Calendar.
Use and Setup
npm install react-big-calendar --save
Include react-big-calendar/lib/css/react-big-calendar.css
for styles.
Localization and Date Formatting
react-big-calendar
includes two options for handling the date formatting and culture localization, depending
on your preference of DateTime libraries. You can use either the Moment.js or Globalize.js localizers.
Regardless of your choice you must choose a localizer to use react-big-calendar.
Moment.js
import BigCalendar from 'react-big-calendar';
import moment from 'moment';
BigCalendar.setLocalizer(
BigCalendar.momentLocalizer(moment)
);
Globalize.js v0.1.1
import BigCalendar from 'react-big-calendar';
import globalize from 'globalize';
BigCalendar.setLocalizer(
BigCalendar.globalizeLocalizer(globalize)
);