home | help
HEBCAL(1)		     General Commands Manual		       HEBCAL(1)

NAME
     hebcal - a Jewish calendar generator

SYNOPSIS
     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 ]
	       [ --no-julian ]
	       [ --daily-learning name ]
	       [ --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

DESCRIPTION
     With no arguments, hebcal will print to stdout the dates of the Jewish hol-
     idays  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 Jew-
     ish 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.

OPTIONS
     -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 prohib-
	    ited)

     -C city
	    Set latitude, longitude, and timezone according to city.   This  op-
	    tion 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)

     -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 unaf-
	    fected 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 un-
	    specified.

     -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 min-
	    utes.  Negative values are south.  Deprecated: use --geo instead.

     -L deg,min
	    Set the longitude for solar calculations to deg degrees and min min-
	    utes.  Note: Negative values are east.  The -l and -L switches  must
	    both  be used, or not at all, and override the -C (localize to city)
	    switch.  Deprecated: use --geo instead.

     --lang lang
	    Display calendar in the lang language, which must  be  specified  as
	    one  of "en", "ashkenazi", "he", "he-x-NoNikud", "ashkenazi_komatz",
	    "ashkenazi_litvish",   "ashkenazi_poylish",    "ashkenazi_romanian",
	    "ashkenazi_standard",  "de",  "es",  "fi",	"fr",  "hu", "nl", "pl",
	    "pt", "ro", "ru", "uk", "yi"

     -m mins
	    Set havdalah to occur mins minutes after sundown (default 72).

     --mevarchim
	    Include Shabbat Mevarchim HaChodesh.

     -M     Print the molad on shabbat mevorchim

     --no-mf
	    Suppress minor fast days.

     --no-modern
	    Suppress modern Israeli holidays.

     --no-special
	    Suppress Special Shabbatot.

     --no-julian
	    Disable the Julian calendar for dates before September 14, 1752, and
	    use the proleptic Gregorian calendar instead.

     -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 Sat-
	    urday on or immediately following that date is printed.  If there is
	    no reading for the next Saturday, then nothing is printed.	See -i.

     -t     Print calendar information for today's date only.  -d and -o are as-
	    serted 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.

     --verbose
	    Verbose  mode,  currently  used only for --exit-if-chag (-X).  Print
	    the reason today is considered Shabbat or Chag.

     -y     Print only the last two digits of the year.

     --years  n
	    Generate events for n years (default 1)

     --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.	descrip-
	    tion  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

   Learning Schedules
     Hebcal can interleave a variety of daily and weekly Torah and Talmud learn-
     ing  schedules  into  the calendar.  The schedules below have dedicated op-
     tions; in addition, any schedule may be requested by name with the  repeat-
     able --daily-learning option.

     -F ,  --daf-yomi
	    Output the Daf Yomi (Bavli) for the entire date range.

     --mishna-yomi
	    Output the Mishna Yomi for the entire date range.

     --nach-yomi
	    Output the Nach Yomi for the entire date range.

     --yerushalmi
	    Output the Yerushalmi Yomi for the entire date range.

     --schottenstein
	    Use the Schottenstein edition of Yerushalmi Yomi (default Vilna page
	    numbers).  This option implies the --yerushalmi option.

     --daily-learning name
	    Output  the  named learning schedule for the entire date range.  May
	    be repeated.  Valid names are: dafYomi (Daf  Yomi,	Babylonian  Tal-
	    mud),  mishnaYomi  (Mishna	Yomi,  two  Mishnayot per day), nachYomi
	    (Nach Yomi, a chapter of Nevi'im and Ketuvim), yerushalmi-vilna  and
	    yerushalmi-schottenstein  (Yerushalmi  Yomi,  Jerusalem Talmud), 929
	    (929, a daily chapter of the Hebrew  Bible,  Sun-Thu),  rambam1  and
	    rambam3  (Daily  Rambam, one or three chapters a day), dafWeekly and
	    dafWeeklySunday (Daf-a-Week), perekYomi (one chapter of the  Mishnah
	    per   day),   psalms   (Daily  Psalms  /  Tehillim,  30-day  cycle),
	    pirkeiAvotSummer (Pirkei Avot,  summer  Shabbatot),  and  tanakhYomi
	    (Tanakh Yomi, annual Masoretic seder cycle).

CANDLE-LIGHTING TIMES
     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 op-
     tion above for exceptions).

     Chanukah candle-lighting times are at civil dusk (solar depression of 6 de-
     grees) 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 ob-
	    tained 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.

EXAMPLES
     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

ENVIRONMENT
     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 argu-
	    ments.

AUTHORS
     Danny Sadinoff
     Michael J. Radwin

SEE ALSO
     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 com-
     plete bibliography on the topic can be found there, as well as in the Ency-
     clopedia Judaica entry on the calendar.

DIAGNOSTICS
     hebcal help
	    Prints  a shorter version of this manpage, with comments on each op-
	    tion.

     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  argu-
	    ments  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.

DISCLAIMER
     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 au-
     thority.

HISTORY
     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 ex-
     tremely  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 can-
     dle-lighting times and zmanim) was rewritten using Derick Rethans's  excel-
     lent timelib.

     Version 5.x (released 2022) was completely rewritten in Go.

BUGS
     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 calen-
     dar. It does not take into account a correction of eleven days that was in-
     troduced by Pope Gregory XIII known as the Gregorian  Reformation.  Wednes-
     day, 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  be-
     fore     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 Grego-
     rian calendars occurred in various places.

     Hebcal cannot handle date computations before 2 C.E.  Sorry.

BUG REPORTS TO
     https://github.com/hebcal/hebcal/issues

COPYING
     Copyright (C) 1994-2006 Danny Sadinoff
     Portions Copyright (C) 2022-2026 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.

Sadinoff and Radwin		Hebcal @VERSION@		       HEBCAL(1)

home | help