Syncfusion Feedback

Trusted by the world’s leading companies

Syncfusion Trusted Companies

The Syncfusion React Scheduler is a flexible and high-performance event calendar component built for managing time-based data and resources in React applications. It is commonly used to build booking systems, appointment scheduling solutions, and resource planning applications where accuracy, usability, and scalability matter. Designed to handle complex scheduling scenarios, it helps teams deliver rich, user-friendly calendar experiences without extensive custom UI work.

Why choose Syncfusion React Scheduler?

React Scheduler High Performance image

High performance

Optimized rendering and efficient data handling ensure fast load times and smooth scheduling, even when managing large volumes of events in enterprise applications.

React Scheduler Seamless Data Binding image

Flexible data binding

Connect easily to REST APIs, JSON, or cloud data sources. Supports real-time updates and seamless integration with modern application backends.

React Scheduler Accessibility And Compliance image

Accessibility compliant

Built with accessibility best practices, including keyboard navigation and screen reader support, ensuring inclusive user experiences.

React Scheduler Adapts To Any Resolution image

Fully responsive

Adaptive layout delivers a consistent scheduling experience across desktops, tablets, and mobile devices without additional configuration.

React Scheduler Attractive Customizable Themes image

Customizable themes

Personalize the scheduler’s appearance using built-in themes or custom styling to match your application’s design and branding. Utilize the online Theme Studio tool to customize themes of Scheduler easily.

React Scheduler Globalization image

Globalization support

Supports multiple languages, time zones, and regional formats, enabling developers to build scheduling applications for global users.

Installation & Quick Start

Follow these three steps to integrate the scheduler into your React application.

1

Install the Scheduler Package

Install the Syncfusion React Scheduler package using npm.

npm install @syncfusion/ej2-react-schedule --save

2

Import the required CSS styles

Import the required Syncfusion CSS files to apply proper layout and theme styling.

@import "../node_modules/@syncfusion/ej2-base/styles/tailwind3.css";
@import "../node_modules/@syncfusion/ej2-buttons/styles/tailwind3.css";
@import "../node_modules/@syncfusion/ej2-calendars/styles/tailwind3.css";
@import "../node_modules/@syncfusion/ej2-dropdowns/styles/tailwind3.css";
@import "../node_modules/@syncfusion/ej2-inputs/styles/tailwind3.css";
@import "../node_modules/@syncfusion/ej2-lists/styles/tailwind3.css";
@import "../node_modules/@syncfusion/ej2-navigations/styles/tailwind3.css";
@import "../node_modules/@syncfusion/ej2-popups/styles/tailwind3.css";
@import "../node_modules/@syncfusion/ej2-splitbuttons/styles/tailwind3.css";
@import "../node_modules/@syncfusion/ej2-react-schedule/styles/tailwind3.css";

3

Initialize the Scheduler component

Import and render the Scheduler component, then inject the desired calendar views such as Day, Week, WorkWeek, Month, or Agenda. Also explore our React Scheduler Example that shows you how to render and configure a Scheduler in React.

import { ScheduleComponent, Day, Week, WorkWeek, Month, Agenda, Inject } 
from '@syncfusion/ej2-react-schedule';
 
export default function App() {
  return (
     <ScheduleComponent>
       <Inject services={[Day, Week, WorkWeek, Month, Agenda]} />
     </ScheduleComponent>
  );
};

Get Started Now

No credit card required.


AI Scheduler for Smarter Planning

The AI Scheduler organizes your calendar with ease. Just type instructions like, “Meet the team every Friday at 10 AM”, and it handles the rest. It checks for conflicts, suggests optimal times, and organizes your calendar visually.

Experience smarter scheduling with this demo

React Smart Scheduler image


Multiple calendar views

A wide variety of built-in view modes are available: day, week, workweek, month, agenda, month-agenda, year, and timeline. Easily configure each individual view with different, view-specific options.

Day View in React Scheduler component.

Day, week, and workweek views

Display appointments for a single day or across multiple days using React Scheduler.

Month View in React Scheduler component.

Month view

In React Scheduler, you can display events and appointments on a single day or multiple days for an entire month.

Agenda view in React Scheduler component.

Agenda view

Load events virtually and display them as a list in a sequential order grouped by day. An option exists to specify the number of days to load initially in the agenda view of React Scheduler.

Month agenda view in React Scheduler component.

Month agenda view

Display the calendar layout and the events of the currently selected date. A round indicator at the bottom of a date shows the presence of one or more events on that day.

Year view in React Scheduler component.

Year view

Year view displays all the months of a particular year in a calendar view format. In that calendar view, dates containing events and appointments are highlighted with dots placed under the individual date. When you click on the date, the event pop-up will be displayed and the events will be listed.

Timeline view in React Scheduler component.

Timeline views

React Scheduler provides five built-in timeline views: timeline day, timeline week, timeline workweek, timeline month, and timeline year. Each view displays events accurately across a horizontal time axis for a single day or multiple days. To provide better performance, timeline views load resources, and appointments virtually on every scroll action.


Recurring events in React Scheduler.

Recurring event scheduling

Easily create and manage recurring appointments with flexible recurrence rules. Schedule daily, weekly, monthly, or custom recurring events, and handle exceptions or modifications without affecting the entire series. This makes it ideal for applications such as appointment booking systems, healthcare scheduling, and workforce planning tools.


Resource scheduling

Efficiently manage and schedule multiple resources such as meeting rooms, employees, equipment, or service providers. Group events by resource, track availability, and prevent scheduling conflicts. This is essential for resource planning, workforce management, and reservation systems.

Multiple resources and grouping in React Scheduler.


React Scheduler event drag and drop

Drag-and-drop scheduling

Enable intuitive scheduling with built-in drag-and-drop and resizing capabilities. Users can quickly move appointments, adjust durations, or update schedules directly from the interface. This improves scheduling efficiency and provides a seamless user experience in calendar and scheduling applications.


Timezone support

Regardless of the system time zone, the React Event Calendar supports setting the required time zone for the control itself, as well as events.

Illustration of time zone support of React Scheduler.


Real-time data synchronization

Real-time appointment data accurately synchronizes with our React Scheduler.

Illustration of Google Calendar integration with React Scheduler.

Outlook and Google Calendar integration

Easily synchronize events between our React Event Calendar and Google or Outlook Calendar via the Google Calendar API or Microsoft Outlook’s object library.

Illustration of real-time updates of React Scheduler.

Real-time updates

Bidirectional data communication conveys the server-side appointment updates made on Scheduler to all the connected clients through SignalR.


Advanced event-handling options

The React Event Calendar provides clear, vibrant, exact representations of events and appointments across the Scheduler timeline, based on their assigned time duration.

Illustration of add and edit capabilities of React Scheduler.

Add and edit capabilities

There is built-in support for better event handling, such as easier appointment creation and editing using the default event editor or through intuitive drag-and-resize actions. In addition, you can also add custom data fields to both the events and resource data source.

Illustration of multiple event selection in React Scheduler.

Multi-event selection

Easily select multiple events at once by pressing and holding the Ctrl key while clicking on events. On mobile devices, do the same by tapping and holding an event, and continue selecting by single-tapping other events. After successfully selecting events, delete or reposition them simultaneously.

Illustration of event tooltips of React Scheduler.

Tooltip

The customizable tooltip displays event information while the mouse pointer is hovering over the event. Do the same on mobile devices by tapping and holding an event.

Illustration of event customization with React Scheduler.

Appearance customization

Change the look and feel of React Scheduler events and appointments by customizing their default appearance and style using any HTML or CSS.

Illustration of clipboard support of React Scheduler.

Clipboard

The React Scheduler supports clipboard functionality, allowing users to manage events efficiently. Users can copy selected events using the Ctrl+C shortcut, cut events with Ctrl+X, and paste events into different time slots using Ctrl+V.


Inline appointment

With this feature enabled, users can create and edit appointments inline through a single click on the scheduler cells or on the existing appointment’s subject. Pressing Enter after the new subject text is typed in the inline text box will update and save the appointment appropriately.

Inline appointment in React Scheduler component.


Customizable scheduler views

Real-time appointment data accurately synchronizes with our React Scheduler.

Unique view in React Scheduler component.

Unique view configurations

Easily configure each individual view mode with different calendar settings. For example, you can enable the grouping feature in month view and apply event templates in week view.

Extensible view intervals in React Scheduler component.

Extensible view intervals

Display multiple days, weeks, and months by extending each view mode based on the provided interval count.


Block time interval

You can block specific time ranges on React Event Calendar to prevent the creation of events and appointments in that time slot.

Block time intervals in React Scheduler component.


Row auto height in React Scheduler component.

Adaptive rows

A built-in option has been added to the React Event Calendar to automatically increase the height of the rows in month and timeline views when new concurrent events or appointments are added.


Context menu

Context menu integrated with React Scheduler opens when a cell or appointment is right-clicked.

Context menu in React Scheduler component.


Feature-rich calendar options

The React Event Calendar inherits almost all the calendar-specific features, such as first day of the week and timescale.

Illustration of first day of the week of React Scheduler.

First day of the week

Customize the first day of the week, which defaults to Sunday, as per the default locale. You can utilize this option for individual views, also.

Illustration of setting start and end hours on React Scheduler.

Custom start and end hours

Display the event scheduler layout with specific time durations by hiding the unwanted hours.

Illustration of timescale options of React Scheduler.

Flexible timescale

Use customizable timescale options to view a timeline of events clearly and set a different duration.

Illustration of working time of React Scheduler.

Working time

The active cells of the scheduler (displayed in white) visually represent the work days and working hours.

Illustration of current time highlighting in React Scheduler.

Highlighting current time

Indicate the current date with a highlighted date header. Mark accurately the current time on all views.

Illustration of hiding weekend days in React Scheduler.

Hiding weekend days

Hiding weekend days from the Scheduler allows you to display only working days across all views.

Illustration of displaying week numbers in React Scheduler.

Week number display

Display the week number of the current date range beside the date header in day, week, and workweek views. Also display the week number in the month view as the first column. The week number is determined by the first day of the week and week rules (first day or first full week, or first four day week).

Illustration of displaying time format in React Scheduler.

Time mode

The Scheduler control supports both 12-hour and 24-hour time formats.


Completely customizable UI

Customize the appearance of any part of the Scheduler interface using HTML and CSS styles.

Illustration of date header customization in React Scheduler.

Date header

Change the default appearance of the header bar by adding any kind of CSS, custom text, or image.

Illustration of complete React Scheduler customization.

Complete Scheduler UI

A built-in client-side event allows the end users to customize any part of the Scheduler user interface.

Illustration of common header bar in React Scheduler.

Header bar

Add custom items to the default header bar options. You can hide or show common header bar options.

Illustration of cell customization with React Scheduler.

Scheduler cells

Out-of-the-box template options allow you to easily customize the cells by adding any kind of text, image, or CSS.

Illustration of quick pop-ups in React Scheduler.

Quick pop-ups

Easily customize pop-ups that open when single-clicking on cells, events, or appointments with your own UI or template design.

Illustration of event editor of React Scheduler.

Open event editor externally

The React Event Calendar offers a built-in method to open the default event editor window programmatically.


User-friendly interactions

The modern and trendy UI design of the React Scheduler makes the user interactions simpler and more efficient.

Pop-up displaying event information.

Quick event overview

Clicking or tapping on events displays their important details, such as subject and time, along with edit and delete options.

React Scheduler cell selection.

Cell selection

Click and drag the pointer over the Scheduler cells for multiple-cell selection. You can do the same with keyboard shortcuts.

Event container displayed in month calendar.

Event container

Clicking on the text indicator (+n more) in month and timeline views will open an event container listing all the hidden event and appointment details of a day.

Navigation options in React Scheduler.

Quick navigation

The React Scheduler provides an intuitive way to navigate back and forth among the date ranges using an inline calendar, and also to navigate between different view modes.


Interactive features

The React Scheduler allows users to export its events in two ways: as an Excel file or as an ICS file.

Illustration of Excel export support in React Scheduler.

Export to Excel

The React Scheduler allows you to export all its events to an Excel document by default. It also provides additional customization options to export custom event data collections.

Illustration of export and import ICS files in React Event Calendar.

Export and import ICS

The React Event Calendar supports exporting all its event data to iCal format, and it supports importing events from an iCal file into the Scheduler.

React Scheduler developer-friendly APIs.

Developer-friendly APIs

Developers can have full control over the UI and behavior of the event calendar through its built-in, developer-friendly APIs. It allows you to customize even the complex Scheduler functionalities with ease.


Accessibility

The React Scheduler component is easily accessed by screen readers. Complete keyboard interaction support has also been provided.

Accessibility enabled React Scheduler.

Completely accessible

The React Scheduler component has complete WAI-ARIA accessibility support. The Scheduler UI includes high-contrast visual elements, giving visually impaired people the best viewing experience. Also, valid UI descriptions are easily accessible through assistive technologies such as screen readers.

Keyboard interactive React event calendar.

Keyboard interactive

Various keyboard shortcuts are available to perform almost all the Scheduler actions, such as multiple cell or event selection and navigating to other views.

Right to left support in React Scheduler.

Right to left (RTL)

Render the event scheduler following the proper right-to-left conventions.




React Scheduler Use Cases

Build powerful scheduling and booking applications using the Syncfusion React Scheduler. It supports real-world scenarios such as healthcare scheduling, resource booking, hospitality reservations, and workforce management.

Medical appointment systems

Healthcare scheduling

Manage patient appointments, doctor availability, and recurring visits efficiently. Prevent conflicts and support accurate scheduling across departments and locations.

View Healthcare Appointment Scheduling Demo

Resource and room booking.

Resource and room booking

Enable users to reserve meeting rooms, equipment, or shared spaces. Prevent double bookings and manage resource availability with ease.

View Room Booking Demo

Hotel and hospitality management.

Hotel reservations

Handle room bookings and guest schedules efficiently. Easily update and reschedule reservations using intuitive scheduling interactions.

View Hospitality Scheduling Demo

Employee shift and workforce management.

Employee shift scheduling

Plan employee shifts, assign roles, and manage workforce availability. Simplify staff coordination and scheduling operations.

View Workforce Scheduling Demo

Other Supported Frameworks

In addition to React, built-in integration is available for these major frameworks.

Discover Syncfusion’s Complete React Component Ecosystem

Explore over 145+ React UI components featuring established, production-ready controls and the latest pure React components built natively for modern web app development.

  • React Components
  • Pure React Components

Frequently Asked Questions

The Syncfusion React Scheduler provides the following features:

  • Highly responsive layout and a finely optimized design for desktops, tablets, and mobile phones.
  • Different basic views like day, week, workweek, month, and year of calendar mode and timeline mode.

  • Virtual scrolling allows you to load large numbers of resources and events dynamically.

  • Adapts with different time zones instantly.
  • Multiple resource grouping based on the timeline, horizontal, hierarchical, and date views.

  • One of the best React Scheduler in the market that offers feature-rich UI to interact with the software.
  • Easy synchronization of events with Google and Outlook Calendars.
  • Simple configuration and API.

  • Supports all modern browsers.
  • Expansive learning resources such as demos, documentation and videos to learn quickly and get started with React Scheduler.

You can find our React Scheduler demo, which demonstrates how to render and configure the Scheduler.

You can create a scheduler in React using Syncfusion’s React Scheduler component Getting Started. Install the @syncfusion/ej2-react-schedule package, import the ScheduleComponent, and configure views, data sources, and event settings.

Syncfusion offers a free community license for individuals and small businesses, making its React Scheduler one of the best free options. It provides enterprise-grade features like multiple views, resource grouping, and event editing without limitations.

You can programmatically add events to the Syncfusion React Scheduler component using the addEvent() method. This method allows you to add either a single event or a collection of events simultaneously to the schedule. For more information, refer to our detailed documentation on adding, editing, and removing events in React Scheduler.

You can also perform CRUD operations on events using these methods:

  • addEvent() - To add new events
  • saveEvent() - To update existing events
  • deleteEvent() - To remove events

These methods enable you to programmatically manage events in your React Schedule component without directly manipulating the data source.

You can reschedule appointments by simply dragging and dropping them. To enable this functionality, inject the DragAndDrop module and set the allowDragAndDrop property to true.

On mobile devices, events can be moved by tapping and holding an appointment, then dragging it to the desired time or location.

To learn more about dragging external items and advanced drag-and-resize capabilities, watch this video. For additional details, refer to our comprehensive documentation on drag-and-drop appointments in the React Scheduler.

The Syncfusion React Scheduler fully supports recurring appointments, allowing you to easily create events that repeat on a daily, weekly, monthly, or yearly basis with integrated recurrence options.To configure recurring appointments in the React Scheduler component, set the RecurrenceRule property in your event data. The RecurrenceRule follows the iCalendar (RFC 5545) specifications.For additional details, refer to our comprehensive documentation on recurring events in the React Scheduler.

Resource and grouping support enables the Scheduler to be shared across multiple resources. Appointments associated with each resource are displayed under their corresponding resource.

Resources in the Scheduler are arranged in rows or columns, with dedicated spacing to ensure all related appointments are clearly visible on a single page. The Scheduler also supports multilevel resource grouping, allowing for hierarchical organization of resources.

Depending on the view, resources can be displayed as expandable groups in timeline views or as a vertical hierarchy in calendar views, providing flexible and intuitive scheduling layouts.

For additional details, refer to the comprehensive documentation on resources and grouping in the React Scheduler.

Virtual scrolling is a powerful feature in the Syncfusion React Schedule component that significantly improves performance when working with large datasets. This feature allows the component to load only visible items in the viewport and load remaining items as you scroll, which is especially beneficial when handling numerous resources and appointments.

To enable virtual scrolling in your React Schedule component, set the allowVirtualScrolling property to true within view-specific settings.

For more information, refer to our detailed documentation available on Virtual scrolling in React Scheduler.

No, this is a commercial product and requires a paid license. However, a free community license is also available for companies and individuals whose organizations have less than $1 million USD in annual gross revenue, 5 or fewer developers, and 10 or fewer total employees.

A good place to start would be our comprehensive getting started documentation.

The ScheduleComponent in Syncfusion React is a fully featured calendar and appointment management component. It allows you to display events, manage resources, enable drag-and-drop, and customize views. It supports recurring events, time zone handling, and integration with external calendars like Google and Outlook.

Syncfusion React Calendar is a lightweight date picker for selecting single or multiple dates. It focuses on displaying dates and basic navigation between months and years. Syncfusion React Scheduler is a full-featured appointment manager that supports events, resources, recurring appointments, multiple views (Day, Week, Month, Timeline), drag-and-drop, and integration with external calendars like Google and Outlook.

To configure day, week, and month views in the React Scheduler component, you need to properly import and inject the required modules for each view. For more information, refer to our detailed documentation on module injection in the React Schedule component.

To enable resizing functionality in the React Scheduler, inject the resize module and ensure that the allowResizing property is set to true. For more information, refer to our detailed documentation appointment resizing in the React Scheduler.

By default, the React Scheduler component operates using the system’s current timezone. To schedule appointments in a different timezone, set the timezone property in the Scheduler.In addition to configuring a global timezone, you can assign timezones to individual appointments by specifying the startTimezone and endTimezone properties within the event fields collection.For additional details, refer to our comprehensive documentation on timezones in the React Scheduler.

Yes, events can be reordered using the sortComparer property. By default, the Scheduler renders overlapping events based on their start and end times. You can customize the display order of overlapping events by defining a custom sorting logic through the sortComparer property within eventSettings, allowing events to be ordered based on custom fields. For more information, refer to our detailed documentation on reordering events in the React Scheduler.

Our Customers Love Us

Having an excellent set of tools and a great support team, Syncfusion® reduces customers’ development time.
Here are some of their experiences.

See Real Success Stories

Developers around the world trust Syncfusion’s Essential Studio to simplify complex projects and speed up delivery. With a vast library of UI controls, powerful SDKs, and reliable support, Essential Studio helps teams build enterprise-ready applications with confidence.

Read Our Customer Stories


Rated by users across the globe

Transform your applications today by downloading our free evaluation version

Download Free Trial No credit card required | 2.37M+ downloads

Awards

Greatness—it’s one thing to say you have it, but it means more when others recognize it. Syncfusion® is proud to hold the following industry awards.

Recent activities in React Scheduler blogs and tutorials

The React Scheduler blog and tutorial videos posts will guide you in building your first app with React components. They provide problem-solving strategies, describe features and functionalities, announce new feature releases, explain best practices, and showcase example scenarios. Explore our latest posts on our blog and tutorial video channels for React Scheduler updates.

Up arrow icon