Dashral Pro is on the wayGet 30% off at launch

Dashral

Calendar

A date grid for picking a day or a range, built on DayPicker.

$ pnpm dlx shadcn@latest add https://dashral.com/r/calendar.json
October 2026

Installation

$ pnpm dlx shadcn@latest add https://dashral.com/r/calendar.json

Adds the component, the components it builds on, its npm packages and the theme tokens it uses. Using Dashral often? Add the registry to components.json once:

components.json
{
  "registries": {
    "@dashral": "https://dashral.com/r/{name}.json"
  }
}

Then add components by name:

$ pnpm dlx shadcn@latest add @dashral/calendar

Usage

example.tsx
import { useState } from "react"
import { Calendar } from "@/components/dashral/calendar"

const [date, setDate] = useState<Date | undefined>(new Date())

<Calendar mode="single" selected={date} onSelect={setDate} />

Examples

Range across two months

mode="range" with numberOfMonths={2}.

October 2026
November 2026

API reference

Calendar

Also takes every prop of DayPicker(opens in a new tab).

PropTypeDefault
mode"single" | "multiple" | "range"

What can be picked.

—
selected / onSelectDate | Date[] | DateRange

The picked day(s), and the change handler.

—
numberOfMonthsnumber

Months side by side.

1
disabledMatcher | Matcher[]

Days that can't be picked, e.g. { before: new Date() }.

—
showOutsideDaysboolean

Show the neighbouring months' days in the grid.

true

Keyboard

KeysAction
Arrow keysMove a day or a week
Page UporPage DownPrevious or next month
Shift+Page UporShift+Page DownPrevious or next year
HomeorEndStart or end of the week
EnterorSpacePick the focused day

Accessibility

  • A grid with labelled days (“Monday, October 13, 2026”), today and picked days announced.

Motion

  • A day presses in when tapped; colors change smoothly.