The @timestamp-js/calendar-hebrew package exports hebrewCalendar, with jewishCalendar as a convenience alias. It models the deterministic arithmetic Hebrew calendar and uses civil/CLDR month numbering for model dates.
Package
import { gregorianCalendar } from '@timestamp-js/core'
import { hebrewCalendar } from '@timestamp-js/calendar-hebrew'
const roshHashanah = { year: 5785, month: 1, day: 1 }
const gregorian = gregorianCalendar.fromEpochDay(hebrewCalendar.toEpochDay(roshHashanah))
gregorian // { year: 2024, month: 10, day: 3 }Calendar Rules
Timestamp uses the month order that best matches end-user software expectations:
1is Tishrei, where the civil Hebrew year begins.5is Shevat.6is Adar in common years.- In leap years,
6is Adar I and7is Adar II. - Nisan follows Adar or Adar II.
Biblical and festival writing may call Nisan the first month. That is a naming/counting convention; the Timestamp model uses civil/CLDR numbering so adapter-native YYYY-MM-DD values line up with common localized calendar UI behavior.
The Hebrew adapter recommends he-IL, right-to-left presentation, and Sunday-through-Saturday visible weeks. Apps can still pass their own locale, direction, or weekday order.
Adapter-Aware Integration
When the adapter is used by calendar, picker, or scheduling UI, pass it through as the active calendar system for views that should behave as native Hebrew calendars. Date-bearing values should be Hebrew when the adapter is active, while Gregorian interop metadata can remain available for storage, export, and debugging boundaries.
QCalendar is one adapter-aware consumer. Its adapter guide explains the integration boundary, outside-day behavior, and native month navigation:
Using Timestamp adapters with QCalendar
Calendar Ranges
Use the adapter-aware helpers when you need native Hebrew weeks or months: