Your comments

Glad you got it working.


Yes, the major difference is parameters to control options. The Shabbat API attempts to keep things extremely simple (which means less flexibility). The Jewish calendar API is much more full-featured.

Hi, quick response: yes, indeed, this is by design. The Shabbat API always displays both Friday and Saturday, even if Friday has already passed.

No, there is no way to change this behavior.

If you want more control over date ranges use our Jewish calendar API and specify start and end parameters. The returned JSON is nearly identical to the Shabbat API so it should be easy to transition to this alternate API

https://www.hebcal.com/home/195/jewish-calendar-rest-api

Thanks for posting Evan!

We were curious so we did a bit more investigation on our end and actually we were able to reproduce your original problem on a Windows 11 PC using Excel 2021. Much to our huge surprise, a current version of Windows and a current version of Excel continue to have this issue. They are not handling UTF-8 (Unicode) CSV files correctly!

To help to remedy this situation, we have made a change to our CSV file export. We now include a Unicode Byte Order Mark at the beginning of the CSV file which helps Windows to detect that the CSV file contains Unicode data. This should improve CSV file imports for Hebrew and other languages the Hebcal.com website supports (Russian, Spanish, French, Polish, Hungarian, etc)

If you download a fresh CSV file from Hebcal.com today you may find that the Hebrew text now shows up correctly in Excel. (You may need to download it again in an Incognito/Private browser window to ensure that you aren't getting a cached version of the file.)

Hi, thanks for using Hebcal. We're sorry to hear that you're having difficulty getting a Google Calendar subscription feed to update after making changes on the Hebcal website.

Google Calendar is designed to refresh our calendars periodically. It usually takes 24 hours for changes to reflect, and in some cases may take up to 7 days for the calendar to update on the Google Calendar side.

I'll leave this question open for now and check back in a week to confirm that indeed the Google Calendar update has happened.

Thanks for writing back and thanks for providing that additional detail! I am glad to hear that The Events Calendar can correctly import Unicode CSV files even if Windows 7 cannot.


For what it's worth, we have tested the majority of the Hebcal.com website and download functionality on Windows 10 and Windows 11 so we are confident that it shows up correctly on those operating systems.


At this point Windows 7 is no longer supported by Microsoft, so perhaps the best long-term solution here is for you to upgrade your home PC to a newer version?

Thanks for using Hebcal. Sorry to hear you are having difficulty with Hebrew text in a CSV file export.

Perhaps you might be able to use another format, such as iCalendar? What program are you using to import the files into?

Also, what version of Windows on your PC?

OK, we have modified the server configuration to respect Cache-Control: no-cache. The change is live in production.

Just to reiterate the point made earlier: given the design of the Shabbat API, your application should not need to send that header in order to operate correctly. The Shabbat API is designed to serve the current week's results through Sunday at midnight in the timezone of the city specified by the geonameid parameter. The Expires header is set explicitly so our caching servers reduce load on our app servers while preserving full functionality for clients like yours.

You can, of course, feel free to send the header, and it will now do as you expect: it will bypass our caching layer and force our app server to recalculate the current week's Shabbat info.

Hi, thanks for contacting Hebcal. This sounds like a superb project!

You can definitely use our APIs to do all of what you describe above. Our licensing supports this and this 100% lines up with our mission to help help Jews to be observant of the mitzvot.

If you're planning to implement this with our web APIs, here are some pointers for what you'll want to use

If you want to build your application entirely in JavaScript and want to avoid the Internet connectivity requirement for the REST API calls, you can also build the same product using our JS native APIs. The @hebcal/core package will do all of the above.

Here are the JavaScript equivalent APIs


We're aware of one company using Hebcal APIs to do this already; it's called Yahrzeitronix and their product is called YahrDisplay.

If for some reason you run into any issues, please let us know.

Hi, thanks for using Hebcal.

The short answer is that yes, you're receiving data that's 2 days old, but is still 100% correct with respect to what the Shabbat API is trying to do. Here are the headers we see when requesting that URL.

HTTP/2 200 
server: nginx/1.18.0 (Ubuntu)
date: Tue, 30 Aug 2022 16:45:32 GMT
content-type: application/json; charset=utf-8
content-length: 2447
vary: Accept-Encoding
etag: W/"1c9-JWtHF6a7KHzEBkekWL2HWbypsK0"
last-modified: Sun, 28 Aug 2022 09:46:10 GMT
expires: Sat, 03 Sep 2022 22:00:00 GMT
x-response-time: 3.829ms
x-varnish: 83568151 65035843
age: 197961
via: 1.1 varnish (Varnish/6.6)
access-control-allow-origin: *
accept-ranges: bytes

This is actually what we expect to see. The content is valid until 

Sat, 03 Sep 2022 22:00:00 GMT

Which is midnight Sunday in your timezone.

The longer answer is that our server config isn't respecting Cache-control: no-cache and we should fix that.

Update: we have identified the error and fixed it. You should have received a corrected reminder email for the event occurring in one week.


Our sincere apologies again for the error.