Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/rem700/steady-calendar/archive/refs/heads/main.zipA WordPress plugin that shows Google Calendar or any iCal / ICS / webcal link on your site. It can also show only your free time for bookings. The connection is built to stay up, and you get an e-mail when it doesn't.
It is meant as a more reliable, better-looking alternative to Simple Calendar and similar plugins.
Features
Sources
- Calendar links work without any Google setup. That covers Outlook, Apple iCloud, Airbnb, Booking.com, Teamup, public holiday feeds and anything else that publishes iCal.
- Google Calendar can be connected with your own OAuth client. Access is read-only. Changes arrive almost instantly through push notifications, with a sync every 15 minutes as a fallback.
- Several calendars can be merged into one view. Each keeps its own colour, and the legend has on/off toggles.
- A full RFC 5545 parser handles:
- recurring events: RRULE, EXDATE, RDATE and RECURRENCE-ID overrides;
- time zones, including Windows and Outlook names;
- VTIMEZONE and X-WR-TIMEZONE;
- Outlook "free" status.
Privacy
- Each calendar can be set to show events, show only "Busy", or be hidden. A hidden calendar still blocks free slots.
- Calendar addresses never appear in the page.
- Secrets and tokens are encrypted at rest with libsodium.
Display
- Gutenberg block Steady Calendar and the
[steady_calendar]shortcode. - Views:
- month, week, day and list views, with a switcher;
- list view on phones;
- clicking a date opens that day.
- The time grid can be limited to working hours, for example 10:00–18:00 in 2-hour rows. Rows are labelled as ranges.
- The calendar adapts to its container width instead of the screen width.
- Out of the box it takes fonts and colours from the theme. Detailed styling options exist site-wide, per block, or as shortcode attributes, plus custom CSS.
- An event dialog with "Add to my Google Calendar".
- Events can be renamed per calendar. For example, a holiday feed can be translated for one language version of the site.
Bookings
- A free-slots view shows visitors when you are free, but never your events.
- Requests come in by e-mail, WhatsApp, Telegram, Instagram or your own booking link, with the date and time already filled in.
Reliability
- An e-mail alert is sent when the calendar stops updating, and another when it works again. It covers a lost Google connection, a failing link, or stopped WP-Cron.
- The admin page shows a clear connection status and explains errors in plain language.
Performance and SEO
- Scripts load only when the calendar scrolls into view.
- Events are cached locally, so the site doesn't call Google on every page view.
- Schema.org
Eventmarkup is added for search results.
Requirements
- WordPress 6.4 or later
- PHP 7.4 or later, with the sodium extension, which is standard since PHP 7.2
Installation
- Download this repository as a ZIP. The folder inside must be named
steady-calendar. - In WordPress, go to Plugins → Add New → Upload Plugin and upload the ZIP.
- Open Steady Calendar in the admin menu. Either paste an iCal link, or connect a Google account.
- Add the Steady Calendar block to a page, or use the shortcode:
[steady_calendar]
Translations
The plugin ships with English, German, Hungarian, Russian and Ukrainian. On multilingual sites, such as ones using Polylang, each language version of a page can show its own calendar.
External services
- Google OAuth and the Calendar API are used only if you connect a Google account.
- The iCal links you add are downloaded from the servers they point to.
- No external scripts or fonts are loaded on the front end.
See readme.txt for details.
Credits
- FullCalendar is bundled under the MIT licence in
assets/vendor/fullcalendar.
License
GPL-2.0-or-later. See LICENSE.