Schedule
Schedule component with day, week, month and year views
Source
LLM docs
Docs
Package
Usage
Schedule is a unified component that combines all schedule views (Day, Week, Month, Year) with automatic view switching. Use the view selector in the header to switch between different views.
Controlled state
Control the current view and date externally using the view, onViewChange, date, and onDateChange props.
This allows you to build custom navigation or integrate with other components.
Current view: week
View-specific props
Customize each view by passing view-specific props via dayViewProps, weekViewProps, monthViewProps,
and yearViewProps. These props are forwarded to the corresponding view component.
For example, you can set different time ranges for Day and Week views, or customize the first day of week for Month and Year views.
Default view
Set defaultView to control which view is shown initially when using uncontrolled mode.
Custom header
You can build a custom header using ScheduleHeader compound components combined with your own controls.
Disable the default header on all views by passing withHeader={false} through view-specific props.
Common props
The following props are shared across all views:
events- Events to displaylocale- Date formatting localeradius- Border radiuslabels- Label overrides for i18nrenderEventBody- Custom event rendererwithDragDrop- Enable drag and droponEventDrop- Drag and drop handlercanDragEvent- Drag permission callbackwithEventResize- Enable event resizingonEventResize- Resize handlercanResizeEvent- Resize permission callbackmode- Interaction mode (defaultorstatic)
These props are automatically passed to all views. For view-specific customization, use the
dayViewProps, weekViewProps, monthViewProps, and yearViewProps props.
Drag and drop
Enable event drag and drop by setting withEventsDragAndDrop prop. Events can be dragged
to different time slots and days across all views.
Create and update events
Set withDragSlotSelect prop to allow users to drag across time slots or day cells to select a range.
When the drag ends, the onSlotDragEnd callback is called with the range start and end dates.
Combined with onTimeSlotClick, onAllDaySlotClick, onDayClick, and onEventClick callbacks,
this enables a complete event creation and editing experience across all views.
March 2026
Sunday, March 29
External drag and drop
Use onExternalEventDrop to allow dragging items from outside the component into
the schedule. External items must set data in dataTransfer during their onDragStart.
The callback receives the DataTransfer object and the drop target datetime.
Drag to schedule
Quick Sync
30 min
Workshop
120 min
One-on-One
60 min
Bidirectional drag and drop
Combine onExternalEventDrop with withEventsDragAndDrop to enable bidirectional
drag and drop. Items dragged from the sidebar are removed from the list and added
to the schedule. Events dragged from the schedule back to the sidebar are removed
from the schedule. The schedule sets application/json with { eventId } in
dataTransfer when an event is dragged, which the sidebar drop zone reads to
identify the event.
Unscheduled
Quick Sync
30 min
Workshop
120 min
One-on-One
60 min
Event resize
Enable event resizing by setting withEventResize prop. Users can drag the top or bottom
edge of an event to adjust its start or end time. Use onEventResize callback to handle
the resize. Event resize works in both Day and Week views and can be combined with drag and drop.
Recurring events
Schedule automatically expands recurring events for the visible date range in each view. See Recurring events guide for full documentation.
Background events
Set display="background" on an event to render it as a full-width, non-interactive
block behind regular events. Background events work in Day, Week, and Month views.
Responsive layout
Schedule supports layout="responsive" prop that automatically switches between views
based on the container width. Resize the container below to see the view change.
March 2026
Sunday, March 29
View components
For more control over individual views, use the view components directly: