React Big Calendar is a powerful events calendar component for React that allows you to create stunning and interactive calendar experiences. In this article, we’ll explore the world of React Big Calendar, covering the basics, advanced usage, and providing code examples to help you get started.
Introduction
React Big Calendar is designed for modern browsers and uses flexbox over the classic tables-caption approach. It’s inspired by Full Calendar and provides a robust set of features for building events calendars. With React Big Calendar, you can create custom calendar experiences that fit your application’s needs.
Installation
To install React Big Calendar, run the following command:
yarn add react-big-calendar
Alternatively, you can use npm:
npm install --save react-big-calendar
Make sure to include the CSS file by adding the following line to your HTML file:
<link rel="stylesheet" href="react-big-calendar/lib/css/react-big-calendar.css" />
Basic Usage
To use React Big Calendar, you need to import the component and pass it the necessary props. Here’s a basic example:
import React from 'react';
import { Calendar } from 'react-big-calendar';
const events = [
{
title: 'Event 1',
start: new Date('2024-08-01T10:00:00.000Z'),
end: new Date('2024-08-01T12:00:00.000Z'),
},
{
title: 'Event 2',
start: new Date('2024-08-02T14:00:00.000Z'),
end: new Date('2024-08-02T16:00:00.000Z'),
},
];
const MyCalendar = () => (
<div>
<Calendar
events={events}
startAccessor="start"
endAccessor="end"
style={{ height: 500 }}
/>
</div>
);
export default MyCalendar;
In this example, we’re creating a basic calendar component that displays two events. We’re passing the events
array, startAccessor
, and endAccessor
props to the Calendar
component.
Advanced Usage
React Big Calendar provides a range of advanced features that allow you to customize the calendar experience. Here are a few examples:
Localization and Date Formatting
React Big Calendar includes four options for handling date formatting and culture localization: Moment.js, Globalize.js, date-fns, and Day.js. You can choose one of these libraries to use with React Big Calendar.
Here’s an example using Moment.js:
import React from 'react';
import { Calendar, momentLocalizer } from 'react-big-calendar';
import moment from 'moment';
const localizer = momentLocalizer(moment);
const MyCalendar = () => (
<div>
<Calendar
localizer={localizer}
events={events}
startAccessor="start"
endAccessor="end"
style={{ height: 500 }}
/>
</div>
);
Custom Styling
React Big Calendar provides a range of customization options for styling the calendar. You can use the SASS files included with the library to customize the colors, fonts, and layout of the calendar.
Here’s an example of how to use the SASS files:
@import 'react-big-calendar/lib/sass/styles';
@import 'react-big-calendar/lib/addons/dragAndDrop/styles'; // if using DnD
$primary-color: #007bff;
$secondary-color: #6c757d;
.calendar {
background-color: $primary-color;
color: #fff;
}
.event {
background-color: $secondary-color;
color: #fff;
}
Drag and Drop
React Big Calendar includes a drag-and-drop feature that allows users to drag events to different dates. You can enable this feature by passing the dragAndDrop
prop to the Calendar
component.
Here’s an example:
import React from 'react';
import { Calendar, dragAndDrop } from 'react-big-calendar';
const MyCalendar = () => (
<div>
<Calendar
events={events}
startAccessor="start"
endAccessor="end"
style={{ height: 500 }}
dragAndDrop={true}
/>
</div>
);
Conclusion
React Big Calendar is a powerful events calendar component for React that provides a range of features for building custom calendar experiences. With its robust set of features, customization options, and ease of use, React Big Calendar is an excellent choice for building events calendars in your React applications.