May 24 2026
1.3.12.1 – WordPress 7.0 compatibility
- Compatibility: tested against WordPress 7.0 — admin Settings, calendar, event editor and frontend all verified.
May 21 2026
1.3.12.0 – Google-style week view, timezone-aware pipeline & dozens of fixes
- New: REST API supports custom orderby on `/wp/v2/eventkoi_event` (start_date, event_start, upcoming, past) for use in core Query Loop blocks and headless integrations.
- New: Empty Trash button on the Events list (subtle link after bulk actions).
- Improvement: Week view — Google-style overlap cascade so stacked events stay readable instead of collapsing into "+more".
- Improvement: Week view — sticky event title on multi-day continuation bars (title visible on every visible day, not just the first).
- Improvement: Week view — compact Google-style time format (`9 AM` / `3pm` depending on the 12/24-hr toggle).
- Improvement: Week view — red "now" indicator line.
- Improvement: Week view — non-working days tinted using the working_days setting.
- Improvement: Month view — compact time prefix on dot-style events.
- Improvement: Week view — Google-style multi-day + all-day chip layout.
- Improvement: Event popover anchors at the click point instead of jumping.
- Improvement: Calendar + List blocks — "Select all calendars" is now honored in the editor preview (matches the frontend).
- Improvement: Calendar block editor preview lands on the current week when timeframe is set to "week".
- Improvement: Events admin — top toolbar layout (selected count left, pagination right) matches the footer.
- Improvement: Empty states for "Event not found" and "Event in Trash" — centered card with icon + CTA.
- Improvement: Sold-out ticket widget stays visible (with sold-out label) instead of disappearing once capacity is reached.
- Improvement: Event editor date and media UX hardened — end-time defaults, draft cleanup, structured-field guards.
- Improvement: Tickets / Orders / Emails — instance-aware titles, itemized refunds, multi-seat expansion fixes.
- Improvement: RSVPs — standard events can now run in event-wide RSVP mode (vs. per-instance).
- Improvement: TEC importer — paragraphs preserved, address split into structured fields, organizer email/phone/website mapped, `_EventCost` mapped to ticket price, `_EventURL` imported as virtual location.
- Improvement: Per-event ownership checks across admin endpoints + healer audit trail.
- Improvement: i18n — more admin strings wrapped in `__()` for Loco / translate.wp.org.
- Improvement: Default "Display timezone in event page" toggle now defaults ON for new events.
- Fix: Multi-day timed events — time now shows on every visible day instead of only the last; nested "+1 more" stops cascading.
- Fix: iCal export — full RFC 5545 compliance (CRLF, line folding, proper PRODID, RRULE syntax).
- Fix: JSON-LD — recurring event endDate is now Google-compliant; each instance gets its own JSON-LD block.
- Fix: iCal UIDs are stable across recurrences (previously regenerated, breaking subscriber dedup).
- Fix: Recurrence cap enforced on UNTIL-style rules; recurring rule summary validated against the cap.
- Fix: Ticket checkout — TOCTOU race fixed (no more oversell under load).
- Fix: Tickets — duplication and refund-state regressions resolved.
- Fix: RSVP capacity claim uses FOR UPDATE locking so two concurrent submitters don't both succeed against the last slot.
- Fix: RSVP CSV export sanitises against Excel formula injection.
- Fix: RSVP prefetch no longer leaks event meta into unauthenticated responses.
- Fix: Calendar admin — archive-view event color leak fixed; static-singleton state resets between renders.
- Fix: Editor block preview no longer renders the wrong week when timeframe is "week".
- Fix: Bulk confirm dialogs surface backend errors instead of silently failing.
- Fix: Sorting in admin tables is disabled when pagination is server-side, so sort no longer reorders just the current page.
- Fix: RSVP phantom-instance gate — RSVPs no longer attach to non-existent instances.
- Fix: "Invalid Date" guard in attendee TZ normalize.
- Fix: Plugin `.zip` build now excludes `.vite-hot` and agent artifacts.
May 11 2026
1.3.11.0 – User permissions & custom date/time formats
- New: Settings → User permissions — grant non-admin WP roles access to specific EventKoi areas (events, calendars, attendees, orders, settings sub-tabs) without sharing the admin password. Admins always have full access; the panel is empty by default so existing behaviour is unchanged until you grant something.
- New: Settings → Default settings → custom Date format and Time format inputs. Type a PHP date format string (e.g. `Y-m-d`, `d-M-Y \a\t H:i`) to override WP Settings → General everywhere EventKoi renders dates (events list, single event, calendar/list blocks, RSVP and ticket emails, dynamic tags). Leave blank to keep using WordPress defaults.
- Improvement: When a custom Time format is set, the 12/24-hour toggle is bypassed so the typed string wins as-is. With the field blank, the toggle keeps working exactly as before.
- Improvement: Calendar grid event tile labels now honour the 12/24-hour toggle (sites set to 24-hour see `13:00` instead of `1pm`).
- Fix: Recurring event series pages now honour the custom time format on every listed instance (previously some instances ignored it).
- Fix: Resolves a WP 6.7 "Translation loading triggered too early" notice introduced by the permissions filter.
May 11 2026
1.3.10.0 – RSVP windows, button states & block polish
- New: RSVP availability window — set start and end dates for when RSVPs open and close on each event.
- New: RSVP button now reflects three states — "RSVP" when open, "RSVP: Closed" when capacity is reached or the RSVP window has ended, and "Event ended" once the event itself is over.
- New: "RSVP opens soon" label automatically appears within 24 hours of the configured open date.
- New: "Select all calendars" toggle on the Calendar and List blocks — automatically include every calendar (including ones added later) without having to re-edit existing pages.
- New: WooCommerce next-steps panel on Settings → Payments — quick links to set up payments and currency in WooCommerce when WC checkout is selected.
- New: "Sold out" Get-tickets button label when the entire event's inventory is exhausted, replacing the old confusing "open the modal to find out".
- New: Pagination now also appears at the top of admin data tables for faster navigation.
- New: Editor color picker upgrades, calendar dot indicators, text alignment and heading-level controls on event blocks.
- Improvement: "Allow RSVP edits" now defaults ON for new events. The default RSVP confirmation email link line now auto-swaps between "View / manage your RSVP" and "View event page" based on the toggle (custom templates pass through unchanged).
- Improvement: WooCommerce next-steps panel only renders when WooCommerce is installed and active.
- Fix: RSVP defaults (allow edits, show remaining) now reach the new-event template correctly.
- Fix: TDZ ReferenceError that was hiding the entire RSVP widget on the frontend.
- Fix: RSVPs stay attached to their event when an event's date changes.
May 3 2026
1.3.9.9 – Translatable admin, calendar timezone fixes & editor polish
- i18n: Full admin React UI is now translatable via Loco Translate, WP.org translation packs, or bundled JSON — previously the admin stayed in English even when the site locale was set. POT regenerated with all new strings.
- Fix: Continuous standard events with specific times were being shown in the All-day lane in calendar Week view (and as full-width strips in Month view). They now render in their correct time slots.
- Fix: Picking a start or end time could roll the date back a day when the browser timezone differed from the site timezone. Times now apply in the site timezone consistently.
- Fix: Auto-filled end date inherits the picked start time, so users no longer hit "End date cannot be before the start date" the moment they add a non-midnight start time.
- Fix: "Display timezone in event page" toggle is now respected on the frontend — when off, the timezone label no longer appears on the event page.
- Fix: Completed events were leaking into the Upcoming Query Loop, and future events into the Past Query Loop.
- Fix: WordPress was prepending `http://` to `[eventkoi … as=link]` URLs, producing broken double-protocol links. Bogus prefix is stripped on render.
- Fix: Standalone editor preview now resolves every `event_*` dynamic token (date, time, timezone, etc.) instead of showing `{Field Name}` placeholders.
- Fix: Scalar custom fields (text, textarea, dropdown, radio, checkbox, url) auto-unwrap in the `[eventkoi]` shortcode by default, matching url-typed behavior.
- Fix: Tickets "Change currency" link points to WooCommerce settings when WooCommerce is the checkout method, instead of EventKoi settings.
- Fix: QR check-in handler now redirects logged-out users to the login URL (HTML) and surfaces a "Log in" button in the JSON overlay.
- Fix: Editing a saved event no longer crashes due to a missing translation import in the description component.
- Improvement: The Page Numbers block "Number of links" (mid_size) attribute is now honored by EK Query Loop pagination on the frontend.
April 28 2026
1.3.9.8 – Past events query, recurring date polish & ticket-delete safeguards
- New: "Past events" query option in the Event Query Loop block — sort completed events with their most recent past occurrence, mirroring how "Upcoming events" rolls forward over time.
- New: Event Data block exposes the full set of canonical event tokens — separate `event_date`, `event_time`, `event_date_year`, `event_date_month`, `event_date_day`, `event_date_iso`, plus ticket-data tokens (capacity, sold, sold_out, low_stock, ticket_count, ticket_summary, sales_start/end), RSVP tokens (capacity, remaining, going, full), and ticket price + date format presets.
- New: `event_date` and `event_time` dynamic tokens for Elementor, Divi, Beaver Builder and shortcode pickers.
- Improvement: Recurring events in query loops now display the next upcoming occurrence (not the original series start) — and Past mode shows the latest past occurrence.
- Improvement: Recurring "ends on" defaults to one year from today, so newly created recurring events are bounded out of the box.
- Improvement: Event Query Loop grid is now responsive on tablet and mobile breakpoints.
- Improvement: Admin pages share a unified 1280px content width.
- Improvement: Ticket counts column reads "N ticket(s)" / "N RSVP(s)" with proper pluralization, and reflects gateway-completed orders only.
- Improvement: Drop the recurring rule summary from the ticket checkout modal — buyers see only what they're booking.
- Improvement: New events default to timed (not all-day).
- Improvement: Ticket delete now requires confirmation and is only persisted when you click Save — refresh restores tickets you removed by mistake.
- Improvement: Date rendering uses a single helper across surfaces — all-day toggle, click-to-deselect, recurring scoped to Pro.
- Improvement: Calendar week view renders 24-hour gutter labels and tightens border stacking in month + week views.
- Improvement: Calendar week view now lands on the current week (not the start of the displayed month) when you toggle from Month.
- Fix: Recurring "ends on" date is inclusive — the user-picked end date is now part of the series instead of being silently dropped.
- Fix: Block Visibility extension is honored on Calendar/List/event-data blocks.
- Fix: Switching the WordPress timezone setting no longer crashes the site when `gmt_offset` returns an empty string.
- Fix: Wrapper classes from `render_block` filters are preserved on Calendar and List blocks.
- Fix: Accent characters in event titles sanitize correctly into slugs.
- Fix: Event description list styling is preserved on the front end.
- Fix: All-day axis cell border restored in calendar week view for proper grid alignment.
- Fix: Renderers honor a per-row `instance_ts` so Elementor/Divi/Beaver loops show the correct occurrence date.
April 19 2026
1.3.9.7 – Ticket Save Fixes & Loco Translate Compatibility
- Fix: Tickets are now saved correctly from the event's Tickets tab. Previously, ticket rows could be discarded when the event was saved or when switching tabs.
- Improvement: Tickets auto-save when you switch to another tab, so edits are no longer lost if you forget to click Save.
- Improvement: Fixed ~700 translation strings that used the wrong textdomain, so translations now load as expected.
- Improvement: Translations saved to the plugin's own languages folder (Loco Translate's "Author" location) are now picked up.
April 19 2026
1.3.9.6 – Ampersand & Calendar Block Fixes
- Fix: Ampersand (&) now displays correctly in calendar names across the admin, multiselect dropdowns, builder module dropdowns, and frontend calendar archive page.
- Fix: Calendar block no longer shows "Invalid calendar" when the default calendar option is missing or points to a deleted term. The block now resolves from its own attributes first, then the default option, then the first available calendar.
- Improvement: Self-healing default calendar option — if the stored reference is invalid, it is repointed automatically to a real calendar on the next page load.
- Improvement: Empty-state calendar block shows a friendlier message; admins also get a "Create a calendar" link.
- Improvement: Block editor no longer seeds the calendar block with an invalid default ID when the default option is missing.
April 18 2026
1.3.9.5 – Divi Integration (Beta) & Fixes
- New: Added Divi Builder integration (Beta) — Calendar and Event modules for embedding EventKoi content in Divi layouts.
- New: Added admin notification email templates for New RSVP and New ticket sale events.
- Improvement: Admin notification emails now use the saved sender name and email from the Emails settings.
- Improvement: Site instance ID UUID is now backfilled automatically on version bump.
- Fix: Prevented a fatal error in the admin sale notification pipeline.
- Fix: Fixed archive/unarchive for ticket sales on global and per-event views.
- Fix: Fixed theme CSS bleed into FullCalendar cells on Divi-like themes.
April 12 2026
1.3.9.4 – UI & Calendar Improvements
- Improvement: Centralized confirmation dialogs with consistent centered modal design across all destructive actions.
- Improvement: Calendars page now shows only the default calendar with a clean, focused layout.
- Improvement: Multiple calendars is now a Pro-only feature with clear upgrade prompts.
- Fix: Bulk actions on the global ticket sales page now correctly show Archive/Unarchive instead of Duplicate/Move to trash.
April 11 2026
1.3.9.3 – WooCommerce Gateway & Reporting Fixes
- Improvement: Tickets are now issued as soon as a WooCommerce order moves to "processing", so every gateway (including Cash on Delivery and Bank Transfer) works out of the box.
- Fix: Orders with a partial refund now display the correct "Partially refunded" status on the Orders list and per-event sales history.
- Fix: Ticket sales totals and per-event stats no longer mix amounts from different WooCommerce currencies.
- Fix: In-progress checkout holds are no longer counted toward sales stats.
April 11 2026
1.3.9.2 – Order Sync & Ticket UI Polish
- Improvement: Ticket refund emails now fire automatically when a WooCommerce order is refunded.
- Improvement: Orders list CSV export and sales history CSV export are now working.
- Improvement: WooCommerce order links in orders, attendees and sales history open in the same tab.
- Improvement: `master_checkin_code` is populated from WooCommerce order meta so check-in works consistently.
- Improvement: Attendees tab now refreshes reliably after ticket status changes.
- Fix: Fatal error in `Orders::create_order` caused by a stray Stripe class reference.
- Fix: Order status filter tabs on the Tickets > Orders page now point at the correct base.
- Fix: Event status dropdown is hidden on non-event admin pages.
- Fix: React "Rules of Hooks" error on the Event Attendees tab.
- Fix: Removed an undefined `isResendEmail` reference in the Attendees component.
- Fix: Hidden the attendees bulk-actions toolbar when no row-level actions are available.
April 10 2026
1.3.9.1 – Payments & UX Improvements
- Improvement: Billing information (name, email) is now auto-filled for logged-in users during ticket checkout.
- Improvement: Clearer error messaging when WooCommerce is not installed.
- Improvement: Removed Beta badges from ticket-related UI.
April 10 2026
1.3.9.0 – Ticket Sales, Import Tools & More
- New: Added ticket sales feature (Beta) — sell paid tickets for events via Stripe or WooCommerce.
- New: Added Payments settings page for Stripe Connect and checkout configuration.
- New: Added ticket management, sales history, and attendee tracking per event.
- New: Added order management with real-time updates, filtering, and CSV export.
- New: Added event import from The Events Calendar (TEC) — full migration tool.
- New: Added URL-based event import — import events by pasting a URL.
- New: Added import tools to Events dropdown menu for easy access.
- Improvement: Added Beta badges to ticket-related UI sections.
- Improvement: Admin dashboard performance optimizations.
- Improvement: Updated JSON-LD structured data output.
- Improvement: Accessibility improvements.
- Fix: Fixed REST API responses breaking when third-party plugins emit PHP notices.
- Fix: Fixed Stripe webhook secret handling for array-shaped values.
- Fix: Fixed wrong text domain in block descriptions.
- Fix: Fixed Google Maps settings card and onboarding UI.
March 27 2026
1.3.0.3 – Time Format Fix
- Fix: Fixed 12/24-hour time format setting not being respected across event pages, calendar views, admin UI, and auto-detect timezone display.
March 21 2026
1.3.0.2 – Fixes & Improvements
- Fix: Fixed pagination on single event pages being incorrectly redirected by WordPress canonical URL handling (affects Beaver Builder loop pagination).
- Fix: Improved REST API key header resolution to support both hyphenated and underscored header formats.
- Fix: Fixed comma-delimited calendar selection parsing from UI controls.
- Improvement: Updated support links to point to WordPress.org support forum.
February 27 2026
1.3.0.1 – Stability & Compatibility Fixes
- Fix: Prevented empty `location` schema output for events without physical address data.
- Fix: Improved default template resolution consistency for Elementor and Bricks templates.
- Fix: Improved `[eventkoi_calendar display=list]` shortcode argument handling (`orderby`, `order`, `per_page`, `max_results`, `date_start`, `date_end`, `expand`).
- Fix: Improved calendar list query normalization and guardrails for safer ordering, pagination, and filtering.
- Fix: Improved activation recovery by ensuring core Lite tables are created/recovered reliably.
January 29 2026
1.3.0.0 – RSVP
- New: Added RSVP creation and management.
January 13 2026
1.2.1.0 – Local timezone display & settings
- New: Added auto-detect timezone setting so visitors can see event times in their local timezone.
- Improvement: Event date/time output now includes timezone metadata for accurate client-side conversion.
- Improvement: Added a Custom Fields settings preview for Pro.
- Fix: Ensured demo event imagery loads reliably in onboarding.
January 1 2026
1.2.0.2 – Timezone fix
- Fix: Fixed calendar day headers shifting when the server timezone differs from the WordPress timezone.
December 23 2025
1.2.0.1 – Style fixes
- Fix: Fixed image styling in the Event Query Loop block.
- Fix: Fixed Event Data block styling.
December 16 2025
1.2.0.0 – Elementor Widgets & Onboarding
- New: Added Elementor Event Data widget to drop event details anywhere.
- New: Added Elementor Event Calendar widget to embed calendars visually.
- New: Introduced a quick start plugin tour plus onboarding hints to guide first-time setup.
- Improvement: Added missing translation strings and refreshed the POT file.
- Fix: Event counts now update correctly in the Events list.
- Fix: `eventkoi` shortcode now displays the event image reliably.
December 4 2025
1.1.0.1 – JS Import Fix
- Fix: Added missing JavaScript imports so frontend assets load reliably.
December 3 2025
1.1.0 – Query Loop Blocks & Data Enhancements
- New: Added EK Event Query Loop variation (with EK Event Data child block) to display events using core/query controls and pagination.
- New: Added `/eventkoi/v1/query_events` endpoint and expanded `/calendar_events` to support paging, ordering, and date filters for block previews.
- Improvement: Query Loop server render now injects EventKoi event data.
November 10 2025
1.0.14 – Admin Event Description Editor Fix
- Fix: Resolved issue where the event description editor in the admin sometimes failed to display or save properly.
October 21 2025
1.0.13 – Week View Layout & Header Improvements
- Improvement: Redesigned week view header to show weekday names and dates on separate lines for better readability.
- Improvement: Enhanced alignment and font styling for week/day headers across all screen sizes.
- Fix: Removed weird day numbers appearing beside months in month view.
- Fix: Adjusted locale handling to ensure consistent weekday labels across languages.
October 20 2025
1.0.12 – Important bugfix
- Fix: Fixed issue with recurring instances not loading. (May require saving permalinks again)
October 19 2025
1.0.11 – Performance, Accessibility & Calendar Enhancements
- Improvement: Improved weekly view and navigation consistency in the calendar UI.
- Improvement: Optimized backend query performance for faster event loading.
- Improvement: Enhanced accessibility in frontend calendar and single event views.
- Fix: Minor styling and layout adjustments for better responsiveness.
- Fix: Corrected small inconsistencies in timezone and localization handling.
October 9 2025
1.0.10 – Calendar View & Localization Fixes
- Fix: Resolved layout and navigation issues in the weekly calendar view.
- Fix: Corrected locale handling and improved date/time formatting consistency.
- Improvement: Enhanced localization support across admin and frontend.
- Improvement: Improved responsiveness and stability in calendar rendering.
October 7 2025
1.0.0 – Initial public release
- Initial public release of EventKoi Lite plugin.
- Core event creation and management features.
- Built-in support for single-day and multi-day events.