A responsive Hebrew calendar for WordPress websites that displays Hebrew holidays, Torah portions, and custom blog post events. Built with FullCalendar v5.11.3 and the Hebcal API.
- ✅ Responsive Design - Works perfectly on Desktop, Tablet, and Mobile devices
- ✅ Hebrew Events - Automatically fetches holidays and Torah portions from Hebcal API
- ✅ Custom Blog Posts - Add your own events that link to blog posts
- ✅ Interactive - Hover tooltips, clickable events, and multiple view modes
- ✅ Color-Coded - Different colors for Torah portions, holidays, and blog posts
- ✅ Lightweight - Uses CDN links, no heavy plugins needed
- Open the
Calendar.jsfile in this repository - Copy ALL the code (all 262 lines)
- Log in to your WordPress admin panel
- Go to the page where you want the calendar to appear
- Click Edit (using your page builder - e.g., WPBakery, Elementor, etc.)
- Add a Custom HTML block
- Paste the entire calendar code into the Custom HTML block
Click Save and then Publish. Your calendar should now appear on your page!
Located near the top of the <style> section (around line 155):
#hebrew-calendar {
max-width: 1100px !important; /* Change maximum width */
height: 550px; /* Change height for desktop */
}Responsive Sizes by Device:
- Desktop (1024px+):
max-width: 1100px&height: 550px - Tablet (768px-1023px):
max-width: 95%&height: 500px - Mobile (<768px):
max-width: 100%&height: auto
In the <style> section, you can modify:
/* Border & Shadow */
#hebrew-calendar {
border: 2px solid #333; /* Change border color/width */
border-radius: 8px; /* Change rounded corners */
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4); /* Change shadow */
}
/* Hover Effect */
#hebrew-calendar:hover {
box-shadow: 0 4px 15px rgba(168, 23, 16, 0.6); /* Hover shadow color */
}These can be modified in the events: callback function (around line 42):
if (item.category === 'holiday') {
eventColor = '#e74c3c'; // Red for holidays - CHANGE THIS
} else if (item.category === 'parashat') {
eventColor = '#3498db'; // Blue for Torah portions - CHANGE THIS
}Legend Colors (matching event colors, around line 122):
<div><span style="background: #3498db;"></span>Torah Portions</div>
<div><span style="background: #e74c3c;"></span>Holidays</div>
<div><span style="background: #337786;"></span>Blog Posts</div>Blog posts appear on specific dates on the calendar. They are stored in the customEvents array and link to your blog posts (opening on the same page).
- Find the
customEventsarray (around line 25):
var customEvents = [
// Example: { title: 'My Blog Post Title', start: '2026-01-03', url: 'https://example.com/blog-post', category: 'blog' }
// Add more custom events below this line:
];- Add a new blog post entry following this format:
var customEvents = [
{ title: 'My First Blog Post', start: '2026-01-03', url: 'https://example.com/blog-post-1', category: 'blog' },
{ title: 'My Second Blog Post', start: '2026-02-15', url: 'https://example.com/blog-post-2', category: 'blog' },
{ title: 'My Third Blog Post', start: '2026-03-22', url: 'https://example.com/blog-post-3', category: 'blog' }
];Each blog post event has these fields:
| Field | Description | Example |
|---|---|---|
title |
Blog post title (displayed on calendar) | 'Parashat Vayigash Insights' |
start |
Date in YYYY-MM-DD format | '2026-01-03' |
url |
Full URL to your blog post | 'https://graftedinagain.com/blog/vayigash' |
category |
Always use 'blog' for blog posts |
'blog' |
Important:
- Dates must be in
YYYY-MM-DDformat - Always include
category: 'blog' - URLs should be the full link including
https://
| Event Type | Color | Opens In | Details |
|---|---|---|---|
| Torah Portions | Blue #3498db |
New Tab | Links to Hebcal commentary |
| Holidays | Red #e74c3c |
N/A | No link - informational only |
| Blog Posts | Teal #337786 |
Same Page | Your custom events |
Users can switch between:
- Month View - See entire month at once
- Week View - See week details
- List View - See events in list format
Navigation buttons appear at the top of the calendar.
- Make sure you're using a Custom HTML block (not a text block)
- Check that all code was copied correctly
- Clear your browser cache
- Check your internet connection (calendar fetches from Hebcal API)
- Verify dates are in
YYYY-MM-DDformat - Make sure blog post URLs are complete with
https://
- Calendar automatically adjusts for mobile
- Font sizes and heights are optimized for smaller screens
- Try rotating your device to see different layouts
For issues with the Hebcal API, visit: https://www.hebcal.com/
For FullCalendar documentation, visit: https://fullcalendar.io/
Calendar_Page/
├── Calendar.js # Main calendar file (paste this into WordPress)
├── README.md # This file
└── .eslintrc.json # ESLint configuration (development only)
This calendar uses:
- FullCalendar - MIT License (https://fullcalendar.io/)
- Hebcal API - Free & Open Source (https://www.hebcal.com/)
Last Updated: November 11, 2025 Version: 1.0
