DocsGitHub
Getting Started
  • Overview
  • Design Tokens
Components
  • Accordion
  • Alert
  • Announcement
  • Avatar
  • Badge
  • BigCalendar
  • Breadcrumb
  • Button
  • ButtonGroup
  • Calendar
  • Card
  • Checkbox
  • Chip
  • CloseButton
  • Combobox
  • CommandPalette
  • ContextMenu
  • Currency
  • DatePicker
  • DescriptionList
  • Drawer
  • DropdownMenu
  • EmptyState
  • Field
  • FileUpload
  • FormGrid
  • Hotkey
  • Icon
  • Input
  • Metric
  • Modal
  • MultiSelect
  • NumberInput
  • Pagination
  • Popover
  • ProgressBar
  • Radio
  • Rating
  • SegmentedControl
  • Select
  • SelectionCard
  • Sidebar
  • Skeleton
  • Slider
  • Spinner
  • Stepper
  • Switch
  • Table
  • Tabs
  • Textarea
  • Timeline
  • TimePicker
  • Toast
  • Tooltip
  • TransferList
  • TreeView
  • Wizard
Charts
  • Overview
  • Area Chart
  • Bar Chart
  • Donut Chart
  • Line Chart
  • Pie Chart
  • Stacked Bar Chart

Calendar

A standalone monthly calendar view with single and range date selection, keyboard navigation, and full RTL support.

Installation

tsx
import { Calendar } from "madagent";

Default

August 2026
SuMoTuWeThFrSa

With Selected Date

February 2026
SuMoTuWeThFrSa

With Min/Max Constraints

August 2026
SuMoTuWeThFrSa

Range Selection

August 2026
SuMoTuWeThFrSa
PropTypeDefaultDescription
mode
"single""range"
"single"Selection mode — single date or date range
value
Date
-Selected date in single mode (controlled)
defaultValue
Date
-Default selected date in single mode (uncontrolled)
onChange
(date: Date) => void
-Called when a date is selected in single mode
rangeValue
{ start: Date; end: Date }null
-Selected range in range mode (controlled)
defaultRangeValue
{ start: Date; end: Date }
-Default range in range mode (uncontrolled)
onRangeChange
(range: { start: Date; end: Date } | null) => void
-Called when the range changes in range mode
minDate
Date
-Earliest selectable date
maxDate
Date
-Latest selectable date
className
string
-Additional CSS class on the root element

RTL Support

Components automatically adapt to right-to-left languages using CSS logical properties.

Preview

August 2026
SuMoTuWeThFrSa

Usage

tsx
<Calendar value={date} onChange={setDate} />