Range Calendar

Forms

A calendar component optimized for selecting date ranges. Displays two months side by side for easy range selection.

Import

import { RangeCalendar } from "@/components/ui/range-calendar";

Usage

Basic Range Calendar

Select a date range by clicking two dates

January 2026

Su
Mo
Tu
We
Th
Fr
Sa

February 2026

Su
Mo
Tu
We
Th
Fr
Sa

Single Month View

Compact version showing one month

January 2026

Su
Mo
Tu
We
Th
Fr
Sa

With Date Constraints

Limit selection to a specific range

January 2026

Su
Mo
Tu
We
Th
Fr
Sa

February 2026

Su
Mo
Tu
We
Th
Fr
Sa

Selection limited to the next 60 days

Disabled Weekends

Prevent weekend selection

January 2026

Su
Mo
Tu
We
Th
Fr
Sa

February 2026

Su
Mo
Tu
We
Th
Fr
Sa

Weekends cannot be selected

API Reference

valueundefined
{ start: Date; end: Date }

Controlled date range value

defaultValueundefined
{ start: Date; end: Date }

Default range for uncontrolled usage

onValueChangeundefined
(range: DateRange) => void

Callback when the date range changes

defaultMonthnew Date()
Date

The initial month to display

numberOfMonths2
number

Number of months to display

disabledundefined
(date: Date) => boolean

Function to determine if a date should be disabled

minDateundefined
Date

Minimum selectable date

maxDateundefined
Date

Maximum selectable date