It powers hebrewcalendar.net
Every date, zman and reading on hebrewcalendar.net — its calendars, zmanim pages, printable schedules and shul displays — is computed by this library. The mobile app runs the same calendar as a companion C library, checked against this one day by day.
What it does
Dates
Jewish, Gregorian and Julian calendars, converted in any direction; leap years, month lengths, anniversaries and yahrzeits, including the dates that fall only in some years.
Festivals and fasts
Yom Tov, chol hamoed, rosh chodesh, fasts and their deferrals, the named Shabbatot, the omer, Chabad dates, and a separate set of US holidays. Israel and the diaspora each keep their own schedule.
Zmanim
Sunrise and sunset from the NOAA solar calculations, dawn and nightfall in several opinions, candle lighting, chametz deadlines, when a fast begins and ends, and sane answers where the sun does not rise or set.
Tekufot and the molad
The four solar seasons according to Shmuel or Rav Ada, the molad of any month, when Tal uMatar begins, and Birkat HaChama.
Torah readings
The weekly parsha with its aliyot, festival and special readings, and haftarot across twenty-six customs, resolved through their fallback tree.
Daily learning
Chumash, Daf Yomi, Rambam (one chapter and three), Sefer HaMitzvot, Tanya, Tehillim by day of the month and through Elul, Pirkei Avot, and the Sotah sefirah count.
Using it
It is on Maven Central. Calendar names and reading schedules are compiled in, from the shared
hebrewcalendar-data repository, so nothing
else is needed; building from source works too, with mvn package.
<dependency>
<groupId>net.hebrewcalendar</groupId>
<artifactId>hebrewcalendar</artifactId>
<version>2.1.0</version>
</dependency>
// A Gregorian date as a Jewish one
IDate<JewishCalendar> today =
ICalendar.JEWISH.convert(ICalendar.GREGORIAN.fromYMD(2026, 9, 18));
// Zmanim for a place and a day
Location montreal = new Location(45.5017, -73.5673, 0.0, "America/Montreal", false, false);
Zmanim zmanim = new Zmanim(LocalDate.now(), montreal);
ZonedDateTime sunset = zmanim.getSunset().getTime();
Zman candles = zmanim.getCandleLightingZman(); // null unless candles are lit tonight
The API documentation covers the rest.
See also
hebrewcalendar.net
The site this library computes: calendars, zmanim, readings and daily learning in English, Hebrew, Russian and French, and the displays that hang in shuls.
The C library
The same calendar in C, for the mobile app, checked against this one day by day.
opentorah.org
Where the Torah reading and haftarah data comes from, custom by custom, and the reference this library checks its readings and its dates against.
hebrewcalendar-data
Calendar names, reading schedules and learning cycles, shared by both libraries and generated into Java, C and Dart.