Pikaday by PtPlugins
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
Automated 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 91 days ago; last release 102 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
Compact Theme
A theme that makes data-heavy panels easier to scan by fitting more useful information on each screen.
Filament
Custom Dashboards
Let your users build and share their own dashboards with a drag-and-drop interface. Define your data sources in PHP and let them do the rest.
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