Skip to content

hebcal/hebcal-go

Repository files navigation

hebcal-go

Build Status Go Report Card GoDoc

Hebcal is a perpetual Jewish Calendar. This library converts between Hebrew and Gregorian dates, and generates lists of Jewish holidays for any year (past, present or future). Shabbat and holiday candle lighting and havdalah times are approximated based on location. Torah readings (Parashat HaShavua), Daf Yomi, and counting of the Omer can also be specified. Hebcal also includes algorithms to calculate yahrzeits, birthdays and anniversaries.

Hebcal was created in 1992 by Danny Sadinoff as a Unix/Linux program written in C, inspired by similar functionality written in Emacs Lisp. This Golang implementation was released in 2022 by Michael J. Radwin.

Many users of this library will utilize the HebrewCalendar and HDate interfaces.

Hebcal incorporates and uses several related packages:

  • dafyomi: Daf Yomi, a daily regimen of learning the Babylonian Talmud (Bavli).
  • event: an interface for calendar events.
  • greg: converts between Gregorian dates and R.D. (Rata Die) day numbers.
  • hdate: converts between Hebrew and Gregorian dates. Also includes functions for calculating personal anniversaries (Yahrzeit, Birthday) according to the Hebrew calendar.
  • hebcal: provides functionality for calculating Jewish holidays, candle-lighting and havdalah times, and fast start/end times.
  • locales: translations and transliterations of Jewish holiday names into several languages.
  • mishnayomi: calculates the Mishna Yomi, a program of daily learning in which participants study two Mishnayot each day.
  • molad: calculates the time at which the New Moon is born.
  • nachyomi: calculates Nach Yomi, a daily regimen of learning the books of Nevi'im (Prophets) and Ketuvim (Writings).
  • omer: calculates the Sefirat HaOmer.
  • sedra: weekly Torah reading (Parashat HaShavua).
  • yerushalmi: Yerushalmi Yomi, a daily regimen of learning the Jerusalem Talmud.
  • zmanim: calculates halachic times.