LiveWhale 2.24.0 5/3/2026
LiveWhale Calendar: Once your production calendar is running 2.24.0, our team will be in touch to let you know when you can begin testing 3.0+ on your dev server, how to report any issues you find, and the 3.0+ upgrade date we’ve reserved for you.
LiveWhale CMS & Storyteller: We’ll be in touch with more information about the CMS/Storyteller 3.0+ release schedule, and may publish other patch releases to 2.x for you while CMS/Storyteller 3.0+ is being finalized.
New SAML configuration options
The new SAML option for SAML_LOGOUT_URL allows you to select a URL to redirect to after a SAML IdP logout (if configured), or instead of the default “Close browser to logout” message if no SAML IdP logout is configured. We’ve also added support for signed SAML assertions when setting up login integrations using SAML_SIGN_ASSERTIONS=true.
New form permissions
LiveWhale CMS Only: You can now make LiveWhale Form uploads visible to any SSO user who has the URL (say, if they’ve received the email notification of the form submission) by enabling the new ALLOW_SSO_USERS_TO_VIEW_FORM_UPLOADS config option. Otherwise, the status quo of “only LiveWhale users with access to the form’s group can see attachments” behavior will remain.
LiveWhale 2.23.0 3/8/2026
New feature: LiveWhale Analytics, in preparation for LiveWhale 3.0
Beginning with this release, LiveWhale will automatically collect anonymized, pre-aggregated usage totals—such as daily URL hits, device type, and general referrer category—to populate the upcoming LiveWhale 3.0 Reporting tool, helping content managers understand overall traffic trends without tracking individual visitors.
The system is privacy-first by design: it stores only aggregated counts, uses no cookies or persistent identifiers, and does not transmit data to third-party services. We’re adding this tracking now so that when you upgrade to 3.0, some historical data will be available to you. Sites may disable analytics collection at any time via configuration if preferred. [Docs: LiveWhale Analytics]
New feature: Use a CSV or JSON as a source for Linked Calendar events syncing
You might have events in a CSV or JSON format that you want to sync into LiveWhale as a Linked Calendar. While you could always write a custom translate-to-ICAL script, LiveWhale 2.23+ now has a built-in function for this called “calendar_feeds” in the config. You can configure it to point to a local or remote CSV or JSON url and, provided it’s formatted with the proper column or attribute names, a Linked Calendar can be directly added to sync those events.
You can also use /key/value filters in your linked calendar URL to reference specific columns of your CSV, in case you have one CSV you want to split across multiple linked calendars in different groups. [Docs: Using a CSV or JSON file as a Linked Calendar source]
LiveWhale 2.23.0 3/8/2026
- Fixed an issue where Google Maps embeds on calendar front-end views were missing title=”” attributes on the iframe. List and detail view maps now include title=”Map showing location of [location name]”. [Forum discussion including theme-level patch in advance of upgrading.]
LiveWhale 2.22.0 12/7/2025
- Fixed a typo in the mini-cal aria-label, and updated the accessibility (dialog settings and keyboard trapping) of the “Subscribe” dialog on the front-end calendar.
LiveWhale 2.24.0 5/3/2026
- Hourly linked calendar refreshes now have a summary saved to the Notices log in the admin debug panel with the total of how many events were created, updated, deleted, and restored.
- Changed code that disables lazy loading on inline galleries to only execute when a gallery contains fewer than 50 images. This prevents very large galleries from presenting a page performance issue.
LiveWhale 2.23.0 3/8/2026
- Shared events that have a default image applied from their originating group will now travel with those default images intact.
- Clarified confirmation messages when resetting a Linked Calendar or deleting a single Linked Calendar event.


- Added a failure notice for logged-in users when a file widget’s “extract” setting failed due to the underlying file/url failing to parse.
- Added target=”_blank” to the core lw_cal_event_related_content.html component for related content links.
- LiveWhale CMS: Added a warning to prevent saving a Navigation when you have unfinished new links or separator text.
LiveWhale 2.22.0 12/7/2025
- Privacy and visibility settings for Linked Calendar events can now be set and overridden on a per-event basis. Before, the visibility of the Linked Calendar would always take precedence over the individual event settings.
- Linked Calendars with multiple CATEGORIES: lines in a single ICAL event record will now be combined when syncing.
LiveWhale 2.21.1 9/7/2025
- Linked Calendar events sent to the trash (when missing from the ICAL feed on an hourly sync) will now be auto-restored from the trash, including all customizations, if event with matching UID returns to the ICAL feed on a later sync.
- Attempting to load an event URLs with a trailing slash will now redirect to the working slash-less version rather than 404ing.
- LiveWhale CMS Only: Extended maximum length of a single saved Navigation to 1,200 links and added an error message when trying to add links beyond that.
LiveWhale 2.23.0 3/8/2026
- Updated the search weighting of quoted phrases so exact matches appear higher in the results, ahead of individual word matches (when sorting by relevancy).
- LiveWhale CMS: Removed partial inside-word matching from QuickAccess plugin (“art” will still return “College of Arts & Sciences” but will no longer return “department”).
LiveWhale 2.23.0 3/8/2026
- You can now skip the content_basic.css that loads with each WYSIWYG editor by enabling the new WYSIWYG_SKIP_BASIC_CSS global config option. This is useful if you wish to more fully style the WYSIWYG editor without needing as many overrides.
LiveWhale 2.24.0 5/3/2026
- Fixed an issue where a Linked Calendar event with its own timezone set, if it’s in a feed configured with a different timezone, could erroneously have certain events flagged as all-day if the end time is midnight in the feed’s timezone. Updated this logic to always check the event’s timezone instead.
- Image bug fixes
- Fixed an issue where inline WYSIWYG images could fail to appear if the image had been moved to another group. Now, the cached image tag is validated and refreshed if the file isn’t found in the original group folder.
- Fixed an edge-case issue affecting loading new images in a gallery.
- Images that fail to transfer from prod to dev during a content sync for any reason will be automatically deleted (so they can be re-synced or restored) rather than left as empty files.
- Fixed an issue with loading the page editor for pages containing very large accordions.
- Fixed an issue where “And X More” might not appear on calendar month view if the month view theme markup was wrapped differently than the core theme.
- Fixed an issue with the core formatAmps function that could fail to properly encode text in some cases.
LiveWhale 2.23.0 3/8/2026
- Fixed an issue where a multi-day event spanning multiple years could sometimes be excluded from upcoming events listings after re-saving.
- Fixed an issue affecting RSVP Waitlists where when the next registration in the waitlist had more than 1 attendee, it could “hold up” the waitlist and allow new registrants to take empty spots before the waitlist could be used. Now, all new RSVPs will go onto the waitlist as long as any waitlist spots are in use. [Forum discussion about waitlists]
- Fixed a bug that caused category and tag filters to be added multiple times when they contained an ampersand.
- Fixed content type filtering on the backend search page.
- Fixed the show all items in event type links that appear on the search page when searching all content types.
- Fixed an issue where using date_format on an XPHP or widget field variable could be mis-formatted when the date includes a year.
- Fixed an issue where login links using &referer=1 could sometimes fail if the HTTP referer url isn’t found. Now, &referer=1 login links will fall back to redirecting to the homepage / on a successful login.
- Fixed an issue affecting CSV image imports where servers would reject requests lacking a user agent. (A user agent is now included when requesting CSV image urls for download.)
- LiveWhale CMS Only
- Fixed issue affecting QuickAccess results not sorting by category when categories are used.
- Fixed an issue where users without the pages_manage permission (“Add, edit, and delete navigations, create and delete pages”) were able to Duplicate pages from the Your Pages manager.
- Added a failsafe check for certain cases where the Navigation editor would save a fully-empty list of links, preventing this edge-case behavior from emptying out navigations unintentionally.
- Fixed an issue where noindex_ttl for events wasn’t adding metatags to the /live/events version of an events URL.
LiveWhale 2.22.0 12/7/2025
- Linked Calendar fixes
- Fixed an issue introduced in 2.21.1 that would auto-restore even manually deleted Linked Calendar events (one-off, or via Save and reset all events). Now, only automatically deleted events are candidates for auto-restore. Other events can still be manually restored from the trash can, unlinked from the Linked Calendar feed.
- Fixed an issue that could prevent ATTACH: images from Linked Calendars from being loaded in certain front-end contexts.
- Fixed an issue with copying custom fields via linked calendar to instances of a repeating event.
- Repeating and multi-day event fixes
- Fixed an issue affecting ICAL “All events in series” links for monthly events that repeat by day of the week which could cause the wrong week to be selected in some cases.
- Fixed an issue where a link copy of a multi-day event would become out of sync when the parent event was later switched to a single-day event.
- Fixed an issue where repeating events whose start/end dates are later edited could fail to appear in certain upcoming events lists.
- Fixed an issue where the front-end calendar’s “repeats_end” value could be erroneously empty when events are set to repeat by number of occurrences rather than end date.
- Fixed an issue where the dashboard “Upgrade Scheduled” notice could sometime show a date in the past for sites using SELF_UPDATE=true.
- Fixed an issue where events could erroneously be skipped from only_today=true widgets or API requests.
- Fixed an issue where a custom variable containing widget settings (<arg id=”“> tags) wouldn’t work if loaded conditionally into a widget.
- Fixed an issue affecting enforcement of best-practice line lengths for ICAL output in LiveWhale-generated ICAL feeds.
- Fixed calendar bug that caused the event detail AJAX request to query for event_id when the slug was numeric.
- Fixed broken links for events already on a page when adding more events by clicking a pagination link.
- Fixed a bug that caused the wrong date and time string to display on calendar list views for events that spanned daylight savings offsets.
- Fixed a PHP 8.3 compatibility bug when loading calendar preload results.
- Fixed a case where repeated calls to the logout function could result in duplicate cookies being set, overfilling the allowed header size.
- Fixed an issue that could cause custom fields to not be returned in JSON API v1 results.
- Fixed an issue with using custom fields on locations in a locations widget.
- Fixed an issue affecting event links and prevented events from loading for sites using the old-style #! urls (non-pushstate). This URL style will be fully deprecated in LiveWhale 3.0.
- Fixed an issue that prevented mailto: email links from honoring “open in a new window” setting in WYSIWYG areas.
- Fixed a bug with AP style date formatting that could cause DTEND to be parsed incorrectly in an ICAL feed.
- Fixed an issue where a dev server could periodically report a missing backup when attempting to run a content sync from production.
- Fixed a JavaScript bug that prevented date and time pickers from closing after selecting a value when the beta Planning View is enabled.
- LiveWhale CMS Only
- Fixed a bug that caused all navigation data to be lost under with an unusual save sequence.
- Fixed an issue affecting the addition/removal of disallows from the robots.txt refresh process.
- Fixed an issue that could cause the editor toolbar to appear on the front-end for profile-only editors.
LiveWhale 2.21.1 9/7/2025
- Fixed an issue that prevented quoted / exact searches from being permitted on the frontend calendar.
- Fixed an issue where externally-linked events from a linked calendar source could not have their external url edited or validated properly.
- Fixed a bug introduced in 2.21.0 affecting the “categories” variable on event list and event details templates, which resulted in an HTML-formatted string being returned where previously there was an array (even with the new USE_CATEGORY_LINKS_IN_EVENTS_WIDGETS flag disabled).
- Fixed an issue where inline style or script tags in format_widget settings could be stripped or malformed.
- Fixed an issue where loading Linked Calendars from GiveCampus.com feeds could occasionally fail, added a workaround to more reliably load those events.
- Fixed an issue where individual requests that toggle between empty and not-empty (widget outputs, say) weren’t always correctly updating the cache in the empty state.
- Fixed an issue affecting the saving of new locations attached to drafted content.
- Fixed an issue affecting the saving of repeating monthly events on sites where USE_AP_STYLE date formatting was enabled.
LiveWhale 2.24.0 5/3/2026
- LiveWhale CMS Only: Blurb, profile, and blog type ids are now included in the livewhale.editor JS object on editor views to allow for easier backend.js customizations per type.
LiveWhale 2.23.0 3/8/2026
- Added “related_content” as an optional response field to the JSON API v2 endpoint. [Docs: JSON API]
- You can now use XPHP variables inside of format_widget wrapper formats.
- The lw_cal_tags.html component now supports an input value=”Tag Name” that’s distinct from the visible label. The label text is still used for backwards compatibility when no input value is found for a selected item.
- Privacy settings can now be accepted via the public submission form using the news_visibility or event_visibility field. [Docs: Public Submissions]
LiveWhale 2.22.0 12/7/2025
- You can now use relative dates (“today”, “+1 week”, “-7 day”) in widget “filter” arguments.
- During Linked Calendar syncing, the “has this item changed?” check now runs after custom code, so you can use the onBeforeSync to trigger data changes that will get captured on the next automatic or manual sync.
- Added support for custom variables in the format_widget arg of inline galleries.
LiveWhale 2.24.0 5/3/2026
- Fixed an issue where total database downtime could erroneously cause a PHP error for certain requests, preventing them from falling back on high availability cached responses.
- Fixed an issue that could affect PHP8 installs running LiveWhale 2.x when trying to send redirect headers to the browser.
- Fixed an issue where NPM could fail to render resources (capturing a particular error code to fall back on cached resources).
- Fixed an edge-case load balancer issue affecting async back-end requests.
- Improved the automatic storage cleanup of old and unused cache entries.
LiveWhale 2.23.0 3/8/2026
- Relaxed a security rule introduced in 2.20.0 that blocked all REST requests with very long depths (50+ slashes) to allow long requests from LiveWhale Calendar widgets, where many embedded widget arguments could result in long REST requests.
- Optimized file and image requests to leverage Apache and free up PHP resources faster.
- Updated PHPMailer from version 6.6.4 to 7.0.2 to prepare for Azure OAUTH SMTP support.
- Updated SAML Toolkit to v4.3.1 and xmlseclibs to 3.1.4 for PHP8 compatibility.
LiveWhale 2.22.0 12/7/2025
- Performance improvement to linked calendar syncing and auto-restore from trash added in 2.20.1.
- Performance improvement: aggregated a few additional JS and CSS resources on the front-end calendar to improve calendar load by removing a few HTTPS calls.
- Fixed an XSS bug, introduced in LiveWhale 2.21.1 with support for quoted calendar search strings, that could allow JavaScript to be inserted into the search “now showing” component.
- Addressed a possible XSS injection vector via /live URLs.
- Consolidated code checking for broken URLs into one isBrokenLink function, fixing some cases where link checker might return erroneous results.
LiveWhale 2.21.1 9/7/2025
- Fixed an operating-system-level SSL compatibility issue that could prevent LiveWhale from issuing certain types of internal HTTP requests.
- Various performance improvements around caching and handling of bot traffic and traffic spikes.
- Added a check to fallback to unminified scripts if an error is detected by the minification process.
New versions will be announced via Dashboard messages in LiveWhale, or you can sign up to receive email notifications.