Props

PropTypeDefaultDescription
value{ start: Date | null; end: Date | null }—Selected date-time range value
onChange(value: { start: Date | null; end: Date | null }) => void—Callback when value changes
timeTimeConfig—Time panel configuration (applied to both start and end)
presetsDateRangePreset[]—Predefined date range presets
maxDaysnumber—Maximum days allowed in range (inclusive)
minDaysnumber—Minimum days required in range (inclusive)
allowSingleDateInRangebooleantrueAllow range where start equals end
minDateDate—Minimum selectable date
maxDateDate—Maximum selectable date
localePartial<Locale>—Custom locale configuration
initialMonthDate—Initial displayed month
todayDatenew Date()Override today’s date for isToday highlighting and disablePast/disableFuture calculations
onMonthChange(month: Date) => void—Callback fired when the displayed month changes
size"small" | "medium" | "large" | "x-large""medium"Component size
weekStartsOnWeekDay"sunday"First day of the week
isDateUnavailable(date: Date) => boolean—Mark dates as disabled
displayFormatstring—Custom display format
openboolean—Controlled open state
initialOpenboolean—Initial open state (uncontrolled)
onOpenChange(open: boolean) => void—Callback when open state changes
requiredbooleanfalseDisable clearing the value
showOutsideDaysbooleanfalseShow days from adjacent months
highlightDatesDate[]—Dates to highlight
shouldCloseOnSelectbooleanfalseAuto-confirm on preset click
numberOfMonthsnumber2Number of months to display
captionLayout"buttons" | "dropdown""buttons"Caption navigation style
fromYearnumber—Start year for dropdown
toYearnumber—End year for dropdown
disablePastbooleanfalseDisable dates before today
disableFuturebooleanfalseDisable dates after today
inlinebooleanfalseShow calendar inline (no popup)
namestring—Hidden input name for form submission (start date-time)
endNamestring—Hidden input name for end date-time (defaults to name-end)
placeholderstring—Trigger placeholder text
hideHeaderbooleanfalseHide the navigation header
hideFooterbooleanfalseHide the action footer

TimeConfig

interface TimeConfig {
/** Time display precision. Defaults to "minute". */
precision?: "hour" | "minute" | "second";
/** 12-hour or 24-hour format. Defaults to "24". */
hourFormat?: "12" | "24";
/** Minute increment step. Defaults to 5. */
minuteStep?: 1 | 2 | 3 | 5 | 10 | 15 | 20 | 30;
/** Second increment step. Defaults to 1. */
secondStep?: 1 | 2 | 3 | 5 | 10 | 15 | 20 | 30;
/** Height (in px) of each scroll wheel item. Defaults to 32. */
itemHeight?: number;
}

DateRangePreset

interface DateRangePreset {
label: string;
value: { start: Date; end: Date } | (() => { start: Date; end: Date });
}