WP Manifestindependent plugin directory
manifest / events / steady-calendar

Steady Calendar

WordPress plugin: Google Calendar or any iCal link on your site — merged calendars, busy-only privacy, free-slot booking requests, e-mail alerts when sync stops. Lightweight alternative to Simple Calendar.

★ 0stars

Install

Download source zip No release zip yet

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.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

A 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 Event markup 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

  1. Download this repository as a ZIP. The folder inside must be named steady-calendar.
  2. In WordPress, go to Plugins → Add New → Upload Plugin and upload the ZIP.
  3. Open Steady Calendar in the admin menu. Either paste an iCal link, or connect a Google account.
  4. 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.