Modern Multi-Calendar Library for Hijri, Gregorian & Javanese Calendars
Fast, accurate calendar calculations with Umm Al-Qura & MABIMS Hijri calendars, Islamic events detection, and Javanese calendar support.
- ๐ Hijri Calendar - Umm Al-Qura (Saudi) & MABIMS (Southeast Asia) calendars
- ๐ Gregorian โ Hijri - Bidirectional date conversion
- ๐ Javanese Calendar - Traditional Javanese calendar system
- ๐ Islamic Events - Auto-detection of Ramadan, Eid, and major dates
- ๐ Multi-language - Arabic, Indonesian, Javanese, English
- ๐ Zero dependencies - Lightweight and fast
- ๐ฆ TypeScript support - Full type definitions
npm install islamic-dateimport {
getCurrentHijriDate,
getAllCalendars,
CalendarType,
} from "islamic-date";
// Get current Hijri date
const hijri = getCurrentHijriDate({ language: "en" });
console.log(`${hijri.day} ${hijri.monthName} ${hijri.year} H`);
// MABIMS calendar (2010-2030)
const mabims = gregorianToHijri(2024, 3, 11, "id", CalendarType.MABIMS);
if (mabims.success) {
console.log(`${mabims.day} ${mabims.monthName} ${mabims.year} H`);
}
// All calendars at once
const all = getAllCalendars({
language: "id",
includeEvents: true,
includeJawa: true,
});
console.log(all.hijriFormatted); // 15 Rajab 1446 H
console.log(all.jawaFormatted); // Pahing, 15 Sura 1958 JConvert Gregorian to Hijri date.
import { gregorianToHijri, CalendarType } from "islamic-date";
// Umm Al-Qura (default)
const hijri = gregorianToHijri(2024, 3, 11, "ar");
// MABIMS (2010-2030 only) - experimental
const result = gregorianToHijri(2024, 3, 11, "id", CalendarType.MABIMS);
if (result.success) {
console.log(`${result.day} ${result.monthName} ${result.year} H`);
} else {
console.log(`Error: ${result.error}`);
}Calendar Types:
CalendarType.UMMALQURA- Saudi Arabia's official calendar (default)CalendarType.MABIMS- MABIMS unified calendar (2010-2030)โ ๏ธ Experimental
Returns: { success, day, month, year, monthName, weekIndex } or { success: false, error }
Get current Hijri date with localization.
const today = getCurrentHijriDate({
language: "ar", // 'ar' | 'id' | 'en' | 'jv'
dayChangeAtMidnight: true, // true = midnight, false = sunset
});Get Islamic events for a Hijri date.
const events = getIslamicEvents(9, 1, 1, "ar"); // ['ุจุฏุงูุฉ ุฑู
ุถุงู']
const eid = getIslamicEvents(10, 1, 1, "en"); // ['Eid al-Fitr']Detected Events: Ramadan, Eid al-Fitr, Eid al-Adha, Day of Arafah, Islamic New Year, Mawlid, Lailatul Qadr, Ashura
Get Javanese calendar date.
const jawa = getJawaDate(new Date(), "jv");
console.log(`${jawa.dayName}, ${jawa.day} ${jawa.monthName} ${jawa.year} J`);
// Pahing, 15 Sura 1958 JGet all calendars in one call.
const all = getAllCalendars({
language: "id",
includeEvents: true,
includeJawa: true,
});
// Returns: { gregorian, hijri, hijriFormatted, jawa, jawaFormatted, events }MABIMS (Brunei-Indonesia-Malaysia-Singapore) unified Islamic calendar for Southeast Asia.
Limitations:
- Date range: 2010-2030 only
- Experimental - always check
successproperty - Some dates may be missing
Usage:
const result = gregorianToHijri(2025, 1, 1, "id", CalendarType.MABIMS);
if (!result.success) {
// Fallback to Umm Al-Qura
const fallback = gregorianToHijri(2025, 1, 1, "id");
}| Language | Code | Hijri Example | Jawa Example |
|---|---|---|---|
| Arabic | ar |
ูกูฅ ุฑุฌุจ ูกูคูคูฆ ูู | - |
| English | en |
15 Rajab 1446 H | Pahing, 15 Sura 1958 J |
| Indonesian | id |
15 Rajab 1446 H | Pahing, 15 Sura 1958 J |
| Javanese | jv |
15 Rejeb 1446 H | Pahing, 15 Sura 1958 J |
import { getIslamicEvents } from "islamic-date";
const importantDates = [
{ month: 1, day: 1 }, // Islamic New Year
{ month: 3, day: 12 }, // Mawlid
{ month: 9, day: 1 }, // Ramadan
{ month: 10, day: 1 }, // Eid al-Fitr
{ month: 12, day: 10 }, // Eid al-Adha
];
importantDates.forEach(({ month, day }) => {
const events = getIslamicEvents(month, day, 1, "en");
console.log(events);
});const { gregorianToHijri, CalendarType } = require("islamic-date");
for (let year = 2010; year <= 2030; year++) {
const result = gregorianToHijri(year, 1, 1, "id", CalendarType.MABIMS);
console.log(
result.success
? `โ
${year}: ${result.day} ${result.monthName} ${result.year}`
: `โ ${year}: ${result.error}`
);
}MIT License - see LICENSE file
Umm Al-Qura calendar algorithm โข MABIMS authorities โข Javanese calendar traditions
๐ GitHub Issues
Made with โค๏ธ for the global Muslim and Indonesian communities