YearView
Standalone schedule year view component
Source
LLM docs
Docs
Package
Usage
YearView displays all 12 months of a year in a grid layout. Event indicators are shown as colored dots in day cells.
With week numbers
Set withWeekNumbers to display week numbers in the first column of each month.
Without week days
Set withWeekDays={false} to hide the weekday names row in each month.
Render day
Use renderDay to replace the content of a day cell, for example to display counts, badges
or icons instead of the default dots. The function is called with the day date in YYYY-MM-DD
format and all events of that day. When renderDay is set, the default event indicators
are not rendered.
Hide weekend days
Set withWeekendDays={false} to hide weekend days. Every month grid shrinks to
the remaining columns and events that fall only on hidden days are not displayed.
The days that are considered weekend are controlled by the weekendDays prop
(or DatesProvider, [0, 6] by default).
Hide outside days
Set withOutsideDays={false} to hide days from adjacent months.
First day of week
Set firstDayOfWeek to control which day starts the week.
Weekday format
Use weekdayFormat prop to customize weekday names.
Highlight today
Set highlightToday={false} to disable highlighting the current day.
Without header
Set withHeader={false} to hide the header controls.
Custom header
You can build a custom header using ScheduleHeader compound components combined with your own controls.
Set withHeader={false} on the view and compose the header externally.
Recurring events
YearView automatically expands recurring events for the visible year. See Recurring events guide for full documentation.
Static mode
Set mode="static" to disable all interactions.
Localization
Use locale prop to set the dayjs locale for date formatting.
Combine it with labels prop to translate all UI text.
Responsive styles
YearView uses @container queries for responsive styles. The component automatically adjusts its layout based on the container width, hiding labels and reducing padding on smaller screens. Container queries are supported in all modern browsers.
Accessibility
Focus management
- Only the first day of each month is included in the tab order, all other days can be reached with arrow keys
- Outside days are not focusable
- Disabled days are skipped during keyboard navigation
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").