Title: HappenBoard
Author: Benjamin Denis
Published: <strong>August 17, 2026</strong>
Last modified: August 17, 2026

---

Search plugins

![](https://s.w.org/plugins/geopattern-icon/happenboard.svg)

# HappenBoard

 By [Benjamin Denis](https://profiles.wordpress.org/rainbowgeek/)

[Download](https://downloads.wordpress.org/plugin/happenboard.0.1.0.zip)

 * [Details](https://mfe.wordpress.org/plugins/happenboard/#description)
 * [Reviews](https://mfe.wordpress.org/plugins/happenboard/#reviews)
 *  [Installation](https://mfe.wordpress.org/plugins/happenboard/#installation)
 * [Development](https://mfe.wordpress.org/plugins/happenboard/#developers)

 [Support](https://wordpress.org/support/plugin/happenboard/)

## Description

**HappenBoard** is a modern, lightweight events calendar **and appointment-booking
plugin**, built from the ground up for the WordPress block editor and the Site Editor.
It uses only core WordPress components, server-rendered blocks, and clean PSR-4 
PHP 8.2 code.

It is built by the team behind [SEOPress](https://www.seopress.org/) and [MailerPress](https://www.mailerpress.com/),
with the same focus on speed, native integration, and a generous free tier.

#### Why HappenBoard

 * **Fast and SEO-friendly out of the box.** Server-rendered blocks load instantly
   and are indexed by Google — no JavaScript-only pages that hurt your rankings.
 * **Works with your theme.** Native blocks adapt to your design without custom 
   CSS, and Site Editor templates let you redesign every event page visually.
 * **Stop losing attendees.** Free RSVPs with capacity limits, email confirmations,
   automatic reminders, and a one-click cancellation link, everything your visitors
   need to actually show up.
 * **Real recurring events.** Weekly classes, monthly meetups, yearly conferences—
   set it once and HappenBoard handles every occurrence.
 * **Take appointments too.** A full booking flow in the free plugin: booking types,
   per-host weekly availability with buffers and notice windows, days off, round-
   robin assignment across unlimited hosts, group bookings, a standards-compliant`.
   ics` invite attached to every confirmation, and a token link so visitors cancel
   or reschedule themselves.
 * **Get found on Google.** Event Schema (JSON-LD) is added automatically so your
   events appear in Google’s rich event results.
 * **Move in without retyping anything.** One-click importers for The Events Calendar,
   Events Manager, Sugar Calendar, EventKoi, Amelia, and any `.ics` file — they 
   even work when the old plugin is already deactivated.
 * **No lock-in, no clutter.** Standard custom post types, REST API, and iCal feeds—
   your data stays yours and works with any tool.
 * **Familiar admin.** The same look and feel as WordPress core, so your team doesn’t
   need to learn a new interface.

#### Also in the free plugin

 * **21 blocks**, 11 patterns, and Site Editor templates for single events, the 
   events archive, category archives, single booking types, and the per-event “All
   dates” page
 * **Weather forecast** on event pages, for outdoor events (optional, powered by
   Open-Meteo)
 * **Favourites and a personal “My schedule”** so visitors can save the events they
   care about
 * **Multilingual** — WPML and Polylang, through the bundled `wpml-config.xml`
 * **GDPR-native** — real WordPress personal-data exporter and eraser, not just 
   a settings page
 * **Spam protection** — honeypot and signed timestamps by default, optional Cloudflare
   Turnstile and Akismet
 * **Site Health checks** that tell you when a cron failure is about to stop your
   reminders
 * **REST API** for every entity, **WP-CLI** commands for event creation and migrations,
   plus an Elementor widget for classic-builder sites

#### Built the WordPress way

 * PHP 8.2+ with strict types and PSR-4 autoloading
 * Vendor libraries (sabre/vobject) prefixed with Strauss — no conflict with any
   other plugin shipping the same dependency
 * PHPCS (WordPress Coding Standards), PHPStan level 5, PHPUnit test suite
 * Translation-ready (text domain `happenboard`)
 * Accessibility-aware front-end components

#### From the team

HappenBoard is built by the same team behind [SEOPress](https://www.seopress.org/)—
trusted by 300,000+ WordPress sites. Same engineering bar, same support commitments,
same long-term maintenance.

### Source code and build

HappenBoard is fully GPL and ships its complete, human-readable source inside the
plugin — nothing is obfuscated.

 * **PHP** — uncompiled PSR-4 source in `src/`. Third-party libraries are prefixed
   with [Strauss](https://github.com/BrianHenryIE/strauss) and ship readable in `
   vendor-prefixed/` (notably `sabre/vobject` for RRULE parsing).
 * **JavaScript / CSS** — the editor and admin code in `build/` is compiled with
   [`@wordpress/scripts`](https://www.npmjs.com/package/@wordpress/scripts) (webpack).
   The matching uncompiled source ships alongside it: block source in `src/blocks/`,
   the admin SPA in `assets/js/admin/`, and the post-editor scripts in `assets/js/
   post-editor/`. The build configuration (`package.json` and `webpack.config.js`)
   is included too.

To regenerate every compiled asset from source:

    ```
    npm install
    npm run build
    ```

Requires Node 20+. `npm run start` runs the same build in watch mode. PHP dependencies,
if you rebuild the prefixed tree, are managed with `composer install`.

All declarations follow WordPress prefixing rules: PHP is namespaced under `HappenBoard\`,
options/transients use the `happenboard_` prefix, post meta uses `_happenboard_`,
and taxonomies use `happenboard_` (`happenboard_category`, `happenboard_tag`). Post
types use the shorter `hboard_` prefix (`hboard_event`, `hboard_venue`, `hboard_organizer`,`
hboard_booking_type`) because WordPress caps post type names at 20 characters.

### Privacy

HappenBoard stores attendee and booking data (name, email, RSVP or appointment status)
in your own WordPress database. It collects no telemetry, requires no account, and
sends nothing anywhere by default.

Four optional features do contact a third party, and only once you turn them on:

 * **Event weather** — the event’s coordinates and date are sent to [Open-Meteo](https://open-meteo.com/)
   to fetch a forecast. No visitor or attendee data is included.
 * **Venue maps** — an embedded map loads from OpenStreetMap (default), Google Maps,
   or a custom tile provider you configure. Your visitor’s browser contacts that
   provider directly, as with any embedded map.
 * **Cloudflare Turnstile** — when enabled for the RSVP or booking forms, the submitting
   visitor’s IP address and challenge token are sent to [Cloudflare](https://www.cloudflare.com/privacypolicy/)
   for verification.
 * **Akismet** — when enabled, the submission’s name, email, IP address and user
   agent are sent to [Akismet](https://akismet.com/privacy/) for spam scoring.

All four are off unless you enable them. HappenBoard also registers with WordPress’s
own privacy tools, so a personal-data export or erasure request made through **Tools
Export/Erase Personal Data** covers the visitor’s RSVPs and tickets.

## Blocks

This plugin provides 21 blocks.

 *   Event Series — All Dates Lists every upcoming occurrence of the current recurring
   event. Renders nothing for one-shot events. Used by the Series page template 
   and the default Single Event template.
 *   Event Countdown Live countdown to the event's start time. Falls back to a static
   label when the event has started.
 *   RSVP Form Collect free RSVPs for the current event. Capacity-aware, no extra
   plugin required.
 *   My Schedule Lists the events the current visitor has saved. Empty state when
   nothing is saved. Designed for a dedicated "My schedule" page that visitors can
   bookmark.
 *   Event Date & Time Display the next occurrence date and time for the current
   event.
 *   My Bookings Lists the appointments the signed-in visitor booked, with a cancel
   action on upcoming ones. Signed-out visitors get a sign-in prompt. Bookings made
   without an account are not listed — those are managed through the link in the
   confirmation email.
 *   Events Grid Server-rendered grid of upcoming events with featured image, date,
   venue, and a link to each event.
 *   Event Categories & Tags Show the current event's categories and tags as linked
   chips.
 *   Event Organizer Display the organizer name and contact for the current event.
 *   Event Weather Show the weather for the event's date at its venue — forecast,
   observed history, or a typical-for-the-season normal.
 *   Event Venue Display the venue name and address for the current event.
 *   Event Query Loop Filterable server-rendered loop of events by date range, category,
   tag, venue, or organizer. The events-flavoured Query Loop.
 *   Events List Server-rendered list of upcoming events with date, venue, and a
   link to each event.
 *   Upcoming Events Display a server-rendered list of upcoming events.
 *   Event Description Renders the current event's content with the standard the_content
   filter applied.
 *   Save Event Button A heart / bookmark toggle so visitors can save an event to
   their personal schedule. Persists in their account when logged in, in localStorage
   otherwise.
 *   Calendar Display a server-rendered month calendar of upcoming events.
 *   Booking Types A catalogue of bookable services. Each card links to that service's
   own booking page.
 *   Booking Availability Publishes when a service is free — as a month calendar
   or a schedule list — anywhere on the site. Each time links straight into the 
   booking page with that slot pre-selected.
 *   Booking Page A self-service appointment-booking flow: pick a time, fill your
   details, get confirmed. FSE-native, no iframe.
 *   Add to Calendar One-click links to add this event to Google, Outlook, Yahoo,
   or download an .ics file.

## Installation

#### From WordPress.org

 1. Search **HappenBoard** under **Plugins  Add New** in your WordPress admin.
 2. Click **Install Now**, then **Activate**.
 3. Run the onboarding wizard that appears (general settings  email).
 4. Go to **Events  Add New** to create your first event.
 5. Insert the **Calendar** or **Upcoming Events** block into any page or template.

#### Manual upload

 1. Download the .zip from WordPress.org.
 2. Go to **Plugins  Add New  Upload Plugin**, choose the .zip, click **Install Now**.
 3. Activate and follow the onboarding wizard.

#### Requirements

 * WordPress 6.9 or newer
 * PHP 8.2 or newer
 * MySQL 5.7+ / MariaDB 10.3+ (uses standard `dbDelta`)

## FAQ

### Does this work with classic themes?

Yes. All blocks can be inserted in any post, page, or widget area. If your theme
supports the Site Editor (FSE), HappenBoard also ships matching block templates 
for single events and the event archive.

### Will this conflict with other event plugins?

No. HappenBoard uses its own post type (`hboard_event`), prefixed meta keys (`_happenboard_*`),
prefixed database tables (`happenboard_occurrences`, `happenboard_attendees`, `happenboard_bookings`,`
happenboard_availability_rules`, `happenboard_agent_log`), and prefixed third-party
libraries (`HappenBoard\Vendor\…`). You can run it alongside any other event plugin
without conflict.

### Does HappenBoard add Event schema (JSON-LD) for SEO?

Yes — automatically, on every single-event page, conforming to the [Google rich-result spec](https://developers.google.com/search/docs/appearance/structured-data/event).
If [SEOPress](https://www.seopress.org/) is active and an Event schema has been 
manually configured for the same post through SEOPress’s custom-schema feature, 
HappenBoard defers to SEOPress to avoid double emission.

### Does it support recurring events?

Yes. Recurrence is stored as a standard RFC 5545 RRULE and expanded into a persisted
occurrences table using the same library (`sabre/vobject`) that powers most calendar
servers.

### Where are attendees managed?

Under **HappenBoard  Attendees** in the admin. The screen is built on `@wordpress/
dataviews`, the same component library the Site Editor and the Posts screen use.
HappenBoard bundles its own copy, because WordPress does not register `wp-dataviews`
as a public script handle.

### Can I export translations?

Yes. The text domain is `happenboard` and the plugin is ready for translation on
translate.wordpress.org. To generate a fresh `.pot` locally, run `npm run makepot`.

### How do I completely uninstall HappenBoard and erase all its data?

By default, deleting the plugin from **Plugins  Installed Plugins  Delete** preserves
all of your data — events, attendees, occurrences, settings, taxonomy terms, and
custom capabilities all stay in the database. This is intentional, so re-installing
later restores everything as it was.

To opt in to a full wipe, add the following constant to your `wp-config.php` _before_
clicking **Delete**:

    ```
    define( 'HAPPENBOARD_UNINSTALL', true );
    ```

When that constant is set, deleting the plugin will:

 * Remove every event, venue, organizer, and booking-type post (and their post meta)
 * Remove every event category and event tag
 * Drop the custom tables `wp_happenboard_occurrences`, `wp_happenboard_attendees`,`
   wp_happenboard_bookings`, `wp_happenboard_availability_rules` and `wp_happenboard_agent_log`
 * Delete every option starting with `happenboard_` (general settings, onboarding
   flag, DB versions, etc.)
 * Delete every plugin transient
 * Clear the plugin’s scheduled WP-Cron events
 * Remove every HappenBoard custom capability from every role

The wipe is multisite-aware — on a network install it runs once per blog. After 
the uninstall completes you can remove the constant from `wp-config.php`.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“HappenBoard” is open source software. The following people have contributed to 
this plugin.

Contributors

 *   [ Benjamin Denis ](https://profiles.wordpress.org/rainbowgeek/)

[Translate “HappenBoard” into your language.](https://translate.wordpress.org/projects/wp-plugins/happenboard)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/happenboard/), check
out the [SVN repository](https://plugins.svn.wordpress.org/happenboard/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/happenboard/) by
[RSS](https://plugins.trac.wordpress.org/log/happenboard/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 0.1.0

First public release.

## Meta

 *  Version **0.1.0**
 *  Last updated **12 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.9 or higher **
 *  Tested up to **7.0.4**
 *  PHP version ** 8.2 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/happenboard/)
 * Tags
 * [appointments](https://mfe.wordpress.org/plugins/tags/appointments/)[booking](https://mfe.wordpress.org/plugins/tags/booking/)
   [calendar](https://mfe.wordpress.org/plugins/tags/calendar/)[events](https://mfe.wordpress.org/plugins/tags/events/)
   [RSVP](https://mfe.wordpress.org/plugins/tags/rsvp/)
 *  [Advanced View](https://mfe.wordpress.org/plugins/happenboard/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/happenboard/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/happenboard/reviews/)

## Contributors

 *   [ Benjamin Denis ](https://profiles.wordpress.org/rainbowgeek/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/happenboard/)