Skip to Content
Columbus

Calendar

A date picker for selecting single dates, ranges, or multiple dates.

November 2026

Installation

pnpm dlx shadcn@latest add @columbus/calendar

Usage

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
December 2026

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.

November 2026

Disabled days

disabled takes a date, a list of dates, or a matcher such as { before: new Date() } or { dayOfWeek: [0, 6] }.

November 2026

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

On this page