CalendarPicker API
API documentation for the React CalendarPicker component. Learn about the available props and the CSS API.
Import
import { CalendarPicker } from '@mui/x-date-pickers-pro/CalendarPicker';
// or
import { CalendarPicker } from '@mui/x-date-pickers/CalendarPicker';
// or
import { CalendarPicker } from '@mui/x-date-pickers-pro';
// or
import { CalendarPicker } from '@mui/x-date-pickers';
Component name
The nameMuiCalendarPicker
can be used when providing default props or style overrides in the theme.Props
Name | Type | Default | Description |
---|---|---|---|
onChange* | func | Callback fired on date change | |
components | object | {} | Overrideable components. |
componentsProps | object | {} | The props used for each component slot. |
dayOfWeekFormatter | func | (day) => day.charAt(0).toUpperCase() | Formats the day of week displayed in the calendar header. Signature: function(day: string) => string day: The day of week provided by the adapter's method getWeekdays .returns (string): The name to display. |
defaultCalendarMonth | any | Default calendar month displayed when value={null} . | |
disabled | bool | false | If true , the picker and text field are disabled. |
disableFuture | bool | false | If true future days are disabled. |
disableHighlightToday | bool | false | If true , today's date is rendering without highlighting with circle. |
disablePast | bool | false | If true past days are disabled. |
getViewSwitchingButtonText | func | Get aria-label text for switching between views button. Signature: function(currentView: CalendarPickerView) => string currentView: The view from which we want to get the button text. returns (string): The label of the view. | |
leftArrowButtonText | string | Left arrow icon aria-label text. | |
loading | bool | false | If true renders LoadingComponent in calendar instead of calendar view. Can be used to preload information and show it in calendar. |
maxDate | any | Maximal selectable date. @DateIOType | |
minDate | any | Minimal selectable date. @DateIOType | |
onMonthChange | func | Callback firing on month change @DateIOType. Signature: function(month: TDate) => void | Promise month: The new month. returns (void | Promise): - | |
onViewChange | func | Callback fired on view change. Signature: function(view: CalendarPickerView) => void view: The new view. | |
onYearChange | func | Callback firing on year change @DateIOType. Signature: function(year: TDate) => void year: The new year. | |
openTo | 'day' | 'month' | 'year' | 'day' | Initially open view. |
readOnly | bool | false | Make picker read only. |
reduceAnimations | bool | typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent) | Disable heavy animations. |
renderDay | func | Custom renderer for day. Check the PickersDay component. Signature: function(day: TDate, selectedDays: Array<TDate | null>, pickersDayProps: PickersDayProps<TDate>) => JSX.Element day: The day to render. selectedDays: The days currently selected. pickersDayProps: The props of the day to render. returns (JSX.Element): The element representing the day. | |
renderLoading | func | () => <span data-mui-test="loading-progress">...</span> | Component displaying when passed loading true.Signature: function() => React.ReactNode returns (React.ReactNode): The node to render when loading. |
rightArrowButtonText | string | Right arrow icon aria-label text. | |
shouldDisableDate | func | Disable specific date. @DateIOType Signature: function(day: TDate) => boolean day: The date to test. returns (boolean): Returns true if the date should be disabled. | |
shouldDisableMonth | func | Disable specific months dynamically. Works like shouldDisableDate but for month selection view @DateIOType.Signature: function(month: TDate) => boolean month: The month to check. returns (boolean): If true the month will be disabled. | |
shouldDisableYear | func | Disable specific years dynamically. Works like shouldDisableDate but for year selection view @DateIOType.Signature: function(year: TDate) => boolean year: The year to test. returns (boolean): Returns true if the year should be disabled. | |
showDaysOutsideCurrentMonth | bool | false | If true , days that have outsideCurrentMonth={true} are displayed. |
view | 'day' | 'month' | 'year' | Controlled open view. | |
views | Array<'day' | 'month' | 'year'> | ['year', 'day'] | Views for calendar picker. |
Slots
Name | Type | Default | Description |
---|---|---|---|
LeftArrowButton | elementType | IconButton | Button allowing to switch to the left view. |
LeftArrowIcon | elementType | ArrowLeft | Icon displayed in the left view switch button. |
RightArrowButton | elementType | IconButton | Button allowing to switch to the right view. |
RightArrowIcon | elementType | ArrowRight | Icon displayed in the right view switch button. |
SwitchViewButton | elementType | IconButton | Button displayed to switch between different calendar views. |
SwitchViewIcon | elementType | ArrowDropDown | Icon displayed in the SwitchViewButton. Rotated by 180° when the open view is 'year'. |
ref
is forwarded to the root element.CSS
Rule name | Global class | Description |
---|---|---|
root | .MuiCalendarPicker-root | Styles applied to the root element. |
viewTransitionContainer | .MuiCalendarPicker-viewTransitionContainer | Styles applied to the transition group element. |
You can override the style of the component using one of these customization options:
- With a global class name.
- With a rule name as part of the component's
styleOverrides
property in a custom theme.