WP Manifestindependent plugin directory
manifest / events / blockendar

Blockendar - Events and Calendars WP Registry grade A. No security issues foundWP RegistryNo security issues foundOpen the reportA

★ 1stars
83release downloads
≈10active sites
v2.3.0latest · 12d ago

Install

Download blockendar.zip From the v2.3.0 release on GitHub, Oct 11, 2026

Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/philhoyt/blockendar/releases/download/v2.3.0/blockendar.zip
Updates itself. It ships its own updater (Plugin Update Checker), so new versions appear under Dashboard → Updates.

A block-native WordPress events plugin.

Features

  • Block-based event editor — Date & time, recurrence, venue, cost, registration, and status managed through dedicated block editor sidebar panels
  • Recurring events — Full recurrence rule support (daily, weekly, monthly, yearly) with exceptions, custom additions, and a rolling horizon cron job
  • Calendar View block — Interactive FullCalendar-powered calendar with day, week, and month views; exposes a valid iCal feed
  • Events Query block — Flexible query block for custom event displays; shows individual occurrences of recurring events with correct dates and occurrence-aware links
  • 7 single-event blocks — Date/time, venue, cost, status, countdown, map, add-to-calendar
  • Custom database layer — All date range queries run against a dedicated indexed table ({prefix}blockendar_events)
  • REST API — Full read/write API under blockendar/v1, including iCal feed and index rebuild endpoints
  • Venues — Taxonomy with rich meta (address, coordinates, capacity, website) and inline venue creation in the editor
  • Admin settings — Date/time formats, timezone mode, calendar defaults, map provider, currency, recurrence horizon, and more
  • GitHub-based updates — Automatic update notifications in wp-admin via tagged releases

Requirements

Minimum Tested up to
WordPress 6.8 7.1
PHP 8.1 8.1

Installation

  1. Go to the Releases page and download the latest blockendar.zip asset.
  2. In your WordPress admin, go to Plugins → Add New Plugin → Upload Plugin.
  3. Choose the downloaded .zip file and click Install Now.
  4. Click Activate Plugin.

Development

npm run start        # Watch mode
npm run build        # Production build
npm run lint:js      # JS lint
npm run lint:css     # CSS lint
npm run lint:php     # PHP lint (WPCS)
npm run lint:php:fix # Auto-fix PHP lint issues
npm run plugin-zip   # Build distributable zip

Architecture

  • Namespace: Blockendar\ → includes/ (PSR-4)
  • REST namespace: blockendar/v1
  • CPT: blockendar_event (authoring only — never queried by date via WP_Query)
  • Taxonomies: event_type (hierarchical), event_tag (flat), event_venue (hierarchical)
  • DB tables: {prefix}blockendar_events (occurrence index), {prefix}blockendar_recurrence (RRULE storage)

Privacy

Blockendar stores no personal data about site visitors — no names, email addresses, or IP addresses, and no cookies.

Two third-party requests to OpenStreetMap are possible:

  • Geocoding (admin, on demand). The "Look up coordinates" button on the venue edit screen sends the venue address to Nominatim to resolve it to latitude and longitude. It runs from the browser only when clicked; entering coordinates manually sends nothing.
  • Map tiles (front end). The Event Map block loads tiles from tile.openstreetmap.org in the visitor's browser when a map is displayed.

See the OpenStreetMap privacy policy.

Changelog

1.2.0

  • Added: a separate event template per layout — list and grid can each show their own blocks. Splitting is opt-in per block, so existing content is untouched.
  • Added: a WordPress Playground demo blueprint, so the plugin can be tried in a browser.
  • Changed: switching between list and grid no longer reloads the page.
  • Changed: the view switcher's starting layout follows the Events Query block. The separate Default view control is gone — it was what let the two disagree.
  • Changed: every Events Query starts with an Event Template container, matching the core Query Loop's Post Template.
  • Changed: the view switcher draws real SVG icons, in the editor preview as well as the front end.
  • Fixed: undoing a list/grid change in the editor did not revert it, and left the page permanently unsaved
  • Fixed: splitting a template dropped the list template and rendered every layout through the grid one
  • Fixed: splitting a template could fail with an error and corrupt the block tree
  • Fixed: "No events found." appeared beneath every event in editor previews

1.1.0

  • Added: Events View Switcher block — visitors can switch the event list between list and grid layouts. The choice travels in the URL, and the control works without JavaScript.
  • Added: filter blocks for event type, venue and date range, each as a dropdown with its choices in a panel.
  • Added: base styling for all filter controls, taking colour from the theme.
  • Added: a translation template (languages/blockendar.pot).
  • Changed: the Event Type and Venue filters now default to their dropdown style. Blocks where the style was never chosen explicitly will switch from a list to a dropdown on upgrade.
  • Changed: the Date Range filter shows a calendar directly in its dropdown, and dates apply on Apply rather than as you click.
  • Changed: the Event Type and Venue filters list only terms that have upcoming events.
  • Changed: the Events Query block previews real events in the editor instead of grey placeholder bars.
  • Fixed: the Event Type filter never actually filtered anything
  • Fixed: filter blocks collapsed to zero width inside a Row block
  • Fixed: the date picker opened far below its field, and closing it reloaded the page
  • Fixed: a backwards date range showed "no events found" instead of the range you meant
  • Fixed: the filter blocks' own stylesheets were never loaded on the front end
  • Fixed: an invalid datetime attribute on single-day events with an end time
  • Fixed: filter parameters given as arrays in a URL could select the wrong term
  • Performance: calendar front-end script 263 KB → 5 KB, and event queries are now cached
  • Tested up to WordPress 7.1

1.0.1

  • Fixed: event titles containing & were displayed as & in the Calendar View block

1.0.0

  • Event Cost block: added Show Cost and Show Button toggles; removed unused min/max cost, currency, and capacity meta fields
  • Event Venue block: support for multiple venue terms with horizontal rule dividers; removed redundant Show Map toggle (use the dedicated Event Map block instead)
  • Event Map block: support for multiple venue pins with automatic bounds fitting
  • Event Countdown block: added three-state display — counting down, started (event in progress), and passed (after end time)
  • Venue admin: added "Look up coordinates" button using Nominatim (OpenStreetMap) geocoding — no API key required
  • Removed Google Maps integration — all map and geocoding features now use OpenStreetMap/Nominatim exclusively
  • Performance: replaced wp_postmeta subqueries for featured and hide_from_listings with denormalised columns in the event index table
  • Performance: replaced JSON_CONTAINS type-term filtering with a dedicated junction table (blockendar_event_type_terms)
  • DB schema upgraded to version 2; existing sites will rebuild the event index automatically on upgrade

0.10.0

  • Calendar View block: automatically switches to list view on mobile (≤767px)
  • Calendar View block: view switcher buttons hidden on mobile (≤767px)
  • Calendar View block: toolbar buttons smaller below 425px
  • Calendar View block: toolbar title right-aligned below 425px
  • Calendar View block: list event time allowed to wrap below 425px

0.9.9

  • Added Plugin Update Checker (v5.6) for automatic update notifications via GitHub releases

0.9.8

  • Added blockendar/events-query-no-results block: a customisable empty-state block for the Events Query block, matching the pattern of core/query-no-results
  • Events Query block: block spacing (gap) now respects the spacing preset selected in the editor, including "None" to remove all gap
  • Events Query block: No Results - Events Query block is included in the default template

0.9.7

  • Events Query block: added responsive column controls for grid layout — separate column counts for mobile (≤599px), tablet (600–781px), and desktop

0.9.6

  • Event Date & Time block: editor preview now reads date/time format from Blockendar settings via the WordPress data layer (fixes preview showing WP core format instead of plugin setting)
  • Event Date & Time block: added block-level date format, time format, date/time separator, and range separator overrides in a new Format inspector panel
  • Event Date & Time block: fixed "All day" label displaying when Show start time is disabled
  • Editor: replaced deprecated __experimentalGetSettings with stable getSettings from @wordpress/date
  • Editor: added __next40pxDefaultSize to all SelectControl instances in the event editor sidebar panels

0.9.5

  • REST API: enforce rest_public / rest_feed_token settings across all public GET endpoints (events, calendar, iCal)
  • Fixed: PHP fatal "Cannot redeclare" when two event-cost blocks appear on the same page (e.g. inside a Query Loop)
  • Fixed: calendar-view fetch now checks HTTP status before parsing JSON, passing errors to FullCalendar's failure handler
  • Added PHPUnit + Jest test suites covering the recurrence engine and JS utilities
  • Added WP-CLI wp blockendar rebuild-index command
  • Added search keywords to 7 blocks for improved block inserter discoverability
  • Lint: fixed all JS and PHP code style warnings

0.9.4

  • Events Query block now supports a "Related events" mode (same type / same venue / both); replaces the standalone Related Events block
  • Removed the Related Events block
  • Event Countdown block reworked: fixed garbled segment display, full unit labels, format picker, pin-to-any-event selector, improved editor preview
  • Added full color, typography, spacing, border, and dimensions supports to Event Countdown
  • Fixed: plugin header version was mismatched with the BLOCKENDAR_VERSION constant
  • Fixed: uninstalling the plugin now correctly clears the WP-Cron schedule even if the plugin was not deactivated first
  • Fixed: venue name is now HTML-escaped before being passed to the Leaflet map popup, preventing potential XSS
  • Fixed: event-countdown timer is stopped when its element is removed from the DOM, preventing detached-element leaks
  • Fixed: all-day events now store an exclusive end boundary (DATE+1 00:00:00) in the index, matching RFC 5545 and improving range-query accuracy (requires an index rebuild after updating)
  • Added inline warning in the Event Details panel when min cost exceeds max cost

0.9.3

  • Reworked Date & Time editor panel — new field order (start date → start time → end time → end date), smart defaults, end date/time safeguards, and past-date prevention on the start date field
  • Recurrence preset labels are context-aware and derived from the selected start date ("Weekly on Thursday", "Monthly on the third Thursday", "Annually on March 13")
  • Fixed: recurring events auto-save their recurrence rule when the post is updated — no separate save step required
  • Fixed: changing a recurrence preset now marks the post dirty, activating the Update button immediately
  • Calendar View event pills use contrast-color() (CSS Color Level 6) for automatic black/white text contrast against the event type background colour
  • Added blockendar_recurrence_preset post meta field (REST-exposed) as a dirty-state proxy for recurrence changes

0.9.2

  • Occurrence-aware routing — calendar chip links include ?occurrence_date=YYYY-MM-DD; single-event blocks (event-datetime, event-countdown, add-to-calendar) display the clicked occurrence rather than always defaulting to the next upcoming one
  • Events Query block now shows each occurrence in the queried range as its own list item with correct dates and permalinks; removed post-ID deduplication
  • Calendar View block editor placeholder replaced with a live settings summary
  • Added recurrence save/delete REST endpoints (POST/DELETE /blockendar/v1/events/{id}/recurrence)
  • Removed the event-list block (superseded by events-query)
  • Removed Published Date column from the Events admin list table

0.9.1

  • Recurrence fields merged into the Date & Time editor panel
  • Removed custom Venue editor panel — uses native taxonomy panel; venue details managed via term editor
  • Added ABSPATH guard to all PHP files
  • Simplified plugin URL constants — replaced symlink-aware IIFE with direct plugins_url() calls
  • Fixed stale editorStyle and interactivity flags in calendar-view and event-list block.json
  • Plugin zip now correctly includes the templates/ directory
  • Added Git Updater headers for automatic update notifications via tagged GitHub releases
  • Added languages/ directory; bumped Tested up to: 6.9

0.9.0

  • Initial public release candidate

License

GPL-2.0-or-later — see LICENSE.

Releases

Newest 25 of 30 recorded releases. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
v2.3.0 latest
Oct 11, 2026 12d ago
blockendar.zip +2 assets
5
blockendar.zip4
blockendar_demo.zip1
readme.txt0
Oct 5, 2026 17d ago
blockendar.zip +2 assets cohort
8
blockendar.zip7
blockendar_demo.zip1
readme.txt0
Oct 5, 2026 17d ago
blockendar.zip +2 assets
3
blockendar.zip2
blockendar_demo.zip1
readme.txt0
Oct 4, 2026 18d ago
blockendar.zip +2 assets
2
blockendar.zip2
blockendar_demo.zip0
readme.txt0
Oct 4, 2026 18d ago
blockendar.zip +2 assets
0
blockendar.zip0
blockendar_demo.zip0
readme.txt0
Sep 25, 2026 27d ago
blockendar.zip +2 assets
5
blockendar.zip5
blockendar_demo.zip0
readme.txt0
Sep 25, 2026 27d ago
blockendar.zip +2 assets
1
blockendar.zip1
readme.txt0
blockendar_demo.zip0
Sep 24, 2026 28d ago
blockendar.zip +2 assets
3
blockendar.zip3
blockendar_demo.zip0
readme.txt0
Sep 24, 2026 29d ago
blockendar.zip +2 assets
1
blockendar.zip1
readme.txt0
blockendar_demo.zip0
Sep 23, 2026 29d ago
blockendar.zip +2 assets
3
blockendar.zip3
readme.txt0
blockendar_demo.zip0
Sep 23, 2026 29d ago
blockendar.zip +2 assets
3
blockendar.zip3
blockendar_demo.zip0
readme.txt0
Sep 22, 2026 1mo ago
blockendar.zip +2 assets
3
blockendar.zip3
blockendar_demo.zip0
readme.txt0
Sep 22, 2026 1mo ago
blockendar.zip +2 assets
5
blockendar.zip3
blockendar_demo.zip2
readme.txt0
Sep 22, 2026 1mo ago
blockendar.zip +1 asset
4
blockendar.zip4
readme.txt0
Sep 22, 2026 1mo ago
blockendar.zip +1 asset
6
blockendar.zip6
readme.txt0
Sep 22, 2026 1mo ago
blockendar.zip +1 asset
1
blockendar.zip1
readme.txt0
Sep 21, 2026 1mo ago
blockendar.zip +1 asset
1
blockendar.zip1
readme.txt0
Sep 18, 2026 1mo ago
blockendar.zip +1 asset
6
blockendar.zip6
readme.txt0
Sep 1, 2026 1mo ago
blockendar.zip +1 asset
6
blockendar.zip6
readme.txt0
Aug 20, 2026 2mo ago
blockendar.zip +1 asset
5
blockendar.zip5
readme.txt0
Apr 9, 2026 6mo ago
blockendar.zip +1 asset
0
blockendar.zip0
readme.txt0
Apr 1, 2026 6mo ago
blockendar.zip +1 asset
1
blockendar.zip1
readme.txt0
Mar 31, 2026 6mo ago
blockendar.zip +1 asset
1
blockendar.zip1
readme.txt0
Mar 31, 2026 6mo ago
blockendar.zip +1 asset
0
blockendar.zip0
readme.txt0
Mar 17, 2026 7mo ago
blockendar.zip
1
All releases on GitHub →

Active-site estimate ≈10 comes from the v2.2.0 cohort. Method.

A grade

Security

Blockendar - Events and Calendars 2.3.0 · audited by WP Registry

No security issues found.

Audited release
2.3.0
Findings
none
Worst severity
—
Content hash
b04634a11413de6d7a84dc79…

WP Registry hashes the installable build and reports on that exact bytes-for-bytes copy. Embargoed findings are withheld until they are disclosed, so a clean verdict means nothing public is outstanding. WP Manifest does not audit code itself.