Calendar
A calendar component for selecting dates and date ranges.1<Calendar />
Anatomy
Import and assemble the component:
1import { Calendar, RangePicker, DatePicker } from '@raystack/apsara'23<Calendar />45<RangePicker />67<DatePicker />
API Reference
Calendar
Renders a standalone calendar for date selection.
Prop
Type
RangePicker
The RangePicker supports customizing the popover behavior using the popoverProps prop.
Prop
Type
DatePicker
The DatePicker supports customizing the popover behavior using the popoverProps prop.
Prop
Type
Examples
Calendar
Choose between different variants to convey different meanings or importance levels. Default variant is accent.
1<Calendar numberOfMonths={2} />
Custom Date Information
You can display custom components above each date using the dateInfo prop. The keys should be date strings in "dd-MM-yyyy" format, and the values are React components that will be rendered above the date number.
1<Calendar2 numberOfMonths={2}3 dateInfo={{4 [dayjs().format("DD-MM-YYYY")]: (5 <Flex6 align="center"7 gap={2}8 style={{9 fontSize: "8px",10 color: "var(--rs-color-foreground-base-secondary)",11 }}12 >13 <Info style={{ width: "8px", height: "8px" }} />14 <Text style={{ fontSize: "8px" }} color="secondary">15 25%
Range Picker
The Range Picker component allows selecting a date range with the following behaviors:
-
When selecting two different dates:
- The UI will show the exact selected dates
- The callback will return the start and end date as selected
1// Example: If user selects April 1st and April 10th, 20252// UI will show: April 1st, 2025 - April 10th, 20253// Callback will return:4{5 "from": "2025-03-31T18:30:00.000Z",6 "to": "2025-04-09T18:30:00.000Z"7} -
When clicking the same date twice:
- The UI will show the same date for both start and end
- The callback will return the start and end date as selected
1// Example: If user clicks April 1st, 2025 twice2// UI will show: April 1st, 2025 - April 1st, 20253// Callback will return:4{5 "from": "2025-03-31T18:30:00.000Z",6 "to": "2025-03-31T18:30:00.000Z"7}
1<RangePicker />
Date Picker
Badges can include an icon to provide additional visual context. By default there is no icon.
1<DatePicker textFieldProps={{ size: "medium" }} />
Accessibility
- Supports keyboard navigation between dates with arrow keys
- Uses
aria-labelattributes for date cells - Selected and disabled dates are announced to screen readers