๐Ÿ“… Calendar Widget

Embed a full monthly calendar into any website (Squarespace, Wix, WordPress, plain HTML) with a single <script> tag. Shows your EasyShul events, Hebrew dates, halachic times (zmanim), and additional calendar subscriptions โ€” all merged into one view.

๐Ÿ› ๏ธ Code generator

Fill in the options below and copy the generated HTML snippet.

Required
Your *.easyshul.com subdomain
Zmanim (halachic times)
US zip code for zmanim. Leave blank to hide zmanim.
Checked = included. None are selected by default. Candle lighting and Shabbat ends are auto-included.
When checked, the "Shabbat Ends" time uses the Tzeis opinion from the opinion overrides section below.
Show compact zmanim times directly in the calendar day cells. Leave all unchecked for none.
Override the default halachic opinion for specific zmanim.
Hebrew dates
External calendar subscriptions
Merge events from other iCal calendars (Google, Outlook, etc.)
Appearance

Generated code


    
Also see the Embed Widget for single event/form cards.

Quick start

Paste this into your page's HTML:

<div id="es-calendar"></div>
<script src="{base}/embed/calendar.js"
  data-org="mercazseattle"
></script>

That's it! The widget renders a monthly calendar grid with your EasyShul events. Click any day to see event details.

Adding zmanim (halachic times)

Set data-location-id to a US zip code to show daily zmanim from Chabad.org. The day detail panel will include sunrise, sunset, and other times.

<div id="es-calendar"></div>
<script src="{base}/embed/calendar.js"
  data-org="mercazseattle"
  data-location-id="98115"
></script>

Selecting which zmanim to show

No zmanim are shown by default. Use data-zmanim to choose which ones to display. Set it to "all" to show all 13 zmanim types. Candle lighting, Shabbat/holiday end times, and fast start/end times are auto-included when present (controlled by data-auto-candles, data-auto-havdalah, and data-auto-fasts).

<script src="{base}/embed/calendar.js"
  data-org="mercazseattle"
  data-location-id="98115"
  data-zmanim='["AlosHashachar","NetzHachamah","LatestShema","Chatzos","MinchahGedolah","Shkiah","Tzeis"]'
></script>

Available ZmanTypes

ZmanType Title Hebrew Opinions
AlosHashacharDawnืขืœื•ืช ื”ืฉื—ืจ4 opinions
EarliestTefillinEarliest Tallit & Tefillinืžืฉื™ื›ื™ืจ3 opinions
NetzHachamahSunriseื”ื ืฅ ื”ื—ืžื”Single
LatestShemaLatest Shemaืกื•ืฃ ื–ืžืŸ ืงืดืฉ3 opinions
LatestTefillahLatest Shacharitืกื•ืฃ ื–ืžืŸ ืชืคื™ืœื”3 opinions
ChatzosMiddayื—ืฆื•ืช ื”ื™ื•ืSingle
MinchahGedolahEarliest Minchaืžื ื—ื” ื’ื“ื•ืœื”3 opinions
MinchahKetanahMincha Ketanahืžื ื—ื” ืงื˜ื ื”3 opinions
PlagHaminchahPlag Haminchaืคืœื’ ื”ืžื ื—ื”3 opinions
ShkiahSunsetืฉืงื™ืขืช ื”ื—ืžื”Single
TzeisNightfallืฆืืช ื”ื›ื•ื›ื‘ื™ื7 opinions
FastBeginsFast Begins (synthetic โ€” dawn, or eve sunset/candle-lighting)ืชื—ื™ืœืช ื”ืฆื•ืfollows source
FastEndsFast Ends (minor fasts)ืกื™ื•ื ื”ืฆื•ื7 opinions
ChatzosNightMidnightื—ืฆื•ืช ื”ืœื™ืœื”Single
ShaahZmanitProportional Hourืฉืขื” ื–ืžื ื™ืช3 opinions

Choosing a halachic opinion

Each zman can have multiple halachic opinions (the API returns a default for each). Use data-zmanim-opinions to override which opinion is shown per zman type. The value is a JSON object mapping ZmanType to the opinion name.

<script src="{base}/embed/calendar.js"
  data-org="mercazseattle"
  data-location-id="98115"
  data-zmanim-opinions='{
    "LatestShema": "Magen Avraham",
    "Tzeis": "Rabeinu Tam"
  }'
></script>

Common opinion names

ZmanType Available opinions (use exact string)
AlosHashachar Alter Rebbe (Default), Alter Rebbe (Rav Chaim No'eh), Minhag Eretz Yisroel (Rabbi Y.M. Tukachinsky; Nivreshes), Alter Rebbe (Other) & Gra
LatestShema Alter Rebbe (Default), Magen Avraham, Alter Rebbe (Other) and Gra
LatestTefillah Alter Rebbe (Default), Magen Avraham, Alter Rebbe (Other) and Gra
Tzeis Alter Rebbe (Default), Rabeinu Tam, Rabbi Y. M. Tukachinsky; Igros Moshe, Melamed L'Ho'il, + 3 more
ShabbatEndTime (Default), Rabeinu Tam

If a specified opinion is not found for a given day (e.g. edge cases), the widget falls back to the API default opinion automatically.

External calendar subscriptions

Merge events from other iCal calendars (Google Calendar, Outlook, etc.) into the same view. Each subscription needs a name, URL, and color.

<script src="{base}/embed/calendar.js"
  data-org="mercazseattle"
  data-subscriptions='[
    {"name": "Google", "url": "https://calendar.google.com/calendar/ical/.../basic.ics", "color": "#e67c73"},
    {"name": "Outlook", "url": "https://outlook.office365.com/owa/calendar/.../calendar.ics", "color": "#0078d4"}
  ]'
></script>

External calendars are fetched via the server's /api/ical-proxy endpoint to avoid CORS issues. Only HTTPS URLs are accepted.

Full example

<div id="es-calendar"></div>
<script src="{base}/embed/calendar.js"
  data-org="mercazseattle"
  data-location-id="98115"
  data-zmanim='["NetzHachamah","LatestShema","Chatzos","PlagHaminchah","Shkiah","Tzeis"]'
  data-zmanim-opinions='{"Tzeis": "Rabeinu Tam"}'
  data-subscriptions='[{"name": "Community", "url": "https://example.com/community.ics", "color": "#43a047"}]'
  data-accent-color="#2555ef"
  data-max-width="800px"
  data-hebrew-locale="he"
></script>

Customization reference

Attribute Description Default
data-orgOrganization key (required)โ€”
data-location-idUS zip code for zmanimโ€”
data-zmanimJSON array of ZmanType strings, or "all"none (no zmanim shown)
data-zmanim-opinionsJSON {ZmanType: "Opinion"} overridesAPI defaults
data-subscriptionsJSON array of {name, url, color}[]
data-accent-colorPrimary accent color#1a73e8
data-bg-colorBackground color#fff
data-text-colorText color#333
data-border-colorBorder color#e0e0e0
data-border-radiusBorder radius8px
data-max-widthMax container width900px
data-event-colorColor for EasyShul event chips#1a73e8
data-start-dayFirst day of week (0=Sun, 1=Mon)0
data-hide-hebrewHide Hebrew datesfalse
data-hebrew-localeHebrew date locale (he or en)he
data-hide-zmanimHide zmanim even if location is setfalse
data-auto-candlesAuto-show candle lighting on Fridays & holiday evestrue
data-auto-havdalahAuto-show Shabbat/holiday end timestrue
data-auto-fastsAuto-show fast start & end times (FastBegins/FastEnds)true
data-havdalah-from-tzeisUse Tzeis opinion for Shabbat/holiday end timefalse
data-show-parshaShow Torah portion name in calendar cellsfalse
data-show-holidayShow holiday name in calendar cellsfalse
data-show-omerShow Sefiras HaOmer count in cells & day detailfalse
data-cell-zmanimJSON array of ZmanType strings to show in month cellsnone

Squarespace integration

  1. In your Squarespace editor, click + โ†’ Code to add a Code Block.
  2. Switch the display to HTML.
  3. Paste the code snippet above (with your org key and zip code).
  4. Click Apply and Save.

The calendar renders inline inside the code block โ€” no iframe needed.

CSS overrides

All widget elements are scoped under the .es-calendar class. You can add custom CSS in your page to tweak any aspect:

<style>
/* Wider cells on desktop */
.es-cal-day { min-height: 100px; }

/* Larger Hebrew dates */
.es-cal-hdate { font-size: 0.85em; }

/* Always show Hebrew on mobile */
@media(max-width:600px) {
  .es-cal-hdate { display: block !important; }
}
</style>