Calendar
A keyboard- and screen-reader-accessible date picker for single-date and range selection.
Show codeHide code
Installation
import { Calendar } from "@makeplane/propel/components/calendar";Usage
import { Calendar } from "@makeplane/propel/components/calendar";
import * as React from "react";
export default function BasicDemo() {
const [selected, setSelected] = React.useState<Date | undefined>(new Date(2025, 0, 24));
return (
<Calendar
mode="single"
defaultMonth={new Date(2025, 0, 1)}
selected={selected}
onSelect={setSelected}
/>
);
}Calendar starts in the day view. Select its month or year heading to browse months and years, then choose one to return to the day grid. It draws no surface of its own — no border, shadow, fill, radius or padding — so the host owns the chrome. Put it in a PopoverContent for a date picker, or in a dialog or a card, and it takes that surface’s single border and gutters instead of adding its own.
Examples
Date picker
The grid inside a rich PopoverContent: the popover paints the border, shadow, radius and 16px gutters, and the trigger’s label follows the selection. Picking a day closes the panel.
Show codeHide code
Range
Show codeHide code
Disabled days
Show codeHide code
Today indicator
The current date is marked with an accent dot below the day number; the dot persists when today is selected. Pin it with the today prop — here it’s set to January 6 for a deterministic grid.
Show codeHide code
API Reference
Calendar forwards react-day-picker’s DayPickerProps — mode, selected, onSelect, month, defaultMonth, disabled, today, and the rest. Use defaultView="months" or defaultView="years" to start in a different view. className, style, classNames, numberOfMonths, captionLayout, navLayout, and showWeekNumber are omitted: styling is owned by propel’s tokens, and those DayPicker layout modes have no styled contract.
The labels prop also accepts labelPreviousYear, labelNextYear, labelPreviousYearPage, labelNextYearPage, labelMonthView, and labelYearView to name the month and year chooser controls for assistive technology.