Calendar

A single-month date calendar.

July 2026
Sun Mon Tue Wed Thu Fri Sat

Week starts Monday

July 2026
Mon Tue Wed Thu Fri Sat Sun

Min / max range

July 2026
Sun Mon Tue Wed Thu Fri Sat

Disabled dates

July 2026
Sun Mon Tue Wed Thu Fri Sat

Disabled weekends

July 2026
Sun Mon Tue Wed Thu Fri Sat

Week numbers

July 2026
# Sun Mon Tue Wed Thu Fri Sat
27
28
29
30
31
32

Outline days

July 2026
Sun Mon Tue Wed Thu Fri Sat

Dropdown caption

Sun Mon Tue Wed Thu Fri Sat

Hide outside days

July 2026
Sun Mon Tue Wed Thu Fri Sat

Range

July 2026
Sun Mon Tue Wed Thu Fri Sat

Multiple

July 2026
Sun Mon Tue Wed Thu Fri Sat

Multiple months

July 2026
Sun Mon Tue Wed Thu Fri Sat
August 2026
Sun Mon Tue Wed Thu Fri Sat

API reference

Inputs

PropTypeDefaultDescription
modeCalendarMode'single'Selection mode: `single` | `range` | `multiple`.
monthsnumber1Number of month grids to render side by side.
weekStartnumberFirst day of the week (0 = Sunday). Defaults to the locale's own convention — Sunday in `en-US`, Monday in `fr`, Saturday in `ar-EG`.
minDatestring''Earliest selectable date (`yyyy-mm-dd`).
maxDatestring''Latest selectable date (`yyyy-mm-dd`).
disabledDatesreadonly string[][]Specific ISO dates (yyyy-mm-dd) to disable.
disableWeekendsbooleanfalseDisable the locale's weekend days — Saturday/Sunday in `en-US`, Friday/Saturday in `ar-EG`.
showWeekNumbersbooleanfalseShow an ISO week-number column on the left.
captionLayout"dropdown" | "label"'label'`dropdown` swaps the month label for month + year selects (single month only).
hideOutsideDaysbooleanfalseHide days that fall outside the current month.
localestringBCP 47 locale used for the month captions. Defaults to the app's `LOCALE_ID`.
monthFormatIntl.DateTimeFormatOptionsDEFAULT_MONTH_FORMAT`Intl.DateTimeFormat` options for the month caption. Replaces the default wholesale, so `{ dateStyle: 'short' }` and `{ month: 'long' }` are both valid (they cannot be mixed).
weekdayFormatWeekdayFormat'short'How weekday column headers are abbreviated: each locale's own `short` form by default.
weekdayLabelsreadonly string[]Override the weekday column headers outright — 7 entries, **Sunday first**, regardless of `weekStart`. For when a locale's `Intl` abbreviation is not what your design wants.
previousMonthLabelstringAccessible label for the previous-month button.
monthSelectLabelstringAccessible label for the month dropdown.
yearLabelstringAccessible label for the year dropdown.
nextMonthLabelstringAccessible label for the next-month button.
weekLabelstringAccessible label for the week-number column.

Two-way models

Bind with [(name)], or one-way as an input.

PropTypeDefaultDescription
valuestring''Selected day (mode="single") as `yyyy-mm-dd`. Two-way bindable with `[(value)]`.
rangeCalendarRange{ start: '', end: '' }Selected range (mode="range").
valuesreadonly string[][]Selected days (mode="multiple").
disabledbooleanfalseWhether the whole calendar is disabled. Two-way bindable with `[(disabled)]`.

Types

CalendarMode — Selection behavior of the calendar.

"multiple" | "range" | "single"

CalendarRange

FieldTypeDescription
startstringStart date of the range, as `yyyy-mm-dd`.
endstringEnd date of the range, as `yyyy-mm-dd`.

WeekdayFormat — How weekday column headers are abbreviated. `short` is each locale's native abbreviation.

"long" | "narrow" | "short"

Every ng-blatui component also accepts a class input to merge extra Tailwind classes onto the host.