Bluecadet Events WP Registry grade A. No security issues foundWP RegistryNo security issues foundOpen the reportA
Events
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/bluecadet/bluecadet-wp-events/archive/refs/heads/main.zipA WordPress events plugin: single and recurring events, a dedicated query table for fast date filtering, optional locations and series, ICS export, and a filter-first API for developers. Works in both the block (Gutenberg) and classic editors.
Features
- Events custom post type with start/end date-times.
- Recurring events — daily, weekly, monthly, and consecutive frequencies; end on a date or after N occurrences; plus specific added dates and exclusions. Each occurrence is a real child post; the parent acts as the canonical/SEO anchor.
- Custom
bc_eventstable mirroring each occurrence for efficient upcoming/past/range queries and de-duplication of recurring sets. - Locations and Series (each toggleable via a filter).
- ICS (
.ics) export for events. - Editor parity — the same data saves identically from Gutenberg or the classic editor.
- Extensible — a broad, guarded filter surface plus editor SlotFill extension points.
Requirements
- WordPress (tested against the current release)
- PHP 8.1+
Installation
composer require bluecadet/bluecadet-events
Then activate the plugin in Plugins. Activation creates the custom bc_events table.
Installed via Composer, the package ships only runtime code — tests, docs tooling, and CI config are excluded (see
.gitattributes).
Quick start
- Activate the plugin.
- Open Events → Add New, set the start/end date-time, and (optionally) enable recurrence.
- Save. For a recurring event, the child occurrences are generated in the background and written to the
bc_eventstable.
Documentation
Full developer documentation is published to GitHub Pages:
- Hooks reference — every filter/action, grouped by object type and category, with defaults and examples.
- API reference — classes, methods, and global functions (generated from source docblocks).
📖
https://bluecadet.github.io/bluecadet-events/(update to match the repo once Pages is enabled)
Extending the plugin
Filters control most behavior — a few common ones:
// Turn locations/series on or off.
add_filter( 'bc_events/locations/post_type/use_event_locations', '__return_false' );
// Customize the archive layout / paging.
add_filter( 'bc_events/events/settings/archive', function ( $args ) {
$args['per_page'] = 24;
return $args;
} );
// Remove all plugin data when the plugin is uninstalled.
add_filter( 'bc_events/uninstall/delete_data', '__return_true' );
See the Hooks reference for the full list. All hooks guard their return values, so a bad filter return falls back to the documented default rather than breaking.
Editor SlotFills let you add your own fields into the event form (block editor):
const { AfterEventDetailsFill } = window.BluecadetEvents;
// Render your own controls after the event details section.
<AfterEventDetailsFill>
{ ( { keys, postID, meta, setMeta } ) => ( /* your fields */ ) }
</AfterEventDetailsFill>
AfterEventDetailsFill and AfterRecurringFill are exposed on window.BluecadetEvents.
Development
- JS/blocks:
npm run build(seepackage.jsonscripts). - Tests: a PHPUnit suite runs against a real WordPress via
wp-env. Seetests/README.md. - Docs: the site is built in CI (
.github/workflows/docs.yml) from phpDocumentor + a custom hooks generator (bin/docs/generate-hooks.php). To build the hooks page locally:php bin/docs/generate-hooks.php.
License
© Bluecadet. (Set your intended license here.)
Releases
5 releases.
These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.