PHPackages                             ptplugins/filament-pikaday - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. ptplugins/filament-pikaday

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

ptplugins/filament-pikaday
==========================

Pikaday date picker field for FilamentPHP — lightweight, dependency-light date input with min/max dates, year range, first-day-of-week, and full i18n.

1.1.3(1mo ago)1631MITHTMLPHP ^8.1

Since May 29Pushed 1mo agoCompare

[ Source](https://github.com/ptplugins/filament-pikaday)[ Packagist](https://packagist.org/packages/ptplugins/filament-pikaday)[ Docs](https://ptplugins.com/filament-pikaday)[ RSS](/packages/ptplugins-filament-pikaday/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (5)Dependencies (4)Versions (6)Used By (0)

Filament Pikaday
================

[](#filament-pikaday)

 [![Filament Pikaday — lightweight date picker field for a Filament form](./screenshot.png)](./screenshot.png)

> A lightweight [Pikaday](https://github.com/Pikaday/Pikaday) date picker field for [FilamentPHP](https://filamentphp.com/) **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.

 [![Buy us a beer](https://camo.githubusercontent.com/1bef23d3b523a63534746f730a172d71f7bc0f925da66b491b6997a778c7777c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2546302539462538442542412d427579253230757325323061253230626565722d79656c6c6f77)](https://ptplugins.com/buy-us-a-beer)

**🎯 [Try it live · ptplugins.com/demo/pikaday](https://ptplugins.com/demo/pikaday)** — no signup, just open the calendar.

Why
---

[](#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
------------

[](#installation)

```
composer require ptplugins/filament-pikaday
```

The package auto-discovers its service provider and registers its assets. No manual registration needed.

Quick Start
-----------

[](#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
------------------------------

[](#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
-----------------

[](#configuration-api)

MethodDescription`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
--------------------

[](#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
------------

[](#requirements)

- PHP 8.1+
- FilamentPHP **3.x, 4.x, or 5.x** (single codebase across all three)

License
-------

[](#license)

MIT

###  Health Score

42

—

FairBetter than 88% of packages

Maintenance91

Actively maintained with recent releases

Popularity15

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~2 days

Total

5

Last Release

48d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/58f7e578abcf85b80036e2d54969fe0926997218a40aff6b517dd26fa38fdba9?d=identicon)[Premke](/maintainers/Premke)

---

Top Contributors

[![Premke](https://avatars.githubusercontent.com/u/1667836?v=4)](https://github.com/Premke "Premke (6 commits)")

---

Tags

laraveldatepickerfilamentfilamentphpform-fieldpikaday

### Embed Badge

![Health badge](/badges/ptplugins-filament-pikaday/health.svg)

```
[![Health](https://phpackages.com/badges/ptplugins-filament-pikaday/health.svg)](https://phpackages.com/packages/ptplugins-filament-pikaday)
```

###  Alternatives

[ysfkaya/filament-phone-input

A phone input component for Laravel Filament

3161.3M26](/packages/ysfkaya-filament-phone-input)[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3914.8k](/packages/rawilk-profile-filament-plugin)[backstage/mails

View logged mails and events in a beautiful Filament UI.

16121.5k](/packages/backstage-mails)[dotswan/filament-map-picker

Easily pick and retrieve geo-coordinates using a map-based interface in your Filament applications.

128192.3k3](/packages/dotswan-filament-map-picker)[stephenjude/filament-feature-flags

Filament implementation of feature flags and segmentation with Laravel Pennant.

123177.8k1](/packages/stephenjude-filament-feature-flags)[marcelweidum/filament-passkeys

Use passkeys in your filamentphp app

6649.5k2](/packages/marcelweidum-filament-passkeys)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
