Scheduler - Event Calendar
A collection of React UI components to schedule your events.
July 2025
Out of office
Alice's Birthday
Running
Team Retrospective
Evening Gym Class
Running
Remote work
Daily Standup
Dental Checkup
Daily Standup
1-on-1 with Abigail
Client Call
Evening Gym Class
Daily Standup
Dinner with Friends
All day events
You can use the allDay property on your event model to define it as all-day:
const event = {
// ...other even properties
allDay: true,
};
July 2025
Event 4
Event 6
Event 3
Event 2
Event 1
Event 5
Event 7
Event 8
Drag interactions
Drag and resize events
You can enable the dragging and resizing of events within the Event Calendar using the areEventsDraggable and areEventsResizable props.
When areEventsDraggable is true, the events can be dragged to another point in time.
When areEventsResizable is true, the event extremities can be dragged to change its duration.
July 2025
Out of office
Alice's Birthday
Running
Team Retrospective
Evening Gym Class
Running
Remote work
Daily Standup
Dental Checkup
Daily Standup
1-on-1 with Abigail
Client Call
Evening Gym Class
Daily Standup
Dinner with Friends
External drag and drop
You can enable the dragging from and to the outside of the Event Calendar using the canDragEventsFromTheOutside and canDropEventsToTheOutside props.
When canDragEventsFromTheOutside is true, the events created with <StandaloneEvent /> can be dropped inside the Event Calendar.
When canDropEventsToTheOutside is true, the events from within the Event Calendar can be dropped outside of it.
July 2025
Out of office
Alice's Birthday
Running
Team Retrospective
Evening Gym Class
Running
Remote work
Daily Standup
Dental Checkup
Daily Standup
1-on-1 with Abigail
Client Call
Evening Gym Class
Daily Standup
Dinner with Friends
July 2025
Out of office
Alice's Birthday
Running
Team Retrospective
Evening Gym Class
Running
Remote work
Daily Standup
Dental Checkup
Daily Standup
1-on-1 with Abigail
Client Call
Evening Gym Class
Daily Standup
Dinner with Friends
Default view
<EventCalendar defaultView="month" />
July 2025
Out of office
Running
Team Retrospective
Evening Gym Class
Running
Remote work
Daily Standup
Dental Checkup
Alice's Birthday
Daily Standup
1-on-1 with Abigail
Daily Standup
Dinner with Friends
Long run
Running
Daily Standup
1-on-1 with Hailey
Client Call
Daily Standup
Design review Scheduler
Evening Gym Class
Running
Daily Standup
1-on-1 with John
Backlog Grooming
Daily Standup
Client Call
Evening Gym Class
Daily Standup
Long run
Running
Daily Standup
Daily Standup
Team Retrospective
Evening Gym Class
Dinner with Friends
Running
Daily Standup
Daily Standup
Physical Therapy
Evening Gym Class
Bob's Birthday
Daily Standup
Client Call
Prescription Pickup
Shopping
Long run
Running
Daily Standup
Daily Standup
Evening Gym Class
Running
Daily Standup
Backlog Grooming
Daily Standup
1-on-1 with Abigail
Client Call
Evening Gym Class
Richard's Birthday
Daily Standup
Community Workshop
Shopping
Long run
Running
Daily Standup
1-on-1 with Hailey
Dinner with Friends
Daily Standup
Team Retrospective
Evening Gym Class
Running
Daily Standup
1-on-1 with John
Daily Standup
Evening Gym Class
Daily Standup
Add custom view
In your custom view, you have to use the useEventCalendarView() hook to register your view in the parent component.
import { DateTime } from 'luxon';
import { useEventCalendarView } from '@mui/x-scheduler-headless/use-event-calendar-view';
function CustomView() {
const adapter = useAdapter();
useEventCalendarView(() => ({
siblingVisibleDateGetter: (date, delta) => date.plus({ days: delta }),
}));
}
Default visible date
const defaultVisibleDate = DateTime.fromISO('2025-11-01');
<EventCalendar defaultVisibleDate={defaultVisibleDate} />;
November 2025
Long run
Running
Daily Standup
Daily Standup
Evening Gym Class
Running
Daily Standup
Backlog Grooming
Daily Standup
Evening Gym Class
Daily Standup
Color palettes
The Event Calendar supports several color palettes.
Event colors can be set at two levels. The effective color resolves in the following order:
- The
eventColorassigned to the event's resource
<EventCalendar resources={[{ id: '1', title: 'Resource 1', eventColor: 'pink' }]} />
- The
eventColorassigned to the Event Calendar
<EventCalendar eventColor="pink" />
- The default color palette,
"jade"
The following demo shows one event for each palette:
July 2025
violet
jade
lime
orange
cyan
pink
indigo
yellow
blue
Translations
import { frFR } from '@mui/x-scheduler/translations';
<EventCalendar translations={frFR} />;
July 2025
violet
jade
lime
orange
cyan
pink
indigo
yellow
blue
Preferences menu
You can customize the preferences menu using the preferencesMenuConfig prop:
Available properties:
toggleWeekendVisibility: show/hide the menu item that toggles weekend visibility.toggleWeekNumberVisibility: show/hide the menu item that toggles week number visibility.toggleAmpm: show/hide the menu item that toggles 12/24‑hour time format.toggleEmptyDaysInAgenda: show/hide the menu item that toggles the visibility of days with no events in the Agenda view.
// will hide the menu
preferencesMenuConfig={false}
// will hide the menu item responsible for toggling the weekend visibility
// the other preferences remain visible
preferencesMenuConfig={{ toggleWeekendVisibility: false }}
// will hide the menu items for toggling weekend and week number visibility
preferencesMenuConfig={{ toggleWeekendVisibility: false, toggleWeekNumberVisibility: false }}
July 2025
Out of office
Alice's Birthday
Running
Team Retrospective
Evening Gym Class
Running
Remote work
Daily Standup
Dental Checkup
Daily Standup
1-on-1 with Abigail
Client Call
Evening Gym Class
Daily Standup
Dinner with Friends