Modes
Use Asmit\FilaCalendar\Support\CalendarMode for type-safe mode selection.
Single
use Asmit\FilaCalendar\Support\CalendarMode;
CalendarInput::make('date')
->mode(CalendarMode::Single);
State: "2026-07-10"
Multiple
CalendarInput::make('dates')
->mode(CalendarMode::Multiple);
State: ["2026-07-02", "2026-07-10", "2026-07-15"]
Range
CalendarInput::make('range')
->mode(CalendarMode::Range);
Click a start date, then an end date. A blocked date cannot start or end a range, but a range spans blocked dates in between and keeps them highlighted.
State: { "start": "2026-07-02", "end": "2026-07-10" }
Multi-range
CalendarInput::make('ranges')
->mode(CalendarMode::MultiRange);
Click start, then end to add a range. Repeat to add more ranges. Ranges that overlap are merged into one.
Clicking a day inside a range removes that single day: a middle day splits the range in two, and a start or end day shrinks the range by one. Shift-click any day of a range to clear it. Blocked days inside the range stay selected, because they cannot be unselected on their own.
State:
[
['start' => '2026-07-02', 'end' => '2026-07-04'],
['start' => '2026-07-10', 'end' => '2026-07-12'],
]
Hover preview
In range and multi-range modes, after choosing a start date, hovering toward the end date previews the in-between days with a soft highlight before the second click.
