LiveWhale 2.21.0 8/17/2025
New Search Engine option: Automatic “noindex” tags
Sometimes old or stale content can show up in Google results, even after it’s been archived or removed from the LiveWhale sitemap. Now, you can configure per-module TTLs for events, blurbs, forms, galleries, and news stories that will automatically add a robots “noindex” meta tag to each item after it’s passed a certain age. You could set it to an hour, a week, a year—whatever you’d like. Then, after that time has passed for each item, its URL should get removed the next time it gets re-indexed by Google or other search engines. [docs]
New Redirects option: Notes
When adding redirects to LiveWhale CMS, you can now make private notes in the new optional “Notes” field. This is a handy way to remind yourself the purpose of a redirect, or jot down a date when you know you can come back and delete it. [docs]
New Theming option: Customize “scroll-to-top” behavior
Certain actions in LiveWhale—loading a new event view in the calendar, or submitting an inline form—change the page content and scroll to ensure the new content is visible in the user’s viewport. Sometimes, though, fixed or sticky headers in your design can overlap content in these “scroll-to-top” actions. Now, you can use theme CSS to customize one or more pixel offsets (can be different in each responsive breakpoint) to ensure scroll-to-top never collides with your sticky site header. [docs: events] [docs: forms]
New API option: Location group IDs and titles
The /live/json/places endpoint now provides the group ID (gid) for each saved location, and you can request an optional response_field for group_title to get the full group name. [docs]
New Widget option: Event Types as links
If you include “categories” widget format variable in your events widgets, it’s always included a text-only list of event types. Now, you can optionally configure that variable to link to calendar results matching each event type using the new config option USE_CATEGORY_LINKS_IN_EVENTS_WIDGETS (this will become default behavior in LiveWhale 3.0). [docs]
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.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.21.0 8/17/2025
- Fixed an issue where browsing Linked Calendars from all groups and clicking “10 events” wouldn’t show results if the Linked Calendar was owned by another group. Clicking that link now switches you into the owning group of the Linked Calendar.
LiveWhale 2.20.2 7/13/2025
- Performance improvement: Initial event listings now preload with the calendar on page load, rather than requiring a separate AJAX request.
- Linked Calendars with events that run from midnight to midnight of another day will be imported as “All Day” events.
- Relocated accessibility checking for LiveWhale CMS 2.x into Page Details toolbar item (this built-in checker is being deprecated in LiveWhale 3.0).
LiveWhale 2.20.1 6/15/2025
- Add the year to the start date of a calendar event’s date range when it differs from the year of the end date.
- Added month and year variables to the calendar’s month day template.
- SiteImprove crawler is now permitted to bypass normal bot/scanner rules to refresh the page cache on its own, to ensure more up-to-date reporting for SiteImprove users.
LiveWhale 2.20.2 7/13/2025
- Restored the ability to drag the corner of full wysiwyg areas to resize them. (Limited wysiwyg fields do not resize.)
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.21.0 8/17/2025
- Fixed a PHP 8.1 incompatibility between curl and SSL that could prevent the frontend page cache from updating.
- Fixed an issue where using “Remove tag…” from the “With checked items…” dropdown could erroneously remove all tags, instead of just the one you selected.
- Fixed an issue where events with custom fields that have is_details=true might not enforce title linking in cases where the custom field has data to show in details view.
- Addressed an XSS vulnerability affecting /live/resource stylesheet and script URLs.
- Fixed an issue where choosing from a library of images using grid view could cause two actions when clicking a thumbnail (selecting the image and previewing it).
- Fix an issue, introduced in 2.20.0, that could prevent the calendar setting enable_home_view=true from working as intended.
- Improved page cache refreshing across multiple web nodes when custom URLs and custom details templates are used.
- Fixed an issue where certain clean-css warnings were appearing in rendered CSS.
LiveWhale 2.20.2 7/13/2025
- Fixed an issue where Linked Calendars could occasionally get “stuck” in the refreshing state, preventing them from being updated in the next hourly sync.
- Fixed a bug, introduced in LiveWhale 2.20.1, which could cause newly created event series to not show all events even when hide_repeats settings should be showing all instances.
- Fixed an edge-case issue where certain widget settings like include_javascript could be overwritten by settings from a nested widget.
- Fixed a typo in the events RSS feed formatting for categories_campus.
- LiveWhale CMS Only
- Fixed an issue with generating calendar event URLs when calendar_details_embed_url is configured.
- Robots.txt refreshing now happens asynchronously, and on login any hidden pages from the database missing from robots.txt will be added.
- Fixed an issue where malformed LiveURLs referencing custom details templates could sometimes result in infinite redirect loops.
- Fixed an issue, introduced in LiveWhale 2.19.0, that would erroneously strip /type/ arguments from tag details pages thinking they were absent custom detail templates. An exception has been added for /live/tags details to preserve earlier functionality.
LiveWhale 2.20.1 6/15/2025
- Added robots.txt overwrite protection for LiveWhale-managed robot rules.
- Fixed an issue that could prevent the group calendar url from appearing in the canonical URL for individual events.
- Fixed an issue that could cause an erroneous redirect on a tag details request.
- Fixed an issue, introduced in 2.16.0, that could unintentionally affect the default formatting of /live/rss/ API endpoints. This fix restores the normal RSS syntax unless you’ve specifically chosen to override it using _ingredients/templates/widgets/events.rss_default.xml.
- Upgraded the clean-css-cli npm module to version 5.6.3, fixing an issue where styles in :not() declarations could become malformed.
- Fixed an issue that prevented async curl requests from being able to bypass the load balancer.
- Removed defunct “Hide Details” toggle from image uploader modal.
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.21.0 8/17/2025
- Added support for <button> to be used in place of <a href> in the calendar scroll link component.
LiveWhale 2.20.2 7/13/2025
- Public submission forms with related content URLs (event_url or news_url) can now accept user-submitted titles for those links with the new fields event_url_title and news_url_title. If absent, link title will default to “More Information”. [docs]
- Added capability for user to set SAML username mapping on first SAML login, or when SAML_DEBUG is enabled. Also added new option SAML_DEBUG=’silent’ which tracks all received IdP attributes without interrupting login. [docs]
- Added group id (gid) format variable to locations widget output.
LiveWhale 2.20.1 6/15/2025
- The user setting “Disable minimization, concatenation, and client-side browser caching of all scripts and stylesheets” now applies to back-end resources as well as front-end styles/scripts.
- Custom fields that are configured without a unique name now appear as a dashboard configuration warning.
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.
LiveWhale 2.21.0 8/17/2025
- Reverted a security rule update from 2.20.2 that had negatively affected the Upgrade Pull process.
- Updated a performance improvement for staggering Linked Calendar syncing to work with Ubuntu 24.04.
- Silenced a number of erroneous PHP warnings to improve usefulness of error logs.
- Improved database performance with some query optimizations.
LiveWhale 2.20.2 7/13/2025
- Performance improvement to prevent excess server load when refreshing the cache entries for a lot of LiveURLs at once.
- Extended the time limit for upgrade steps to 1 hour.
- Automatically truncate the widget cache if it exceeds 10 GB, to prevent upticks in malicious traffic from rapidly filling disk space.
- PHP8.3 compatibility fix for an issue which could break the configuration of a site’s internal UUID.
LiveWhale 2.20.1 6/15/2025
- Performance Improvements
- Removed hidden “summary” field from calendar month view to improve loading times.
- Custom fields are now only loaded on event listings if they are included in the event theme component.
- Variables that are commented out in calendar components are now skipped when pulling event listings to improve loading times.
- Improved search page performance by adjusting the handling of exact phrases and by improved segmentation of search index data by content type.
- Improved caching of calendar results in cases where multiple themes or timezones may be used.
- Improved performance by increasing caching of per-group timezone settings.
- Improved performance of front-end events requests by indexing certain hide_repeats information.
- LiveWhale CMS only: Added some security checks to prevent spam submissions in LiveWhale forms.
New versions will be announced via Dashboard messages in LiveWhale, or you can sign up to receive email notifications.