How the static holiday data works

The public-holiday library used to prepare the data is a Node.js package covering 200+ countries, with no browser build. For each supported country and year, its results are calculated offline and saved in a plain JSON file distributed with the tool. The browser loads that file with fetch() and looks up each date in a dictionary; it does no civil-holiday calendar calculations itself. This limits the available years to 2020–2036. Extending that range means regenerating the data file, without redesigning the tool.

What the Islamic date notice means

The Hijri calendar traditionally depends on local moon sighting. Different countries may announce the same Islamic date a day apart, so a calculated date is an estimate of the expected sighting. For Jewish dates, the tool uses a calculated Hebrew calendar based on established mathematical rules, while Christian Easter Sunday is also calculated. The tool therefore displays the moon-sighting notice only when Islamic dates are enabled and attaches it to those dates. It does not extend that notice to Christian, Jewish, or Hindu dates in a combined view.

Calculating Christian dates from Easter

A country's public-holiday list may include Christmas but omit religious observances that are not official days off. The Christian calendar therefore calculates Easter Sunday and uses it to place four related dates: Ash Wednesday is 46 days before Easter, Palm Sunday 7 days before, Good Friday 2 days before, and Pentecost 49 days after. Together with Easter, those make five movable dates. Christmas, Epiphany on January 6, and All Saints' Day on November 1 are fixed dates, bringing the list to eight. These calculations do not depend on whether a country lists an observance as a public holiday.

The data behind the Jewish calendar

The general public-holiday library includes some major Jewish dates, but it does not cover Chol HaMoed, the Omer count, or conversion from any Gregorian date to its Hebrew equivalent. A dedicated perpetual Hebrew-calendar library supplies those details through two JSON files prepared offline. The first maps every Gregorian day from 2020 through 2036 to its Hebrew day, month, and year. It provides the secondary date in each calendar cell and month-header ranges such as "Elul 5786 - Tishrei 5787". The second lists the observances and their display rules: Rosh Hashanah through Simchat Torah, Purim, Tu BiShvat, all 49 days of the Omer, the four minor fasts, Tisha B'Av, and the other supported dates.

Numbered Hanukkah days and the Omer count

Sukkot and Passover repeat their festival name across the days they span. Hanukkah labels also identify "Day 1" through "Day 8", making it easy to follow the sequence of nights and candles. The Omer uses a separate format, such as "Omer, Day 33 (4 weeks and 5 days)", that reflects the traditional spoken count. All 49 days are tracked, with Lag BaOmer named on day 33.

Reading the five day colors

The five colors distinguish different kinds of observance. Amber marks Yom Tov, Chol HaMoed, Yom Kippur, and Shabbat; gray marks the four minor fasts; blue marks Purim, Hanukkah, and Lag BaOmer; black marks Tisha B'Av as a major fast; and pink marks Tu B'Av. A holiday's color takes priority over the usual Friday/Saturday Shabbat shading. For example, a Hanukkah night on a Friday appears in blue.

Keeping dates readable over a photo

A bright beach photo and a dim indoor portrait give the calendar grid very different backgrounds. The photo-background layout adds the same semitransparent dark overlay to each image before drawing the dates. It does not measure image brightness or adjust the overlay for individual photos. This keeps the treatment consistent across pages and helps the day numbers stand out, though the effect can look heavier on some images.

Planning your calendar

Each PDF covers one calendar year. The download places one month on each page. Keeping each PDF to a single year simplifies the data model and page layout.

You can add holidays yourself if your country is missing. Create a calendar without automatic public holidays, then enter the dates you need in custom events. The other features remain available regardless of country selection.

The dedicated Hebrew calendar generator adds sunset-based times and the weekly Torah portion. Use it for candle-lighting, Havdalah, and tzeit hakochavim times calculated for your chosen location, or for the weekly reading. Selecting these options asks you to confirm before opening the dedicated tool, where you can choose a location for the time calculations.

Your photos and custom events are processed in the browser. The Calendar generator looks up the downloaded holiday data and builds the PDF locally. It does not upload those photos, custom events, or the generated calendar to a server for processing.

Build a printable calendar

Orisod's Calendar generator creates a 12-month PDF with public holidays for 50+ countries, religious dates, photos, and custom events. The calendar is assembled in your browser.

Build a calendar β†’

The available year range comes from the supplied data files. Extending it requires regenerating the civil-holiday data and the Hebrew date and observance tables, including the Omer count, Chol HaMoed, and minor fasts. The Islamic moon-sighting notice still applies to calculated Islamic dates within that range.