Constraints
Required
When required is set, the clear button is disabled and the value cannot be emptied.
import { useState } from "react";import { DatePicker } from "react-date-range-picker-styled";import "react-date-range-picker-styled/rdrp-styles.css";
function Required() { const [value, setValue] = useState<Date | null>(new Date());
return <DatePicker value={value} onChange={setValue} required />;}Min & Max Dates
Restrict selectable dates to a specific range using minDate and maxDate.
import { useState } from "react";import { DatePicker } from "react-date-range-picker-styled";import "react-date-range-picker-styled/rdrp-styles.css";
function MinMaxDate() { const [value, setValue] = useState<Date | null>(null);
const today = new Date(); const minDate = new Date(today.getFullYear(), today.getMonth(), 1); const maxDate = new Date(today.getFullYear(), today.getMonth() + 1, 0);
return <DatePicker value={value} onChange={setValue} minDate={minDate} maxDate={maxDate} />;}Disabled Dates
Use isDateUnavailable to dynamically disable specific dates.
import { useState } from "react";import { DatePicker } from "react-date-range-picker-styled";import "react-date-range-picker-styled/rdrp-styles.css";
function DisabledDates() { const [value, setValue] = useState<Date | null>(null);
const isDateUnavailable = (date: Date) => { const day = date.getDay(); return day === 0 || day === 6; // Disable weekends };
return <DatePicker value={value} onChange={setValue} isDateUnavailable={isDateUnavailable} />;}Disable Past / Future
Use disablePast or disableFuture to quickly disable dates before/after today.
import { useState } from "react";import { DatePicker } from "react-date-range-picker-styled";import "react-date-range-picker-styled/rdrp-styles.css";
function DisablePastFuture() { const [pastValue, setPastValue] = useState<Date | null>(null); const [futureValue, setFutureValue] = useState<Date | null>(null);
return ( <div style={{ display: "flex", flexDirection: "column", gap: 16 }}> <div> <div style={{ fontSize: 13, fontWeight: 600, opacity: 0.7, marginBottom: 8 }}> Past dates disabled </div> <DatePicker value={pastValue} onChange={setPastValue} disablePast /> </div> <div> <div style={{ fontSize: 13, fontWeight: 600, opacity: 0.7, marginBottom: 8 }}> Future dates disabled </div> <DatePicker value={futureValue} onChange={setFutureValue} disableFuture /> </div> </div> );}Past dates disabled
Future dates disabled
Highlight Dates
Visually highlight specific dates (e.g. holidays, events) using the highlightDates prop.
import { useState } from "react";import { DatePicker } from "react-date-range-picker-styled";import "react-date-range-picker-styled/rdrp-styles.css";
function HighlightDates() { const [value, setValue] = useState<Date | null>(null);
const today = new Date(); const highlightDates = [ new Date(today.getFullYear(), today.getMonth(), 5), new Date(today.getFullYear(), today.getMonth(), 15), new Date(today.getFullYear(), today.getMonth(), 25), ];
return <DatePicker value={value} onChange={setValue} highlightDates={highlightDates} />;}Initial Month
Set the initial displayed month when the picker opens for the first time.
import { useState } from "react";import { DatePicker } from "react-date-range-picker-styled";import "react-date-range-picker-styled/rdrp-styles.css";
function InitialMonth() { const [value, setValue] = useState<Date | null>(null);
return <DatePicker value={value} onChange={setValue} initialMonth={new Date(2026, 5, 1)} />;}