Skip to main content

Zmanim (halachic times) iCalendar feed

We are pleased to offer an experimental Zmanim (halachic times) iCalendar feed. Many calendar desktop, mobile or web apps support the iCalendar (.ICS file extension) format.

You can specify your location using a GeoNames.org numeric ID, a United States ZIP code, or a geographic position (location specified by latitude, longitude, and timezone). You’ll find details on how to specify the location parameters on the Zmanim (halachic times) API page.

By default, event titles use a Sephardic transliteration. Append &lg=LANG to the URL to render the events titles using an alternate event language.

Option 1: All zmanim in a single daily untimed event

The basic URL format of the feeds is this:

webcal://download.hebcal.com/zmanim2?geonameid=5368361

The calendar feed will contain zmanim for the next 90 days. There will be a single all-day (untimed) event with the Hebrew date, and the description/notes will contain all times. Here is an example event:

Option 2: Timed events

If you would prefer approximately 20 timed events per day, we offer an alternate feed format using this alternate URL format (note /zmanim instead of /zmanim2 above):

webcal://download.hebcal.com/zmanim?zip=02906

The calendar feed will contain events for the next 60 days. Each event represents only a single halachic time.

Here’s an example of the events included in the calendar feed:

Option 3: Sunrise and Sunset only

An alternate feed which contains only sunrise and sunset events is available using URL format like this (note /sunrs instead of /zmanim2 above):

webcal://download.hebcal.com/sunrs?zip=02906

In this variation, there are only two events per day.

Displaying today’s Omer count

If you’d like to display today’s Omer count on your website and you’re comfortable with a bit of Javascript, you can use a snippet like this:

To display the Omer count in another language, change the &lg=s to another supported language code (for example h for Hebrew, es for Spanish, etc).

If you’d like to display the long omer count in English or Hebrew, you can dislay item.omer.count.en or item.omer.count.he

  • he: “הַיוֹם שְׁמוֹנָה עָשָׂר יוֹם, שְׁהֵם שְׁנֵי שָׁבוּעוֹת וְאַרְבָּעָה יָמִים לָעוֹמֶר”,
  • en: “Today is 18 days, which is 2 weeks and 4 days of the Omer”

See also item.omer.sefira.he, .en, and .translit.

  • he: “נֶּֽצַח שֶׁבְּתִּפאֶרֶת”,
  • translit: “Netzach sheb’Tiferet”,
  • en: “Eternity within Beauty”

Giving appropriate credit to Hebcal

Most Hebcal content is licensed under a Creative Commons Attribution 4.0 International License (sometimes referred to as “CC BY 4.0”). If you use Hebcal.com content or APIs, continue reading to understand what privileges this license grants and how you can give appropriate credit to Hebcal.

cc_by_logo

The CC BY 4.0 license is designed to encourage use and reuse of content. You can remix, transform, and build upon the material for any purpose, even commercially. You need not ask for permission, notify us about the usage, or send us money. This license gives you permission to freely to copy and redistribute the material in any medium or format as long as you give appropriate credit to Hebcal.com.

Creative Commons licenses have a flexible attribution requirement, so there is not necessarily one correct way to provide attribution. The proper method for giving credit will depend on the medium and means you are using, and may be implemented in any reasonable manner.

On a website, you might include a short piece of text with a link back to Hebcal.com, e.g.:

Powered by Hebcal Shabbat Times

Or you might include the following at the bottom of a printed page or refrigerator magnet:

Jewish holidays and candle-lighting times are provided by Hebcal.com with a CC BY 4.0 International License.

Creative Commons publishes best practices for attribution which includes some good (and not so good) examples of attribution.

Leyning (Torah Reading) API

We are pleased to offer support for REST API for Torah Reading for full kriyah leyning on Shabbat and holidays, Triennial (optionally) for Shabbat, and weekday readings on Mondays & Thursdays.

Note that this is a web API that provides the same functionality of the getLeyningOnDate API provided by the JavaScript @hebcal/leyning package. If you’re building a JavaScript application, consider using the native JS library instead of web APIs for a faster user experience.

Here’s the basic URL format:

https://www.hebcal.com/leyning?cfg=json&start=2022-09-21&end=2022-09-26

Parameters and their meanings

  • cfg=json – output JSON. Required
  • For a single date:
    • date=2011-06-02 – Gregorian date in YYYY-MM-DD format
  • Or, for a date range:
    • start=2021-01-15 – start date using YYYY-MM-DD format
    • end=2021-01-22 – end date using YYYY-MM-DD format
    • Results will be truncated to 180 days if the end date is more than 180 days after the start date
  • Diaspora vs. Israel
    • i=off – Diaspora holidays and Torah readings (default if unspecified)
    • i=on – Israel holidays and Torah readings
  • triennial=off – reduce size of JSON response payload by disabling Triennial aliyot details (default on)

Example output

{
  "date": "2022-10-03T18:41:57.168Z",
  "location": "Diaspora",
  "range": {
    "start": "2022-09-21",
    "end": "2022-09-26"
  },
  "items": [
    {
      "date": "2022-09-22",
      "hdate": "26 Elul 5782",
      "name": {
        "en": "Nitzavim",
        "he": "נִצָּבִים"
      },
      "parshaNum": 51,
      "weekday": {
        "1": {"k": "Deuteronomy", "b": "29:9", "e": "29:11", "v": 3},
        "2": {"k": "Deuteronomy", "b": "29:12", "e": "29:14", "v": 3},
        "3": {"k": "Deuteronomy", "b": "29:15", "e": "29:28", "v": 14}
      }
    },
    {
      "date": "2022-09-24",
      "hdate": "28 Elul 5782",
      "name": {
        "en": "Nitzavim",
        "he": "נִצָּבִים"
      },
      "parshaNum": 51,
      "summary": "Deuteronomy 29:9-30:20",
      "fullkriyah": {
        "1": {"k": "Deuteronomy", "b": "29:9", "e": "29:11", "v": 3},
        "2": {"k": "Deuteronomy", "b": "29:12", "e": "29:14", "v": 3},
        "3": {"k": "Deuteronomy", "b": "29:15", "e": "29:28", "v": 14},
        "4": {"k": "Deuteronomy", "b": "30:1", "e": "30:6", "v": 6},
        "5": {"k": "Deuteronomy", "b": "30:7", "e": "30:10", "v": 4},
        "6": {"k": "Deuteronomy", "b": "30:11", "e": "30:14", "v": 4},
        "7": {"k": "Deuteronomy", "b": "30:15", "e": "30:20", "v": 6},
        "M": {"k": "Deuteronomy", "b": "30:15", "e": "30:20", "v": 6}
      },
      "haft": {"k": "Isaiah", "b": "61:10", "e": "63:9", "v": 23},
      "haftara": "Isaiah 61:10-63:9",
      "triennial": {
        "1": {"k": "Deuteronomy", "b": "29:9", "e": "29:11", "v": 3},
        "2": {"k": "Deuteronomy", "b": "29:12", "e": "29:14", "v": 3},
        "3": {"k": "Deuteronomy", "b": "29:15", "e": "29:28", "v": 14},
        "4": {"k": "Deuteronomy", "b": "30:1", "e": "30:6", "v": 6},
        "5": {"k": "Deuteronomy", "b": "30:7", "e": "30:10", "v": 4},
        "6": {"k": "Deuteronomy", "b": "30:11", "e": "30:14", "v": 4},
        "7": {"k": "Deuteronomy", "b": "30:15", "e": "30:20", "v": 6},
        "M": {"k": "Deuteronomy", "b": "30:15", "e": "30:20", "v": 6}
      },
      "triYear": 3,
      "triHaftara": "Isaiah 65:16-25",
      "triHaft": {"k": "Isaiah", "b": "65:16", "e": "65:25", "note": "terem yikrau ani e'eneh", "v": 10}
    },
    {
      "date": "2022-09-26",
      "hdate": "1 Tishrei 5783",
      "name": {
        "en": "Rosh Hashana I",
        "he": "רֹאשׁ הַשָּׁנָה א׳"
      },
      "fullkriyah": {
        "1": {"p": 4, "k": "Genesis", "b": "21:1", "e": "21:4", "v": 4},
        "2": {"p": 4, "k": "Genesis", "b": "21:5", "e": "21:12", "v": 8},
        "3": {"p": 4, "k": "Genesis", "b": "21:13", "e": "21:21", "v": 9},
        "4": {"p": 4, "k": "Genesis", "b": "21:22", "e": "21:27", "v": 6},
        "5": {"p": 4, "k": "Genesis", "b": "21:28", "e": "21:34", "v": 7},
        "M": {"p": 41, "k": "Numbers", "b": "29:1", "e": "29:6", "v": 6}
      },
      "summary": "Genesis 21:1-34; Numbers 29:1-6",
      "summaryParts": [
        {"k": "Genesis", "b": "21:1", "e": "21:34"},
        {"k": "Numbers", "b": "29:1", "e": "29:6"}
      ],
      "haft": {"k": "I Samuel", "b": "1:1", "e": "2:10", "v": 38},
      "haftara": "I Samuel 1:1-2:10"
    }
  ]
}

Usage notes

As with all Hebcal.com REST APIs:

  • Both HTTP and HTTPS (HTTP/2) are supported. Although most of the Web has moved to HTTPS, if you wish to reduce CPU overhead on your client you may continue to use plain (port 80) HTTP for API requests
  • We encourage HTTP caching proxies. Proper Cache-Control and Expires are generated in the response
  • We support both gzip and br (brotli) compression; set the appropriate Accept-Encoding header in your request to enable
  • We support HTTP Keep-Alive for multiple requests

Licensing

Content generated by the Hebcal.com web APIs is licensed under a Creative Commons Attribution 4.0 International License. This means that you can use you are free to copy and redistribute the material in any medium or format as long as you give appropriate credit to Hebcal.com.

Yahrzeit + Anniversary REST API

We are pleased to offer support for REST API for personal Yahrzeits, Hebrew Birthdays and Hebrew Anniversaries.

Note that this is a web API with the same functionality as the getYahrzeit and getBirthdayOrAnniversary APIs provided by the JavaScript @hebcal/core package. If you’re building a JavaScript application, consider using the native JS library instead of web APIs for a faster user experience.

Clients should POST x-www-form-urlencoded data to https://www.hebcal.com/yahrzeit

Regarding application/x-www-form-urlencoded: the keys and values are encoded in key-value tuples separated by '&', with a '=' between the key and the value. Non-alphanumeric characters in both keys and values are percent encoded.

The following parameters must be specified

  • cfg=json
  • v=yahrzeit

The following parameters may be specified once

  • years=3 – default 20. Use years=1 for only a single Hebrew year
  • hebdate=on – append Hebrew date to the event titles (default off)
  • yizkor=on – Include Yizkor dates (default off)
    • i=off – Diaspora Yizkor schedule (Pesach 8th day, Shavuot 2nd day, Yom Kippur and Shmini Atzeret)
    • i=on – Israel Yizkor schedule (Pesach 7th day, Shavuot, Yom Kippur and Shmini Atzeret)
  • start=5749 – beginning Hebrew year to calculate anniversary dates (defaults the current Hebrew year)
  • end=5761 – ending Hebrew year (inclusive) to calculate anniversary dates (defaults to start year + years years)
  • hdp=1 – include heDateParts field on untimed (all-day) items in the response

Then, specify at least one input date based on the Gregorian date of death (or birth). The following parameters are required, substituting the X with increasing integers beginning with 1.

  • yX=1983 – Gregorian year, 4-digit date
  • mX=4 – Gregorian month (1=January, 12=December; leading zeros optional)
  • dX=15 – Gregorian day of month (1-31; leading zeros optional)
  • sX=on – Event occurred on Gregorian date after sunset (default off implies that event occurred before sunset)
  • tX=Yahrzeit – type (either Yahrzeit, Birthday or Anniversary – case-sensitive)
  • nX=Plonit+ben+Ploni – name (optional)

Please take care to specify the correct tX type parameter (either Yahrzeit, Birthday or Anniversary). The algorithm (according to Ashkenazic practice) differs between these options, especially in the months of Adar, Cheshvan, or Kislev. For more information, see “How does Hebcal determine anniversaries (birthdays, yahrzeits)?

Unlike other Hebcal.com REST APIs, this API requires HTTPS (either HTTP/1.1 or HTTP/2) due to the personal/sensitive nature of the information being passed across the Internet.

  • We support both gzip and br (brotli) compression; set the appropriate Accept-Encoding header in your request to enable
  • We support HTTP Keep-Alive for multiple requests

Example

Here is an example of two events, a Hebrew Birthday for Person1 and a Yahrzeit for Person2:

curl \
  -X POST \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  --compressed \
  --data-raw 'cfg=json&v=yahrzeit&n1=Person1&t1=Birthday&d1=15&m1=4&y1=1983&s1=on&n2=Person2&t2=Yahrzeit&d2=13&m2=11&y2=2008&s2=off&hebdate=on&years=3' \
  https://www.hebcal.com/yahrzeit

The response will be application/json that looks like this:

{
  "title": "Hebrew Anniversaries: Person1, Person2",
  "date": "2022-05-30T19:04:58.561Z",
  "range": {
    "start": "2021-10-21",
    "end": "2024-05-11"
  },
  "items": [
    {
      "title": "Person2's 13th Yahrzeit (15th of Cheshvan)",
      "date": "2021-10-21",
      "hdate": "15 Cheshvan 5782",
      "memo": "Hebcal joins you in remembering Person2, whose 13th Yahrzeit occurs on Thursday, October 21, corresponding to the 15th of Cheshvan, 5782.\n\nPerson2's Yahrzeit begins at sundown on Wednesday, October 20 and continues until sundown on the day of observance. It is customary to light a memorial candle at sundown as the Yahrzeit begins.\n\nMay your loved one's soul be bound up in the bond of eternal life and may their memory serve as a continued source of inspiration and comfort to you.",
      "name": "Person2",
      "category": "yahrzeit",
      "anniversary": 13
    },
    {
      "title": "Person1's 39th Hebrew Birthday (3rd of Iyyar)",
      "date": "2022-05-04",
      "hdate": "3 Iyyar 5782",
      "memo": "Hebcal joins you in honoring Person1, whose 39th Hebrew Birthday occurs on Wednesday, May 4, corresponding to the 3rd of Iyyar, 5782.\n\nPerson1's Hebrew Birthday begins at sundown on Tuesday, May 3 and continues until sundown on the day of observance.",
      "name": "Person1",
      "category": "birthday",
      "anniversary": 39
    },
    {
      "title": "Person2's 14th Yahrzeit (15th of Cheshvan)",
      "date": "2022-11-09",
      "hdate": "15 Cheshvan 5783",
      "memo": "Hebcal joins you in remembering Person2, whose 14th Yahrzeit occurs on Wednesday, November 9, corresponding to the 15th of Cheshvan, 5783.\n\nPerson2's Yahrzeit begins at sundown on Tuesday, November 8 and continues until sundown on the day of observance. It is customary to light a memorial candle at sundown as the Yahrzeit begins.\n\nMay your loved one's soul be bound up in the bond of eternal life and may their memory serve as a continued source of inspiration and comfort to you.",
      "name": "Person2",
      "category": "yahrzeit",
      "anniversary": 14
    },
    {
      "title": "Person1's 40th Hebrew Birthday (3rd of Iyyar)",
      "date": "2023-04-24",
      "hdate": "3 Iyyar 5783",
      "memo": "Hebcal joins you in honoring Person1, whose 40th Hebrew Birthday occurs on Monday, April 24, corresponding to the 3rd of Iyyar, 5783.\n\nPerson1's Hebrew Birthday begins at sundown on Sunday, April 23 and continues until sundown on the day of observance.",
      "name": "Person1",
      "category": "birthday",
      "anniversary": 40
    },
    {
      "title": "Person2's 15th Yahrzeit (15th of Cheshvan)",
      "date": "2023-10-30",
      "hdate": "15 Cheshvan 5784",
      "memo": "Hebcal joins you in remembering Person2, whose 15th Yahrzeit occurs on Monday, October 30, corresponding to the 15th of Cheshvan, 5784.\n\nPerson2's Yahrzeit begins at sundown on Sunday, October 29 and continues until sundown on the day of observance. It is customary to light a memorial candle at sundown as the Yahrzeit begins.\n\nMay your loved one's soul be bound up in the bond of eternal life and may their memory serve as a continued source of inspiration and comfort to you.",
      "name": "Person2",
      "category": "yahrzeit",
      "anniversary": 15
    },
    {
      "title": "Person1's 41st Hebrew Birthday (3rd of Iyyar)",
      "date": "2024-05-11",
      "hdate": "3 Iyyar 5784",
      "memo": "Hebcal joins you in honoring Person1, whose 41st Hebrew Birthday occurs on Saturday, May 11, corresponding to the 3rd of Iyyar, 5784.\n\nPerson1's Hebrew Birthday begins at sundown on Friday, May 10 and continues until sundown on the day of observance.",
      "name": "Person1",
      "category": "birthday",
      "anniversary": 41
    }
  ]
}

Licensing

Content generated by the Hebcal.com web APIs is licensed under a Creative Commons Attribution 4.0 International License. This means that you can use you are free to copy and redistribute the material in any medium or format as long as you give appropriate credit to Hebcal.com.