DateRangeCalendar API
Demos
For examples and details on the usage of this React component, visit the component demo pages:
Import
import { DateRangeCalendar } from '@mui/x-date-pickers-pro/DateRangeCalendar';
// or
import { DateRangeCalendar } from '@mui/x-date-pickers-pro';Component name
The nameMuiDateRangeCalendar 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. |
| calendars | 1 | 2 | 3 | 2 | The number of calendars to render. |
| 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={[null, null]}. | |
| defaultRangePosition | 'end' | 'start' | 'start' | The initial position in the edited date range. Used when the component is not controlled. |
| defaultValue | Array<any> | The default selected value. Used when the component is not controlled. | |
| disableAutoMonthSwitching | bool | false | If true, after selecting start date calendar will not automatically switch to the month of end date. |
| disabled | bool | false | If true, the picker and text field are disabled. |
| disableDragEditing | bool | false | If true, editing dates by dragging is 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 |
| 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. | |
| onChange | func | Callback fired when the value changes. Signature: function(value: DateRange<TDate>, selectionState: PickerSelectionState | undefined) => voidvalue: The new value. selectionState: Indicates if the date range selection is complete. | |
| onMonthChange | func | Callback fired on month change. Signature: function(month: TDate) => voidmonth: The new month. | |
| onRangePositionChange | func | Callback fired when the range position changes. Signature: function(rangePosition: RangePosition) => voidrangePosition: The new range position. | |
| rangePosition | 'end' | 'start' | The position in the currently edited date range. Used when the component position is controlled. | |
| readOnly | bool | false | Make picker read only. |
| reduceAnimations | bool | typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent) | Disable heavy animations. |
| renderLoading | func | () => "..." | 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, position: string) => booleanday: The date to test. position: The date to test, 'start' or 'end'. returns (boolean): Returns true if the date should 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. | |
| value | Array<any> | The selected value. Used when the component is controlled. |
Slots
| Name | Type | Default | Description |
|---|---|---|---|
| Day | elementType | DateRangePickersDay | Custom component for day in range pickers.
Check the DateRangePickersDay 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 | .MuiDateRangeCalendar-root | Styles applied to the root element. |
| monthContainer | .MuiDateRangeCalendar-monthContainer | Styles applied to the container of a month. |
| dayDragging | .MuiDateRangeCalendar-dayDragging | Styles applied to the day calendar container when dragging |
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.