๐ 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.
Generated code
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 |
|---|---|---|---|
AlosHashachar | Dawn | ืขืืืช ืืฉืืจ | 4 opinions |
EarliestTefillin | Earliest Tallit & Tefillin | ืืฉืืืืจ | 3 opinions |
NetzHachamah | Sunrise | ืื ืฅ ืืืื | Single |
LatestShema | Latest Shema | ืกืืฃ ืืื ืงืดืฉ | 3 opinions |
LatestTefillah | Latest Shacharit | ืกืืฃ ืืื ืชืคืืื | 3 opinions |
Chatzos | Midday | ืืฆืืช ืืืื | Single |
MinchahGedolah | Earliest Mincha | ืื ืื ืืืืื | 3 opinions |
MinchahKetanah | Mincha Ketanah | ืื ืื ืงืื ื | 3 opinions |
PlagHaminchah | Plag Hamincha | ืคืื ืืื ืื | 3 opinions |
Shkiah | Sunset | ืฉืงืืขืช ืืืื | Single |
Tzeis | Nightfall | ืฆืืช ืืืืืืื | 7 opinions |
FastBegins | Fast Begins (synthetic โ dawn, or eve sunset/candle-lighting) | ืชืืืืช ืืฆืื | follows source |
FastEnds | Fast Ends (minor fasts) | ืกืืื ืืฆืื | 7 opinions |
ChatzosNight | Midnight | ืืฆืืช ืืืืื | Single |
ShaahZmanit | Proportional 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-org | Organization key (required) | โ |
data-location-id | US zip code for zmanim | โ |
data-zmanim | JSON array of ZmanType strings, or "all" | none (no zmanim shown) |
data-zmanim-opinions | JSON {ZmanType: "Opinion"} overrides | API defaults |
data-subscriptions | JSON array of {name, url, color} | [] |
data-accent-color | Primary accent color | #1a73e8 |
data-bg-color | Background color | #fff |
data-text-color | Text color | #333 |
data-border-color | Border color | #e0e0e0 |
data-border-radius | Border radius | 8px |
data-max-width | Max container width | 900px |
data-event-color | Color for EasyShul event chips | #1a73e8 |
data-start-day | First day of week (0=Sun, 1=Mon) | 0 |
data-hide-hebrew | Hide Hebrew dates | false |
data-hebrew-locale | Hebrew date locale (he or en) | he |
data-hide-zmanim | Hide zmanim even if location is set | false |
data-auto-candles | Auto-show candle lighting on Fridays & holiday eves | true |
data-auto-havdalah | Auto-show Shabbat/holiday end times | true |
data-auto-fasts | Auto-show fast start & end times (FastBegins/FastEnds) | true |
data-havdalah-from-tzeis | Use Tzeis opinion for Shabbat/holiday end time | false |
data-show-parsha | Show Torah portion name in calendar cells | false |
data-show-holiday | Show holiday name in calendar cells | false |
data-show-omer | Show Sefiras HaOmer count in cells & day detail | false |
data-cell-zmanim | JSON array of ZmanType strings to show in month cells | none |
Squarespace integration
- In your Squarespace editor, click + โ Code to add a Code Block.
- Switch the display to HTML.
- Paste the code snippet above (with your org key and zip code).
- 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>