Intl.Locale.prototype.calendar

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2020.

The calendar accessor property of Intl.Locale instances returns the calendar type for this locale.

Description

While most of the world uses the Gregorian calendar, there are several regional calendar eras used around the world. The calendar property's value is set at construction time, either through the ca key of the locale identifier or through the calendar option of the Intl.Locale() constructor. The latter takes priority if they are both present; and if neither is present, the property has value undefined.

For a list of supported calendar types, see Intl.supportedValuesOf().

The set accessor of calendar is undefined. You cannot change this property directly.

Examples

Like other locale subtags, the calendar type can be added to the Intl.Locale object via the locale string, or a configuration object argument to the constructor.

Adding a calendar type via the locale string

In the Unicode locale string spec, calendar era types are locale key "extension subtags". These subtags add additional data about the locale, and are added to locale identifiers by using the -u extension. Thus, the calendar era type can be added to the initial locale identifier string that is passed into the Intl.Locale() constructor. To add the calendar type, first add the -u extension to the string. Next, add the -ca extension to indicate that you are adding a calendar type. Finally, add the calendar era type to the string.

js
const locale = new Intl.Locale("fr-FR-u-ca-buddhist");
console.log(locale.calendar); // Prints "buddhist"

Adding a calendar type via the configuration object argument

The Intl.Locale() constructor has an optional configuration object argument, which can contain any of several extension types, including calendars. Set the calendar property of the configuration object to your desired calendar era, and then pass it into the constructor.

js
const locale = new Intl.Locale("fr-FR", { calendar: "buddhist" });
console.log(locale.calendar); // "buddhist"

Specifications

Specification
ECMAScript® 2025 Internationalization API Specification
# sec-Intl.Locale.prototype.calendar

Browser compatibility

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
calendar

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

See also