Skip to content
Asim Al-Twijry
Type to search
Active

Hijri (Umm al-Qura) Date Picker

A Hijri date & time picker for FilamentPHP that shows both calendars while picking and stores whichever one you choose. Free and open source.

Hijri (Umm al-Qura) Date Picker

Tech

  • Laravel
  • FilamentPHP
  • PHP
  • JavaScript

A Hijri date and time picker for FilamentPHP panels, built on the official Umm al-Qura calendar. The user sees both calendars while picking, so they always know exactly which day they are choosing.

Highlights

  • A real Hijri month grid: month lengths (29 or 30 days) come from the official tables, not an arithmetic approximation.
  • Two independent axes: the display calendar and the storage calendar are separate, in any combination — for example Hijri in the UI and Gregorian in the database, with no schema changes.
  • The equivalent date is always visible, and an in-panel button flips the grid between Hijri and Gregorian without changing the stored value.
  • Time support with hours, minutes, and seconds.
  • Server-side validation: dates that don't exist (such as 30 Safar) are rejected with a translatable message.
  • RTL, dark mode, Arabic and English month names, and optional Eastern Arabic numerals.

Matching national IDs

The picker follows the Umm al-Qura calendar as it was published at the time. That matters before 1420 AH: today's official service applies the current criterion retroactively and can land a day off from what the almanac printed — and the printed date is what Saudi national IDs and civil records hold. So a birth date round-trips against the ID.

Installation

composer config repositories.ummulqura-calendar vcs https://github.com/AsimNet/ummulqura-calendar
composer config repositories.filament-ummulqura-date-picker vcs https://github.com/AsimNet/filament-ummulqura-date-picker
composer require asimnet/filament-ummulqura-date-picker
php artisan filament:assets

Conversions run on ummulqura-calendar, a library I built for exactly this.

A date-of-birth field open on a Hijri month, with the Gregorian equivalent in the footer
A date-of-birth field open on a Hijri month, with the Gregorian equivalent in the footer
The same form in Arabic, right to left and in dark mode, with Eastern Arabic numerals
The same form in Arabic, right to left and in dark mode, with Eastern Arabic numerals
Projects