DateCalendar API
Demos
For examples and details on the usage of this React component, visit the component demo pages:
Import
import { DateCalendar } from '@mui/x-date-pickers-pro/DateCalendar';
// or
import { DateCalendar } from '@mui/x-date-pickers/DateCalendar';
// or
import { DateCalendar } from '@mui/x-date-pickers-pro';
// or
import { DateCalendar } from '@mui/x-date-pickers';Component name
The nameMuiDateCalendar can be used when providing default props or style overrides in the theme.Props
Props of the native component are also available.
| Name | Type | Default | Description | 
|---|---|---|---|
| autoFocus | bool | false | If  true, the main element is focused during the first mount. This main element is: - the element chosen by the visible view if any (i.e: the selected day on the day view). - the input element if there is a field rendered. | 
| components | object | {} | Overridable 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) => stringday: 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 and defaultValue are empty. | |
| defaultValue | any | The default selected value. Used when the component is not controlled.  | |
| disabled | bool | false | If  true, the picker and text field are disabled. | 
| disableFuture | bool | false | If  true, disable values after the current date for date components, time for time components and both for date time components. | 
| disableHighlightToday | bool | false | If  true, today's date is rendering without highlighting with circle. | 
| disablePast | bool | false | If  true, disable values before the current date for date components, time for time components and both for date time components. | 
| displayWeekNumber | bool | false | If  true, the week number will be display in the calendar. | 
| fixedWeekNumber | number | undefined | Calendar will show more weeks in order to match this value. Put it to 6 for having fix number of week in Gregorian calendars  | 
| focusedView | 'day' | 'month' | 'year'  | Controlled focused view.  | |
| loading | bool | false | If  true, calls renderLoading instead of rendering the day calendar. Can be used to preload information and show it in calendar. | 
| maxDate | any | Maximal selectable date.  | |
| minDate | any | Minimal selectable date.  | |
| monthsPerRow | 3 | 4  | 3 | Months rendered per row.  | 
| onChange | func | Callback fired when the value changes. Signature: function(value: TDate | null, selectionState: PickerSelectionState | undefined) => voidvalue: The new value. selectionState: Indicates if the date selection is complete.  | |
| onFocusedViewChange | func | Callback fired on focused view change. Signature: function(view: TView, hasFocus: boolean) => voidview: The new view to focus or not. hasFocus: true if the view should be focused. | |
| onMonthChange | func | Callback fired on month change. Signature: function(month: TDate) => voidmonth: The new month.  | |
| onViewChange | func | Callback fired on view change. Signature: function(view: TView) => voidview: The new view.  | |
| onYearChange | func | Callback fired on year change. Signature: function(year: TDate) => voidyear: The new year.  | |
| openTo | 'day' | 'month' | 'year'  | The default visible view. Used when the component view is not controlled. Must be a valid option from  views list. | |
| readOnly | bool | false | Make picker read only.  | 
| reduceAnimations | bool | typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent) | Disable heavy animations.  | 
| referenceDate | any | The closest valid date using the validation props, except callbacks such as `shouldDisableDate`. | The date used to generate the new value when both  value and defaultValue are empty. | 
| renderLoading | func | () => <span data-mui-test="loading-progress">...</span> | Component displaying when passed  loading true.Signature: function() => React.ReactNodereturns (React.ReactNode): The node to render when loading.  | 
| shouldDisableDate | func | Disable specific date. Signature: function(day: TDate) => booleanday: The date to test. returns (boolean): If true the date will be disabled. | |
| shouldDisableMonth | func | Disable specific month. Signature: function(month: TDate) => booleanmonth: The month to test. returns (boolean): If true, the month will be disabled. | |
| shouldDisableYear | func | Disable specific year. Signature: function(year: TDate) => booleanyear: The year to test. returns (boolean): If true, the year will be disabled. | |
| showDaysOutsideCurrentMonth | bool | false | If  true, days outside the current month are rendered:- if fixedWeekNumber is defined, renders days to have the weeks requested.- if fixedWeekNumber is not defined, renders day to fill the first and last week of the current month.- ignored if calendars equals more than 1 on range pickers. | 
| slotProps | object | {} | The props used for each component slot.  | 
| slots | object | {} | Overridable component slots.  | 
| sx | Array<func | object | bool> | func | object  | The system prop that allows defining system overrides as well as additional CSS styles. See the `sx` page for more details.  | |
| timezone | string | The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise. | Choose which timezone to use for the value. Example: "default", "system", "UTC", "America/New_York". If you pass values from other timezones to some props, they will be converted to this timezone before being used. See the timezones documention for more details.  | 
| value | any | The selected value. Used when the component is controlled.  | |
| view | 'day' | 'month' | 'year'  | The visible view. Used when the component view is controlled. Must be a valid option from  views list. | |
| views | Array<'day' | 'month' | 'year'>  | Available views.  | |
| yearsPerRow | 3 | 4  | 3 | Years rendered per row.  | 
Slots
| Name | Type | Default | Description | 
|---|---|---|---|
| day | elementType | PickersDay | Custom component for day.
Check the PickersDay component.  | 
| leftArrowIcon | elementType | ArrowLeft | Icon displayed in the left view switch button.  | 
| nextIconButton | elementType | IconButton | Button allowing to switch to the right view.  | 
| previousIconButton | elementType | IconButton | Button allowing to switch to the left 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 | .MuiDateCalendar-root | Styles applied to the root element. | 
| viewTransitionContainer | .MuiDateCalendar-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 
styleOverridesproperty in a custom theme.