MonthView
Standalone schedule month view component
Source
LLM docs
Docs
Package
Usage
MonthView displays events in a calendar month grid. It shows event badges in each day cell with support for drag and drop.
With week numbers
Set withWeekNumbers to display week numbers in the first column.
Without week days
Set withWeekDays={false} to hide the weekday names row.
First day of week
Set firstDayOfWeek to control which day starts the week.
Weekday format
Use weekdayFormat prop to customize weekday names.
Consistent weeks
Set consistentWeeks={false} to only show weeks that have days in the current month.
Highlight today
Set highlightToday={false} to disable highlighting the current day.
Without outside days
Set withOutsideDays={false} to hide days from adjacent months.
Without header
Set withHeader={false} to hide the header controls.
Many events
When a day has many events, the component shows a "More events" indicator.
Drag and drop
Enable drag and drop to move events between days.
Full event customization
Use renderEvent prop to fully customize event rendering. This function receives the event
data as the first argument and all props that would be passed to the event root element
(including children) as the second argument, allowing you to wrap events in custom components
like HoverCard, Tooltip, or custom wrappers.
Static mode
Set mode="static" to disable all interactions.
Create and update events
Set withDragSlotSelect prop to allow users to drag across day cells to select a date range.
When the drag ends, the onSlotDragEnd callback is called with the range start and end dates.
Combined with onDayClick and onEventClick callbacks, this enables a complete event creation
and editing experience.
Accessibility
Focus management
In the MonthView component, focus is managed to provide an efficient keyboard navigation experience:
- Only the first day in the month view is included in the tab order (has
tabIndex={0}) - All other days have
tabIndex={-1}and can only be reached via arrow key navigation - Outside days (days from adjacent months) are navigable using arrow keys when
withOutsideDaysistrue - Disabled days are skipped during keyboard navigation
This approach reduces the number of tab stops when navigating through the calendar, making it faster for keyboard users to move through the view while still allowing full access to all days via arrow keys.
Keyboard interactions
Note that the following events will only trigger if focus is on a day control.
Day labels
Each day button has an aria-label attribute with the full date in the format "Month Day, Year" (e.g., "November 15, 2025"). This provides screen reader users with complete date information.