Date Calendar
The Date Calendar component lets users select a date without any input or popper / modal.
Basic usage
Uncontrolled vs. controlled value
The value of the component can be uncontrolled or controlled.
Uncontrolled calendar
Controlled calendar
Form props
The component can be disabled or read-only.
disabled
readOnly
Views
The component can contain three views: day
, month
, and year
.
By default, only the day
and year
views are enabled.
You can customize the enabled views using the views
prop.
Views will appear in the order they're included in the views
array.
"year", "month" and "day"
"day"
"month" and "year"
Choose the initial year / month
If value
or defaultValue
contains a valid date, this date will be used to choose which month to render in the day
view and which year to render in the month
view.
If both value
and defaultValue
contain no valid date, the component will try to find a month and year that satisfies the validation rules.
You can override this date using the referenceDate
, in the example below the calendar renders April 2022 even though no date is visually selected:
Month and Year Calendar
If you only need the year
view or the month
view, you can use the YearCalendar
/ MonthCalendar
components:
YearCalendar
MonthCalendar
Order of years
By default, years are displayed in ascending order, chronologically from the minimum year to the maximum.
Set the yearsOrder
prop to desc
to show the years in descending order.
Years in descending order
Day view customization
Show additional days
To show all days of displayed weeks, including those outside of the current month, use showDaysOutsideCurrentMonth
.
By default, only weeks of the current month are displayed, but you can provide a total number of weeks to display with fixedWeekNumber
prop.
This value is usually set to 6
for Gregorian calendars, because month display can vary between 4 and 6 weeks.
Display week number
To display week number, use the displayWeekNumber
.
You can customize the calendar week header by using the localization key localeText.calendarWeekNumberHeaderText
.
You can also customize what's rendered as a calendar week number, using a callback for the localization key localeText.calendarWeekNumberText
.
Week picker
You can select the whole week using the day
component slot:
Dynamic data
Sometimes it may be necessary to display additional info right in the calendar. The following demo shows how to add a badge on some day based on server-side data:
Localization
See the Date format and localization and Translated components documentation pages for more details.
Validation
See the Validation documentation page for more details.
API
See the documentation below for a complete reference to all of the props and classes available to the components mentioned here.