hcal(1) displays a Hebrew / Gregorian calendar


hcal [options] [coordinates [timezone]] [[mm] yyyy]
coordinates: -l [NS]yy[.yyy] -L [EW]xx[.xxx]

             -l [NS]yy[:mm[:ss]] -L [EW]xx[:mm[:ss]]
timezone: -z nn[( .nn | :mm )]


hcal prints a calendar with both Gregorian and Hebrew dates for the specified Gregorian month or, if no month is specified, for the whole Gregorian year. If no arguments are given, it prints the current month's calendar. Jewish holidays are annotated, and can optionally be footnoted. hcal tries to be sunset-aware in order to correctly highlight the current Hebrew date, and can also display Shabbat times and parshiot. See the section LOCATION, below.

INPUTTING A HEBREW DATE: If the year provided is greater than 3000, hcal will interpret the given date as a Hebrew date, and will display the calendar of the corresponding Gregorian month(s). Hebrew months are expected to be passed as numbers 1-12 for Tishrei - Elul; Adar I and Adar II are expected to be passed as months 13 and 14.


-1 --one-month
over-ride config file setting if you had set option --three-month as a default there
-3 --three-month
output previous/next months, side by side. requires 127 columns
-b --bidi
output Hebrew information in Hebrew , in reverse
   --visual   sequence

   --no-bidi   over-ride config file setting if you had set
   --no-visual   option --bidi as a default there
-c --colorize
output in calming, muted tones
   --no-color   over-ride config file setting
-d --diaspora
use diaspora reading and holidays. Only relevant if hcal is using location information indicating an Israeli timezone
-f --footnote
output descriptive notes of holidays
   --no-footnote  over-ride config file setting
-h --html
output in html format to stdout
   --no-html   over-ride config file setting
-H --hebrew
output Hebrew information in Hebrew, in 'logical' sequence. If this displays in reverse for you, use option -b
-I --israel
override a diaspora default. Only relevant if hcal is using location information indicating other than an Israeli timezone
use external css file "./hcal.css" for html output
do not highlight today's date
-p --parasha
output week's parasha on each calendar row
-s --shabbat
output Shabbat times and parshiot
-l --latitude
[NS]yy[.yyy] decimal degrees, or [NS]yy[:mm[:ss]] degrees, minutes, seconds. Negative values are South
-L --longitude
[EW]xx[.xxx] decimal degrees, or [EW]xx[:mm[:ss]] degrees, minutes, seconds. Negative values are West
-z --timezone
+/-UTC. Notation may be in decimal hours ( hh[.hh] ) or hours, minutes ( hh[:mm] )



Holidays are depicted by a change in the symbol separating a day's Gregorian and Hebrew dates, as follows:

/  Regular day
+  Yom Tov (plus Yom Kippur)
*  Erev Yom Kippur
~  Hol HaMoed
!  Hanuka and Purim
@  Tzomot
$  Lag BaOmer ,Tu BeAv, Tu BeShvat
#  Independance day and Yom Yerushalaim
%  Tzahal and Holocaust memorial days
^  Other Israeli National days

Use the -f (--footnote) option to have hcal describe what any particular day is marking.


If you want hcal to display accurate Shabbat times, and to accurately advance the Hebrew 'today's date' indicator at sunset, hcal requires location and time zone information in order to make astronomical calculations for a given date. If you don't provide ANY such information, hcal uses your computer's local time zone information as an indicator, and either picks a city in that time zone, or defaults to the equator at the center of that time zone. If hcal can't even retrieve time zone information from your computer, it defaults to Tel-Aviv. For other locations, use the -l -L option pair. For other timezones, use the -z option. Co-ordinates and standard time zones for some common locations are listed below.

The current defaults include:

Timezone Default city Lattitude Longitude
-5 New York City 40 -74

 0      London             51          0

 1      Paris              48          2

 2      Tel-Aviv           32         34

 3      Moscow             55         37

Useful locations and time zones

Jerusalem 31, 35, 2 Buenos Aires 34, -58, -3
Tel Aviv 32, 34, 2 Hong Kong 22, 114, 8
Haifa 32, 34, 2 Los Angeles 34, -118, -8
Beer Sheva 31, 34, 2 Sao Paolo 23, -46, -3
Ashdod 31, 34, 2 Toronto 43, -79 -5
Tiberias 32, 35, 2
Eilat 29, 34, 2



This folder and file will be automatically created, and includes its own documentation, in-line:

If ${XDG_CONFIG_HOME} is undefined:


The accuracy of the astronomically-derived data will suffer from not accounting for environmental conditions such as elevation, horizon, temperature and air pressure.
The timezone support is currenlty primitive and lacks support for daylight savings time transitions.
The software does not yet account for the phenomenon and complications of the "Gregorian transition" from the prior, Julian calendar, which effectively caused an instantaneous 'loss' of two weeks for all gentiles affected. Countries (eg. Poland, Spain and Italy) began adopting the Gregorian calendar on 8 Tishrei 5343 (4 October 1582CE), although many did not transition until the 56th century (1752 CE, eg. UK colonies, Sweden). Russia did not adopt the Gregorian calendar until 5678 (1918 CE) and Turkey did not until 5687 (December, 1926 CE). Many other countries made the transition on other dates. Keep in mind that Russia invaded part of Poland, undoing, for the interim, the Gregorian transition for (only) that part of Poland; Also important to remember in this regard is that Eretz Ysroel was part of the Turkish Ottoman empire until the British mandate (5677 (1917CE)). Until all this is accounted for adequately by this application, refer to ' ncal -p ' for a basic table of country transitions. However, keep in mind that European borders underwent many changes during the 426 years in question, so the accuracy of your data will depend on accurate knowledge of whether any particular date at any specific location was Julian or Gregorian.


1. Display a 2012ce year's calendar, three-months wide, in color.
hcal -3c 2012
2. Display the current month's calendar, with Shabbat times, parshiot, footnoted holiday identification, with Hebrew information in Hebrew, and all in "calming", "muted" color-tones.
hcal -csfH


Boruch Baum 2011-2012, Yaacov Zamir 2005-2010.

project home page: http://libhdate.sourceforge.net

Hcal and Hdate are part of the package libhdate , a small C/C++ library for Hebrew dates, holidays, and reading sequences (parashiot). It uses the source code from Amos Shapir's "hdate" package, as fixed and patched by Nadav Har'El. The Torah reading sequence tables were contributed by Zvi Har'El.