Craft CMS calendar is a jquery ui calendar and it only translates calendar for different languages in:
https://github.com/craftcms/cms/blob/develop/src/web/assets/datepickeri18n/DatepickerI18nAsset.php
but translation is not always useful. some authors don't know Gregorian format well.
In other content management systems like Drupal or Wordpress, we can have different calendar systems by patching core or 3rd party modules.
I tried this steps only for demonstration and i was able to show user a Persian calendar.
if (isset($datepickerLanguage)=="fa") {
$this->css = [
'persianDatepicker-default.css'
];
$this->js = [
"persianDatepicker.js",
];
}
to DatepickerI18nAsset.php
$('#{{ id|namespaceInputId|e('js') }}').persianDatepicker({
showGregorianDate: true, //select from Persian calendar but convert it to Gregorian when user selected the desire date
formatDate: "YYYY/MM/DD",
});
and i have this calendar which author knows well (he sees year, month, day in Persian calendar system like 1398/07/04)

but there are some problems:
- i have changed the core!
- currently Craft CMS passes data in Gregorian format, so date has to be converted to Gregorian after the user picks a date - in my example, after user click on 1398//07/04, calendar returns 2019/09/26 and not every calendar library does that conversion.
so best solution is not only allow users to picks a date in other calendar systems, also showing that selected date in another calendar systems and pass Gregorian date in background-.
- finding a robust and well-maintained calendar library is difficult. i am not sure if the library i used, is going to work for next years or not.
at last i think that is not possible for Craft CMS team to find a robust calendar library for every calendar systems and hard code it in Craft CMS.
but maybe it is not a bad idea to:
- let users to find their favorite calendar library -and of course they have to accept the risk of custom calendar library- and define them via assets and add them to project by some settings.
- let users to change calendar date picker by create calendar type plugins -
Craft CMS calendar is a jquery ui calendar and it only translates calendar for different languages in:
https://github.com/craftcms/cms/blob/develop/src/web/assets/datepickeri18n/DatepickerI18nAsset.php
but translation is not always useful. some authors don't know Gregorian format well.
In other content management systems like Drupal or Wordpress, we can have different calendar systems by patching core or 3rd party modules.
I tried this steps only for demonstration and i was able to show user a Persian calendar.
i found a Persian calendar library and put js and css files in @lib/datepicker-i18n
added some lines like
to DatepickerI18nAsset.php
and i have this calendar which author knows well (he sees year, month, day in Persian calendar system like 1398/07/04)

but there are some problems:
so best solution is not only allow users to picks a date in other calendar systems, also showing that selected date in another calendar systems and pass Gregorian date in background-.
at last i think that is not possible for Craft CMS team to find a robust calendar library for every calendar systems and hard code it in Craft CMS.
but maybe it is not a bad idea to: