asmit / fila-calendar
A polished inline calendar form field for Filament.
Requires
- php: ^8.2
- filament/forms: ^4.0|^5.0
- filament/infolists: ^4.0|^5.0
- illuminate/support: ^11.0|^12.0
- nesbot/carbon: ^2.72|^3.0
- spatie/laravel-package-tools: ^1.16
README
A polished inline calendar field for Filament forms and infolists. Supports single, range, multiple, and multi-range selection with a self-contained Alpine.js UI — no external calendar library required.
Features
- Multiple selection modes — single, multiple, range, and multi-range
- Form + infolist —
CalendarInputfield and read-onlyCalendarEntry - Multi-month grid — responsive columns with configurable month count
- Date constraints — unavailable dates, weekend blocking, and min/max bounds
- Range hover preview — visual feedback while selecting a range
- Smart range editing — deselecting a middle day splits the range instead of clearing it
- Localization — calendar labels via
->locale('ja') - No extra dependencies — ships its own Alpine.js component and styles
Requirements
- PHP 8.2+
- Laravel 11 or 12
- Filament 4 or 5
Installation
composer require asmit/fila-calendar php artisan filament:assets
Import the package stylesheet into your Filament theme:
@import '../../vendor/asmit/fila-calendar/resources/css/fila-calendar.css';
Development
If you symlink the package locally with a Composer path repository, see the development guide for the path-repository setup and theme import path.
Usage
Add a calendar field to a Filament form:
use Asmit\FilaCalendar\Forms\Components\CalendarInput; use Asmit\FilaCalendar\Support\CalendarMode; CalendarInput::make('booking') ->mode(CalendarMode::MultiRange) ->months(12) ->calendarColumns(4) ->withToday() ->locale('ja');
Render saved dates as a read-only infolist entry:
use Asmit\FilaCalendar\Infolists\Components\CalendarEntry; use Asmit\FilaCalendar\Support\CalendarMode; CalendarEntry::make('booking') ->mode(CalendarMode::MultiRange) ->months(3) ->calendarColumns(3);
Contributing
Contributions are welcome. Please see CONTRIBUTING.md before opening an issue or pull request.
Security
If you discover a security issue, please review our Security Policy.
Changelog
Please see CHANGELOG.md for recent changes.
License
MIT License. See LICENSE.md for details.
