hebcal - a Jewish calendar generator
hebcal [ -8acdDEeFgHhiMoOrSstTWwXxyZ ]
[ -b minutes ]
[ --chag-only ]
[ -C city ]
[ --geo latitude,longitude ]
[ -G degrees ]
[ --help ]
[ -I input_file ]
[ --lang language ]
[ -l latitude -L longitude ]
[ -m minutes ]
[ --mevarchim ]
[ --mishna-yomi ]
[ --nach-yomi ]
[ --no-mf ]
[ --no-modern ]
[ --no-special ]
[ --schottenstein ]
[ --verbose ]
[ --version ]
[ -Y yahrtzeit_file ]
[ --years N ]
[ --yerushalmi ]
[ --ykk ]
[ -z timezone ]
[[ month [ day ] year | YYYY-MM-DD ]
hebcal help
hebcal info
hebcal cities
hebcal copying
hebcal warranty
With no arguments, hebcal will print to stdout the dates of
the Jewish holidays in the current secular year. Each line is prefixed with
a Gregorian date of the form mm/dd/yyyy.
By specifying month, day, or year, output can
be limited to a particular month or date in a particular year. Note that
year is usually a four-digit integer, so 92 is during the Roman
period, not the late twentieth century. If the Hebrew dates option
(-H) is turned on, this number represents the Jewish calendar year.
month is a number from 1..12, or the name of a Jewish calendar month.
day is a number from 1..31.
A single day may also be specified as YYYY-MM-DD (ISO 8601 date
format).
For example, the command
hebcal 10 1992
will print out the holidays occurring in October of 1992 C.E., while the command
hebcal Tish 5752
will print dates of interest in the month of Tishrei in Jewish calendar year
5752.
Note: hebcal 92 is not the same as hebcal 1992. The year is
assumed to be complete, so the former calendar precedes the latter by
nineteen centuries.
A few other bells and whistles include the weekly sedra as
well as the day of the week, the count of the omer, and the Hebrew
date.
Output from hebcal can be used to drive calendar(1). Day-to-day
use for hebcal is provided for in the -T and -t switches,
which print out Jewish calendar entries for the current date.
To get a quick-reference online help, run
hebcal help
at the command prompt.
- -8
- Use UTF-8 Hebrew (alias for --lang=he).
- -a
- Use Ashkenazi Hebrew transliterations.
- -b mins
- Set candle-lighting to occur mins minutes before sundown. Default
18 if unspecified (default 40 for Jerusalem, 30 for Haifa, 30 for Zichron
Ya'akov).
- -c
- Add approximate candle-lighting times. See below.
- --chag-only
- Output only Chag and Erev Chag events (when melakha/labor is
prohibited)
- -C city
- Set latitude, longitude, and timezone according to city. This
option implies the -c option.
- -d
- Print the Hebrew date for the entire date range.
- -D
- Print the Hebrew date for dates with some events
- -e
- Change the output format to European-style dates: dd.mm.yyyy
- -E
- Output 24-hour times (e.g., 18:37 instead of 6:37)
- -F
- Output the Daf Yomi for the entire date range
- -g
- Emit ISO-8601 dates, i.e. YYYY-MM-DD
- -G degrees
- Set Havdalah to occur this many degrees below the horizon. Use 8.5 for
three small stars or 7.0833 for three medium-sized stars.
- --geo
latitude,longitude
- Set location for solar calculations to decimal values latitude and
longitude. Requires -z timzeone switch. This switch
is preferred over the legacy -l and -L switches as it offers
more precision and follows the standard of negative longitudes being
west of the Prime Meridian.
- -h
- Suppress holidays in output. User-defined calendar events are unaffected
by this switch.
- -H
- When the -H switch is used, all dates specified on the command line
are assumed to be Hebrew dates. So for instance,
example% hebcal -H 5754
will print data for 5754, starting in Tishrei, and ending in
Elul. Hebcal is smart enough to detect a Hebrew month and infer that you
want a Hebrew date range, so you could type
example% hebcal tish 5754
The -H switch would be superfluous in this case.
Invoking hebcal with just the -H switch by itself will print data
for the current Hebrew year, starting in Tishrei.
- -i
- Use Israeli holiday and sedra schedule. Defaults to Diaspora if
unspecified.
- -I file
- Read extra events from file. These events are printed regardless of
the -h suppress holidays switch.
There is one holiday per line in file, each with the
format
MMMM DD description
where MMMM is a string identifying the Jewish month in
question DD is a number from 1 to 30, and description is a
newline-terminated string describing the holiday. An example might
be
Adar 1 Start cleaning kitchen for Passover
- -l
deg,min
- Set the latitude for solar calculations to deg degrees and
min minutes. Negative values are south.
- -L
deg,min
- Set the longitude for solar calculations to deg degrees and min
minutes. Note: Negative values are east.
- --lang
lang
- Display calendar in the lang language, which must be specified as
one of the ISO 639-1 codes of “en”,
“ashkenazi”, “he”,
“ashkenazi_litvish”, “ashkenazi_poylish”,
“ashkenazi_romanian”, “ashkenazi_standard”,
“de”, “es”, “fi”,
“fr”, “hu”, “pl”,
“ro”, “ru”, “uk”
- -m mins
- Set havdalah to occur mins minutes after sundown (default 72).
- --mevarchim
- Include Shabbat Mevarchim HaChodesh.
- --mishna-yomi
- Output the Mishna Yomi for the entire date range.
- -M
- Print the molad on shabbat mevorchim
- --nach-yomi
- Output the Nach Yomi for the entire date range.
- --no-mf
- Suppress minor fast days.
- --no-modern
- Suppress modern Israeli holidays.
- --no-special
- Suppress Special Shabbatot.
- -o
- Add the count of the omer to the output.
- -O
- Output sunrise and sunset times every day.
- -r
- Use a tab-delineated format, and somewhat terser strings. Instead of
saying “ 13th day of the omer ” hebcal will say
“ Omer: 13 ”
- -s
- Add the weekly sedra to the output on Saturdays. See
-i.
- -S
- Add the weekly sedra to the output every day. When this option is
invoked, every time a day is printed, the torah reading for the Saturday
on or immediately following that date is printed. If there is no reading
for the next Saturday, then nothing is printed. See -i.
- --schottenstein
- Use Schottenstein edition of Yerushalmi Yomi (default Vilna page numbers).
This option implies the --yerushalmi option.
- -t
- Print calendar information for today's date only. -d and -o
are asserted with this option.
- -T
- Same as -t, only without the Gregorian date. This option is useful
in login scripts, just to see what's happening today in the Jewish
calendar.
- -w
- Add the day of the week to the output.
- -W
- Weekly view. Omer, dafyomi, and non-date-specific zemanim are shown once a
week, on the day which corresponds to the first day in the range.
- -x
- Suppress Rosh Chodesh
- -X
- Exit silently with non-zero status if today is Shabbat or Chag; exit with
0 status if today is chol.
- -y
- Print only the last two digits of the year.
- --years n
- Generate events for n years (default 1)
- --yerushalmi
- Output the Yerushalmi Yomi for the entire date range.
- --ykk
- Include Yom Kippur Katan, a minor day of atonement occurring monthly on
the day preceding each Rosh Chodesh.
- -Y file
- Read a table of yahrtzeit dates from file. These events are printed
regardless of the -h suppress holidays switch.
There is one death-date per line in file, each with the
format
MM DD YYYY description
where MM, DD and YYYY form the
Gregorian date of death. description is a
newline-terminated string to be printed on the yahrtzeit. An
example might be
12 29 1957 Menachem Mendel's yahrtzeit.
5 15 1930 Benjamin's yahrtzeit.
- -z timezone
- Use the specified timezone, overriding the -C (localize to city)
switch. For correct DST rules, use a full timezone name (such as
“America/New_York”) instead of a timezone abbreviation (such
as “EST”).
- -Z
- Add zemanim (Alot HaShachar; Misheyakir; Kriat Shema, sof zeman; Tefilah,
sof zeman; Chatzot hayom; Mincha Gedolah; Mincha Ketanah; Plag HaMincha;
Tzait HaKochavim)
- --help
- Show help text
- --version
- Show version number
Hebcal's candlelighting times are only approximations. If you ever
have any doubts about its times, consult your local halachic authority. If
you enter geographic coordinates above the arctic circle or below the
antarctic circle, the times are guaranteed to be wrong.
In addition to candle-lighting on Erev Shabbat and Chag, the
-c switch also generates Havdalah and fast start/end times.
By default, candle-lighting times are 18 minutes before sunset
(see -b option above for exceptions).
Chanukah candle-lighting times are at civil dusk (solar depression
of 6 degrees) on weekdays. Chanukah candles are lit just before Shabbat
candles on Friday, and immediately after Havdalah on Saturday night.
Havdalah time defaults to 72 minutes after sunset (Rabbeinu Tam).
Adjust with the -m (minutes) option or with -G (havdalah
degrees below horizon).
Minor fasts begin in the morning at alot haShachar (solar
depression 16.1 degrees) and conclude at tzeit for 3 medium sized
stars (solar depression 7.083 degrees). Major fasts (Yom Kippur and
Tish'a B'Av) begin just before sunset (at regular candle-lighting
time) and conclude at Havdalah time.
Hebcal contains a small database of cities with their associated
geographic information and time-zone information. The geographic and time
information necessary to calculate sundown times can come to hebcal any of
three ways:
- 1)
- The default: the system manager sets a default city when the program is
compiled.
- 2)
- Hebcal looks in the environment variable HEBCAL_CITY for the name
of a city in hebcal's database, and if it finds one, hebcal will make that
the new default city.
- 3)
- 1 and 2 may be overridden by command line arguments, including those
specified in the HEBCAL_OPTS environment variable. The most natural
way to do this is to use the -c city command. This
will localize hebcal to city. A list of the cities hebcal knows
about can be obtained by typing
hebcal cities
at the command prompt. If the city you want isn't on that list, you can
directly control hebcal's geographic information with the --geo and
-z switches.
For a status report on customizations, type type
hebcal info
at the command prompt.
To find the days of the omer in 1997, printing the days of
the week:
example% hebcal -how 1997
4/23/97 Wed, 1st day of the Omer
4/24/97 Thu, 2nd day of the Omer
4/25/97 Fri, 3rd day of the Omer
.
.
.
6/9/97 Mon, 48th day of the Omer
6/10/97 Tue, 49th day of the Omer
To print only the weekly
sedrot
of Nisan 5770
example% hebcal -hs Nisan 5770
3/20/2010 Parashat Vayikra
3/27/2010 Parashat Tzav
4/10/2010 Parashat Shmini
To find out what's happening in the Jewish calendar today, use
example% hebcal -TS
19 of Nisan, 5752
Parshat Achrei Mot
Pesach V (CH"M)
4th day of the Omer
Hebcal uses two environment variables:
- HEBCAL_CITY
- Hebcal uses this value as the default city for sunset
calculations. A list of available cities is available with from hebcal
with the command:
hebcal cities
- HEBCAL_OPTS
- The value of this variable is automatically processed as if it were typed
at the command line before any other actual command-line arguments.
Danny Sadinoff
Michael J. Radwin
calendar(1), emacs(1), hcal(1), hdate(1), omer(1), remind(1),
rise(1)
The latest version of the code is available on the
hebcal project
homepage.
The original motivation for the algorithms in this program was the
Tur Shulchan Aruch.
A well written treatment of the Jewish calendar for the layman can
be found in Understanding the Jewish Calendar by Rabbi Nathan
Bushwick. A more complete bibliography on the topic can be found there, as
well as in the Encyclopedia Judaica entry on the calendar.
- hebcal
help
- Prints a shorter version of this manpage, with comments on each
option.
- hebcal
info
- Prints the version number and default values of the program.
- hebcal
cities
- Prints a list of cities which hebcal knows about, suitable as arguments to
the -C city option. If your city does not appear on
this list, put the necessary defaults in the HEBCAL_OPTS
environment variable.
- hebcal
copying
- Prints the GNU license, with information about copying the program. See
below.
- hebcal
warranty
- Tells you how there's NO WARRANTY for hebcal.
This is just a program I wrote during summer school and while
avoiding my senior project. It should not be invested with any sort of
halachic authority.
hebcal first appeared in comp.sources.misc on
November 4, 1992.
For version 3, much of the program was rewritten using Emacs 19's
calendar routines by Edward M. Reingold and Nachum Dershowitz. Their program
is extremely clear and provides many instructive examples of fine calendar
code in emacs LISP.
In version 4.x (released in 2015), the sunrise/sunset engine (used
for candle-lighting times and zmanim) was rewritten using Derick Rethans's
excellent
timelib.
Version 5.x (released 2022) was completely rewritten in Go.
Hebrew dates are only valid before sundown on that secular date.
An option to control this will be added in a later release.
When specifying geographic coordinates with the legacy -l
and -L switches, negative longitudes are east of
Greenwich.
Some combinations of options produce weird results, e.g.,
hebcal -dH nisan 5744
hebcal -dH 5744
This comes into play when you use the HEBCAL_OPTS
environment variable.
The sunup/sundown routines aren't accurate enough. If you enter
geographic coordinates above the artic circle or below the antarctic circle,
the times are guaranteed to be wrong.
Hebcal only translates between the Gregorian calendar and the
Jewish calendar. It does not take into account a correction of eleven days
that was introduced by Pope Gregory XIII known as the Gregorian Reformation.
Wednesday, 2 September 1752 was followed by Thursday, 14 September 1752.
This means that the results will be at least partly useless where
and when the Gregorian calendar was not used, e.g., before 1752 in Britain
and before circa 1918 in Russia. See the Wikipedia page
https://en.wikipedia.org/wiki/Gregorian_calendar#Adoption_by_country
for a splendid chart depicting when the changeover from the Julian to the
Gregorian calendars occurred in various places.
Hebcal cannot handle date computations before 2 C.E. Sorry.
Copyright © 1994-2006 Danny Sadinoff
Portions Copyright © 2022 Michael J. Radwin. All Rights Reserved.
For a full text of the copyright and lack of warranty information,
run
hebcal copying
at the command line.