Getting Started

Introduction

A polished inline calendar field for Filament forms and infolists.

asmit/fila-calendar is a standalone Filament calendar field for forms and infolists. It supports multiple selection modes and ships its own Alpine.js UI and styles.

Features

  • Single, range, multiple, and multi-range selection
  • Form field (CalendarInput) and read-only infolist entry (CalendarEntry)
  • Multi-month grid with a column count per breakpoint
  • Unavailable dates, weekend blocking, and min/max bounds
  • Reserved dates for days already taken, marked with their own icon and enforced server-side
  • Range hover preview while selecting
  • Middle-day deselect splits a range instead of clearing it
  • Locale support via ->locale('ja')
  • No external UI library required

Requirements

  • PHP 8.2+
  • Laravel 11+ (whichever versions your Filament release supports)
  • Filament 4 or 5

Quick start

use Asmit\FilaCalendar\Forms\Components\CalendarInput;
use Asmit\FilaCalendar\Support\CalendarMode;

CalendarInput::make('available_dates')
    ->mode(CalendarMode::MultiRange)
    ->months(3)
    ->calendarColumns(['sm' => 2, 'lg' => 3])
    ->withToday()
    ->minDate(now()->toDateString());

Browse the sidebar for installation, development, usage, modes, configuration, and localization.