Pikaday
CommunityPikaday date picker field for FilamentPHP — lightweight, dependency-light date input with min/max dates, year range, first-day-of-week, and full i18n.
Author:
PtPlugins
Package health
BetaAutomated checks of this plugin's Composer package
15 checks
- Skipped: GitHub Actions pinned to SHA
- Skipped: GitLab CI includes pinned to SHA
- Passed: Open security advisories
- Passed: Dependabot PR responsiveness — No open Dependabot PRs.
- Skipped: Renovate MR responsiveness
- Failed: Dependabot or Renovate configured — No dependency updater configuration found. View details on Plumb
- Skipped: Dependency update cooldown configured
- Failed: Provides a security policy — View details on Plumb
- Passed: Abandoned or archived — No consulted source marks the package abandoned (packagist, github).
- Passed: Commit and release recency — Active: last commit 39 days ago; last release 50 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.1supports 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
- Why
- Installation
- Quick Start
- ISO storage, localized display
- Configuration API
- Internationalization
- Requirements
- License
A lightweight Pikaday date picker field for FilamentPHP v3, v4, and v5. No jQuery, no moment.js — just a clean, fast calendar input with full i18n.
Single codebase across all three Filament major versions — same field, same API.
🎯 Try it live · ptplugins.com/demo/pikaday — no signup, just open the calendar.
#Why
Filament's built-in date picker is great, but it pulls in a heavier JS footprint. When all you need is a fast, dependency-light calendar — no jQuery, no moment.js — PikadayDatePicker is a drop-in field that just works, with min/max dates, year bounds, first-day-of-week, and locale-aware month/weekday names out of the box.
The calendar ships with light and dark mode styling that follows Filament's theme automatically — no extra setup.
#Installation
composer require ptplugins/filament-pikaday
The package auto-discovers its service provider and registers its assets. No manual registration needed.
#Quick Start
Use the field anywhere you'd use a Filament form field:
use PtPlugins\FilamentPikaday\Fields\PikadayDatePicker;
PikadayDatePicker::make('published_at')
->label('Published at')
->minDate('2020-01-01')
->maxDate(now())
->firstDayOfWeek(1) // 1 = Monday (default), 0 = Sunday
->displayFormat('DD/MM/YYYY');
The stored value is normalized to Y-m-d; the visible input follows displayFormat().
#ISO storage, localized display
This is the key difference from most Filament date fields. The value bound to your model is always an ISO Y-m-d string (2026-06-15) — locale-independent, sortable, and safe to cast to date / compare in SQL. The display is localized purely on the front end via displayFormat() and the calendar i18n.
PikadayDatePicker::make('published_at')
->displayFormat('DD/MM/YYYY') // user sees 15/06/2026
->locale('hr'); // calendar in Croatian
// → model / database always stores "2026-06-15"
Why it matters: many date pickers persist whatever the display format is (15/06/2026 vs 06/15/2026), which then breaks parsing, sorting, and cross-locale data the moment two users have different formats. Here the storage format never changes — only what the user sees does. No ambiguity, no per-locale migration headaches, no d/m vs m/d bugs.
#Configuration API
| Method | Description |
|---|---|
minDate($date) |
Earliest selectable date. Accepts Carbon, a date string, or a closure. |
maxDate($date) |
Latest selectable date. Accepts Carbon, a date string, or a closure. |
minYear($year) |
Lower bound of the year dropdown (default 2024). |
maxYear($year) |
Upper bound of the year dropdown (default current year + 1). |
firstDayOfWeek($day) |
First day of the week — 0 (Sunday) … 6. Default 1 (Monday). |
displayFormat($format) |
Display pattern. Default DD/MM/YYYY (UK style). |
locale($locale) |
Calendar locale for month / weekday names. Defaults to the application locale. |
i18n($overrides) |
Override individual navigation strings or labels (merged over locale defaults). |
Prefix / suffix affixes (icons, labels, actions) and a clear button are supported out of the box, just like Filament's native fields.
#Internationalization
Month and weekday names are pulled from Carbon, so every locale Carbon ships works automatically — the picker follows your application locale with English as the default:
PikadayDatePicker::make('starts_on')
->locale('hr'); // Croatian month/weekday names
Navigation labels (Previous Month / Next Month) are translatable via the published translations (English + Croatian bundled; other locales fall back to English):
php artisan vendor:publish --tag=filament-pikaday-translations
Need a one-off tweak? Override individual strings without redefining the whole set:
PikadayDatePicker::make('starts_on')
->i18n([
'previousMonth' => 'Prethodni',
'nextMonth' => 'Sledeći',
]);
#Requirements
- PHP 8.1+
- FilamentPHP 3.x, 4.x, or 5.x (single codebase across all three)
#License
MIT
The author
From the same author
Number Input
A locale-aware numeric input field for FilamentPHP v3, v4, and v5. The user types and sees a localized number (European 12.345,67 or US 12,345.67); your model always stores a clean float (12345.67).
Author:
PtPlugins
Pivot Table Free
Free pivot table Blade component for FilamentPHP. Group Eloquent records into a 2-dimensional pivot with Sum aggregation. Works with Filament 3, 4, and 5.
Author:
PtPlugins
Auto Filters
Automatic table filters for FilamentPHP v3, v4, and v5 based on your column definitions. Stop writing repetitive filter code — just define your columns and get smart filters for free.
Author:
PtPlugins
Collapsible Column Group
Collapsible (expand/collapse) column groups for FilamentPHP tables — v3, v4, and v5. Click a group header and the columns it spans fold away into a thin placeholder; click again to bring them back.
Author:
PtPlugins
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
Data Lens
Advanced Data Visualization for Laravel Filament - a premium reporting solution enabling custom column creation, sophisticated filtering, and enterprise-grade data insights within admin panels.
Padmission
Advanced Tables (formerly Filter Sets)
Supercharge your tables with powerful features like user-customizable views, quick filters, multi-column sorting, advanced table searching, convenient view management, and more. Compatible with Resource Panel Tables, Relation Managers, Table Widgets, and Table Builder!
Kenneth Sese