Calendar
A date picker for selecting single dates, ranges, or multiple dates.
November 2026
| Su | Mo | Tu | We | Th | Fr | Sa |
|---|---|---|---|---|---|---|
Installation
pnpm dlx shadcn@latest add @columbus/calendarUsage
import { Calendar } from "@/components/ui/calendar";
const [date, setDate] = useState<Date | undefined>();
<Calendar mode="single" selected={date} onSelect={setDate} />;To pick a date from a button or input, put the calendar in a popover. See Date Picker.
Range
Set mode="range" to select a start and end date. numberOfMonths shows
several months side by side.
November 2026
| Su | Mo | Tu | We | Th | Fr | Sa |
|---|---|---|---|---|---|---|
December 2026
| Su | Mo | Tu | We | Th | Fr | Sa |
|---|---|---|---|---|---|---|
Month and year dropdowns
Set captionLayout="dropdown" with startMonth and endMonth to jump to a
month or year quickly, for example for a date of birth.
| Su | Mo | Tu | We | Th | Fr | Sa |
|---|---|---|---|---|---|---|
Disabled days
disabled takes a date, a list of dates, or a matcher such as
{ before: new Date() } or { dayOfWeek: [0, 6] }.
November 2026
| Su | Mo | Tu | We | Th | Fr | Sa |
|---|---|---|---|---|---|---|
Cell size
The --cell-size CSS variable sets the size of each day. Override it with a
class:
<Calendar className="[--cell-size:--spacing(11)]" />API reference
Calendar is built on DayPicker and accepts all of its
props, like selected, onSelect, month, disabled, locale, and
numberOfMonths. Columbus changes these defaults:
Prop
Type