Fila Calendar
CommunityA polished inline calendar field for Filament forms and infolists with single, range, and multi-range selection.
Author:
Asmit Nepali
Package health
BetaAutomated checks of this plugin's Composer package
15 checks
- Passed: GitHub Actions pinned to SHA
- Skipped: GitLab CI includes pinned to SHA
- Passed: Open security advisories
- Passed: Dependabot PR responsiveness — No stale Dependabot PRs.
- Skipped: Renovate MR responsiveness
- Passed: Dependabot or Renovate configured
- Passed: Dependency update cooldown configured
- Passed: Provides a security policy
- Passed: Abandoned or archived — No consulted source marks the package abandoned (packagist, github).
- Passed: Commit and release recency — Active: last commit 0 days ago; last release 25 days ago.
-
Passed:
composer.lock not committed by library
—
composer.lockis absent from the released dist archive. - Passed: Dist archive is lean
-
Passed:
Current Laravel version supported
—
Package dependencies resolve together with current Laravel
13.0. -
Passed:
Current PHP version supported
—
Constraint
^8.2supports current PHP8.5. - Skipped: Current Symfony version supported
filament/
namespace. Review the source and install at your own risk. Found
malware or an unresolved security issue the author won't
address?
Report it
.
Documentation
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 — column count per breakpoint with configurable month count
- Date constraints — unavailable dates, weekend blocking, and min/max bounds
- Reserved dates — mark days that are already booked with their own icon and tooltip, enforced server-side
- 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+ (whichever versions your Filament release supports)
- 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(['sm' => 2, 'lg' => 3, 'xl' => 4])
->reservedDates(fn (): array => Booking::query()->pluck('date')->all())
->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.
The author
I’m a senior full-stack engineer with 5+ years of experience building production-grade applications with Laravel. I’m passionate about the Laravel and Filament ecosystem, creating developer tools and packages, and pushing Filament beyond its usual boundaries. I’m also the creator of several Filament plugins and SaaS products, focused on building practical tools that make developers’ lives easier.
From the same author
Resized, Reorder and Sticky Column
This plugin allows you to resize columns in Filament tables, enhancing the user experience by providing a more flexible and customizable interface.
Author:
Asmit Nepali
Upload
The Advanced PDF Upload plugin allows you to upload PDF files with preview functionality along with Filament's default file upload features. This package provides a seamless way to handle PDF uploads with customizable preview options.
Author:
Asmit Nepali
Mention
The Mention plugin lets you mention users inside RichText editor, supporting both static and dynamic searches. It can extract user details like username and ID for a seamless mention experience.
Author:
Asmit Nepali
Advanced Kanban
A premium Filament plugin providing production-ready, highly customizable Kanban boards with drag & drop functionality, workflow transitions, advanced filtering, and real-time search capabilities.
Author:
Asmit Nepali
Featured Plugins
A selection of plugins curated by the Filament team
Blueprint
Filament Blueprint is a premium Laravel Boost extension that helps AI agents produce accurate, detailed implementation plans and security reports for Filament apps.
Filament
Custom Fields
Eliminate custom field migrations forever. Let your users create and manage form fields directly in Filament admin panels with 20+ built-in field types, validation, and zero database changes.
Relaticle
Spotlight Pro
Browse your Filament Panel with ease. Filament Spotlight Pro adds a Spotlight like Command Palette to your Filament Panel.
Dennis Koch