The Base UI (Angular) calendar is a signal-driven month grid for a single date or a range. Copy it in with the CLI; keyboard arrows move between days. Pair it with the Pro datepicker overlay when you need an input that opens a popover instead of an inline grid.
Install with npx base-ui-cli add calendar.
Unlock it plus 89 pro blocks, widgets & layouts — $99 one-time. Lifetime updates, 14-day money-back guarantee.
Default mode allowing selection of a single date.
Set mode="range" to enable selecting a start and end date.
An input-based date picker that uses an overlay to display the calendar.
Set showTime on the Pro datepicker for a two-step flow: pick a date, choose a time, then apply — binding a full Date with hours and minutes.
Playground
<base-datepicker showTime hourCycle="24" [(ngModel)]="when"> </base-datepicker>
An input-based range picker for selecting start and end dates.
Site-wide VPAT-style notes live on the accessibility report.
Run the following command to add this component to your project:
npx base-ui-cli add calendar
For AI agents
Copy a prompt with the registry name, CLI install, and import — or add the Base UI MCP server.
npx -y base-ui-mcp
Base UI provides standalone components. Import the exact elements you want to use into your component.
// Install: npx base-ui-cli add calendar
// Paths are relative to aliases.components (default: src/app/components)
import { CalendarComponent, CalendarDate } from './calendar/calendar.component';
@Component({
selector: 'app-your-component',
imports: [
CalendarComponent
],
template: `...`
})
export class YourComponent {} API for calendar — generated from JSDoc in the library source.
| API | Member | Type | Default | Description |
|---|---|---|---|---|
CalendarDate | date | Date | — | — |
CalendarDate | isToday | boolean | — | — |
CalendarDate | isCurrentMonth | boolean | — | — |
CalendarDate | isSelected | boolean | — | — |
CalendarDate | isInRange | boolean | — | — |
CalendarDate | isRangeStart | boolean | — | — |
CalendarDate | isRangeEnd | boolean | — | — |
base-calendar | class | string | '' | Additional CSS classes to merge into the host element. |
base-calendar | panelId | unknown | `base-calendar-grid-${++calendarIdCounter}` | ID for the calendar grid, used by combobox aria-controls on date pickers. |
base-calendar | mode | 'single' | 'range' | 'single' | The selection mode. 'single' allows picking one day, 'range' allows picking start and end dates. |
base-calendar | selectedDate | Date | null | null | The currently selected date (only used in 'single' mode). |
base-calendar | rangeStart | Date | null | null | The start date of the selected range (only used in 'range' mode). |
base-calendar | rangeEnd | Date | null | null | The end date of the selected range (only used in 'range' mode). |
base-calendar | (dateSelected) | Date | — | Emits the selected Date when mode is 'single' and a day is clicked. |
base-calendar | (rangeSelected) | { start: Date | null; end: Date | null; } | — | Emits an object containing start and end Dates when mode is 'range' and a day is clicked. |
Content