calendar_systems
Calendar Systems provides date localization and internationalization for Drupal using PHP's intl extension. It lets a site display and enter dates in non-Gregorian calendars such as Persian (Jalali), Hijri, Hebrew, and Buddhist/Thai, while storing everything as standard Drupal date values underneath.
Features
- Localized date API. A single
_calendar_systems_factory()entry point converts, formats and parses dates in the active language's calendar. - Core date fields, no patches. Works with Drupal's built-in date/datetime fields, widgets and form elements. Nothing in core needs to be patched.
- Pop-up date picker. Persian date picker bundled via PersianWebToolkit.
- Pluggable calendars. Because dates are formatted through PHP intl (ICU), any ICU-supported calendar can be used. Persian and Gregorian also have native fallbacks when the intl extension is unavailable.
Supported calendars
Persian / Jalali, Hijri, Hebrew, Thai / Buddhist, Gregorian, and other calendars supported by ICU.
Integrations
- Views. Argument and filter handlers for calendar-aware date fields.
- Better Exposed Filters, via the included Calendar Systems BEF submodule.
- FullCalendar, via the included Calendar Systems FullCalendar submodule.
Requirements
- Drupal 10 or 11.
- PHP with the intl extension enabled. This is recommended in all cases and required for calendars other than Persian and Gregorian.
Getting help and contributing
Please use the issue queue for bug reports, support requests and patches. Contributions of new calendar systems, tests and documentation are very welcome.
Related projects: Datex (merged into Calendar Systems from 8.x onward), Hijri, Taarikh, and persiantools.
Credits
Maintained by the Calendar Systems team on Drupal.org. Datex was merged in with the help of @hkoosha. Development of the 8.x/9.x line was sponsored by Milaniz and Koosha. Earlier work was sponsored by Practicalidea and Alawares.