PHPackages                             mammesat/filament-ethiopic-calendar - 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. mammesat/filament-ethiopic-calendar

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

mammesat/filament-ethiopic-calendar
===================================

Filament v5 Ethiopic Calendar Date Picker with Gregorian conversion support.

v1.0.0(3mo ago)14MITPHPPHP ^8.2CI failing

Since Apr 19Pushed 2mo agoCompare

[ Source](https://github.com/mammesat/filament-ethiopic-calendar)[ Packagist](https://packagist.org/packages/mammesat/filament-ethiopic-calendar)[ RSS](/packages/mammesat-filament-ethiopic-calendar/feed)WikiDiscussions main Synced 3w ago

READMEChangelogDependencies (2)Versions (3)Used By (0)

Ethiopian Calendar &amp; Time Engine for Filament
=================================================

[](#ethiopian-calendar--time-engine-for-filament)

**Finally, Ethiopian dates and time — done right in Filament.**

Production-ready Ethiopian calendar and Ethiopian time support for Laravel + Filament v5.

[![Latest Version on Packagist](https://camo.githubusercontent.com/9a12f6f74634894e5dae8b11ba745d4ec810b42b4ae45f3f911b24c8595b2867/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d616d6d657361742f66696c616d656e742d657468696f7069632d63616c656e6461722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/mammesat/filament-ethiopic-calendar)[![Total Downloads](https://camo.githubusercontent.com/281f73bfb1c48dd342f67043fd42a50c232c385d84373d972ea7ef93de2a14a4/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d616d6d657361742f66696c616d656e742d657468696f7069632d63616c656e6461722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/mammesat/filament-ethiopic-calendar)[![Tests](https://camo.githubusercontent.com/4a6d80e28d2f9dc4eed0af94c48b36eec4521524a347d33b558e06a6ff1370d0/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6d616d6d657361742f66696c616d656e742d657468696f7069632d63616c656e6461722f74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/mammesat/filament-ethiopic-calendar/actions?query=workflow%3ATests+branch%3Amain)[![License: MIT](https://camo.githubusercontent.com/a7e65aee57b11d28e4caff8b945729a66be0bb663f7f93bd24c5aa65699f148e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d626c75652e7376673f7374796c653d666c61742d737175617265)](LICENSE)

---

🚀 Quick Start (30 seconds)
--------------------------

[](#-quick-start-30-seconds)

### Install

[](#install)

```
composer require mammesat/filament-ethiopic-calendar
```

### Use

[](#use)

```
use Mammesat\FilamentEthiopicCalendar\Fields\EthiopicDateTimePicker;

EthiopicDateTimePicker::make('appointment_at')
    ->label('Appointment Date')
    ->ethiopic()
    ->withTime()
    ->required();
```

**That's it.** No configuration required. Works out of the box.

---

🧠 What `->ethiopic()` does
--------------------------

[](#-what--ethiopic-does)

Calling `->ethiopic()` automatically configures:

SettingValueEffect`displayMode``ethiopic_amharic`Ethiopian date labels in Amharic`timeMode``ethiopian`Ethiopian time system (6-hour shift)`calendarLocale``am`Amharic month/day names in the calendar popupYou do **not** need to set these manually. One method handles everything.

---

👀 Expected UI
-------------

[](#-expected-ui)

After adding `->ethiopic()->withTime()`, you should see:

- ✅ **Ethiopian calendar popup** with Amharic month and day names
- ✅ **Ethiopian time display** (e.g., `ጠዋት 4:00` instead of `10:00 AM`)
- ✅ **Helper preview** below the field showing the Ethiopian date/time
- ✅ **"Stored as: Gregorian"** note so developers know the DB format
- ✅ Standard Filament DateTimePicker UI (no custom dropdowns)

---

📦 All Three Component Types
---------------------------

[](#-all-three-component-types)

### Form Field

[](#form-field)

```
use Mammesat\FilamentEthiopicCalendar\Fields\EthiopicDateTimePicker;

EthiopicDateTimePicker::make('birth_date')
    ->label('Birth Date')
    ->ethiopic()
    ->withTime()
    ->required();
```

### Table Column

[](#table-column)

```
use Mammesat\FilamentEthiopicCalendar\Tables\Columns\EthiopicDateColumn;

EthiopicDateColumn::make('birth_date')
    ->label('Birth Date')
    ->ethiopic()
    ->withTime();
```

### Infolist Entry

[](#infolist-entry)

```
use Mammesat\FilamentEthiopicCalendar\Infolists\Components\EthiopicDateEntry;

EthiopicDateEntry::make('birth_date')
    ->label('Birth Date')
    ->ethiopic()
    ->withTime();
```

All three share the same API. Use `->ethiopic()`, `->dual()`, or `->gregorian()` on any of them.

---

✨ Interactive Tooltips
----------------------

[](#-interactive-tooltips)

Instantly provide context without cluttering your UI. Enable a hover tooltip that shows the "opposite" calendar system.

- **Displaying Gregorian?** Hover to see **Ethiopic date + Ethiopian time**.
- **Displaying Ethiopic?** Hover to see **Gregorian equivalent**.

Available on `EthiopicDateColumn` and `EthiopicDateEntry`.

```
use Mammesat\FilamentEthiopicCalendar\Tables\Columns\EthiopicDateColumn;

EthiopicDateColumn::make('created_at')
    ->ethiopic()
    ->tooltipAlternate(); // Hover shows Greg equivalent
```

```
use Mammesat\FilamentEthiopicCalendar\Infolists\Components\EthiopicDateEntry;

EthiopicDateEntry::make('birth_date')
    ->gregorian()
    ->tooltipAlternate(); // Hover shows Ethiopic equivalent
```

Note

Tooltips are automatically disabled in `dual()` mode since both calendar systems are already visible.

---

⚙️ Optional Customization
-------------------------

[](#️-optional-customization)

Most users only need `->ethiopic()`. But if you need more control:

### Dual mode (Ethiopian + Gregorian side by side)

[](#dual-mode-ethiopian--gregorian-side-by-side)

```
EthiopicDateTimePicker::make('date')
    ->dual()
    ->withTime();
```

Output: `Apr 21, 2026 (ሚያዝያ 13, 2018) 10:00 AM (ጠዋት 4:00)`

### Gregorian mode

[](#gregorian-mode)

```
EthiopicDateTimePicker::make('date')
    ->gregorian();
```

### English transliteration

[](#english-transliteration)

```
EthiopicDateTimePicker::make('date')
    ->ethiopic()
    ->calendarLocale('en');
```

### Custom helper text

[](#custom-helper-text)

```
EthiopicDateTimePicker::make('date')
    ->ethiopic()
    ->showEthiopicHelper(false)  // disable built-in helper
    ->helperText(fn ($state, $component) =>
        $state
            ? 'Displayed as: ' . $component->getFormattedPreview($state)
            : null
    );
```

### Date only (no time picker)

[](#date-only-no-time-picker)

```
EthiopicDateTimePicker::make('date')
    ->ethiopic();  // no ->withTime() = date only
```

---

🔧 Global Configuration (Optional)
---------------------------------

[](#-global-configuration-optional)

Most projects don't need this. But if you want to set defaults globally:

```
php artisan vendor:publish --tag="filament-ethiopic-calendar-config"
```

This publishes `config/ethiopic-calendar.php` where you can set:

- `display_mode` — default display mode (`ethiopic_amharic`, `gregorian`, `dual`)
- `time_mode` — default time system (`gregorian`, `ethiopian`, `dual`)
- `calendar_locale` — default popup language (`am`, `en`)
- `with_time` — enable time globally (`true` / `false`)
- `timezone` — defaults to `Africa/Addis_Ababa`

Per-field settings (e.g., `->ethiopic()`) always override global config.

---

❗ Common Mistakes
-----------------

[](#-common-mistakes)

### Using Filament's `DateTimePicker` instead of `EthiopicDateTimePicker`

[](#using-filaments-datetimepicker-instead-of-ethiopicdatetimepicker)

```
// ❌ Wrong — this is Filament's standard picker, no Ethiopian support
DateTimePicker::make('date');

// ✅ Correct
EthiopicDateTimePicker::make('date')->ethiopic();
```

### Assets not loading

[](#assets-not-loading)

If the calendar doesn't render properly after install:

```
php artisan filament:assets
php artisan optimize:clear
```

### Manually configuring what `->ethiopic()` already does

[](#manually-configuring-what--ethiopic-already-does)

```
// ❌ Unnecessary — don't do this
EthiopicDateTimePicker::make('date')
    ->displayMode('ethiopic_amharic')
    ->timeMode('ethiopian')
    ->calendarLocale('am');

// ✅ Just use the preset
EthiopicDateTimePicker::make('date')
    ->ethiopic();
```

---

📐 Formatter API
---------------

[](#-formatter-api)

For use outside Filament components (e.g., Blade views, exports, notifications):

```
use Mammesat\FilamentEthiopicCalendar\Services\EthiopicFormatter;

// Date only
EthiopicFormatter::formatDate('2026-04-21', 'ethiopic_amharic');
// → "ሚያዝያ 13, 2018"

// Date + time
EthiopicFormatter::formatDateTime('2026-04-21 10:00:00', 'dual', 'dual');
// → "Apr 21, 2026 (ሚያዝያ 13, 2018) 10:00 AM (ጠዋት 4:00)"

// Ethiopian time only
EthiopicFormatter::formatEthiopianTime('10:00');
// → "ጠዋት 4:00"
```

---

🔄 Backward Compatibility
------------------------

[](#-backward-compatibility)

> Legacy display mode values (e.g., `amharic_no_week`, `clean_gregorian`, `hybrid`) are still fully supported and automatically normalized at runtime. You do not need to migrate existing database records or settings.

---

📸 Screenshots
-------------

[](#-screenshots)

- Settings / Configuration Panel [![Settings Panel](art/settings-panel.png)](art/settings-panel.png)
- Form Picker + helper output [![Form Picker](art/form-picker.png)](art/form-picker.png)
- Table output with dual display [![Table Output](art/data-table.png)](art/data-table.png)
- Infolist scenarios [![Infolist](art/infolist-test-scenarios.png)](art/infolist-test-scenarios.png)

---

License
-------

[](#license)

MIT

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance83

Actively maintained with recent releases

Popularity6

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity47

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

Unknown

Total

1

Last Release

96d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/69604727?v=4)[mammesat](/maintainers/mammesat)[@mammesat](https://github.com/mammesat)

---

Top Contributors

[![mammesat](https://avatars.githubusercontent.com/u/69604727?v=4)](https://github.com/mammesat "mammesat (18 commits)")

---

Tags

laravellivewiredatepickerfilamentfilamentphpEthiopiaethiopic-calendar

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/mammesat-filament-ethiopic-calendar/health.svg)

```
[![Health](https://phpackages.com/badges/mammesat-filament-ethiopic-calendar/health.svg)](https://phpackages.com/packages/mammesat-filament-ethiopic-calendar)
```

###  Alternatives

[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)[jibaymcs/filament-tour

Bring the power of DriverJs to your Filament panels and start a tour !

12453.6k](/packages/jibaymcs-filament-tour)[asosick/filament-layout-manager

Allow users to create &amp; customize their own FilamentPHP pages composed of Livewire components

5822.2k3](/packages/asosick-filament-layout-manager)[guava/filament-modal-relation-managers

Allows you to embed relation managers inside filament modals.

7981.8k7](/packages/guava-filament-modal-relation-managers)

PHPackages © 2026

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