New calendar theming options
Hero image width and height
The “Use first image image as hero” functionality in LiveWhale Calendar has, for a long time, returned an 800px width version of your main image. This was enough for lots of calendar designs, but not very flexible (and some have already been using JavaScript workarounds to customize its width/height). Now, you can do so easily in your calendar’s widget settings: new options for hero_image_width and hero_image_height let you set precise dimensions for the hero image display variable. [docs]
Image ALT text
Calendar event details now support the image_alt variable, containing the ALT text for the main thumbnail image, and it’s also been added to the default event details component for when the image is set as a hero image. This ALT text was already available as part of the fully-composed image display variable, but having image_alt separately can help those wishing to craft more customized HTML designs. [docs]
New optional JSON endpoint values
Balloons
Add /response_fields/balloons to your JSON API query to see the precise balloon prioritization that your editors have configured for news, profiles, blurbs, etc. on the back-end.
Live/Hidden Status
Include /response_fields/status in your JSON API request to distinguish between live and hidden results (1=live, 2=hidden). As before, hidden results will only appear when using ?include_hidden=1 (requires being logged-in or using an auth token). [docs]
Accessibility improvements
- Added aria-live announcements to the front-end calendar. The calendar now announces to screen-readers live results for each date, view, search, and filter change as they occur. (e.g., “31 events found from March 4, 2025 with tags ‘Alumni, Reunion’”). The mini-cal also announces which month is in view as the calendar gets navigated.
- Fixed an issue causing configured ALT text to not be used when generating calendar event listings for day/week/all views.
- Accessibility improvements to the back-end images editor and modal close button focus state.
- The public submission form’s submission_group field now support explicit labeling.
- Improved a few labels/ALT texts of images in the back-end image manager.
- Numerous accessibility improvements to the images manager, live/hidden switcher, and front-end calendar view selector.
Behavior adjustments
-
Updates to front-end event date displays
- Changed the date and time format for multi-day events on the front-end calendar (list and details views). The complete date range is now reflected more elegantly: instead of “until March 14,” the full “March 7 - 14” is shown, for example.
- Events that repeat every X days/weeks/months/years now indicate the repeat pattern in details view (“Repeats every other day,” “Repeats every three weeks,” etc.).
- Prevented themed copies of important core functionality (livewhale/theme/core/scripts) from being overridden in theme folders. If found, they are skipped on the front-end and flagged as warnings on the Diagnostics page.
- Removed a restriction preventing linked calendars from loading all events from another LiveWhale installation.
WYSIWYG editing
- Re-enabled backspace and delete in Content Layouts when WYSIWYG editing (disabled in LiveWhale 2.18.0). Instead, if any typing would result in merging or removing editable areas (class=”mceEditable”), undo that action.
Bugs
- Updated the auto-generated ICAL links for “only this event” vs “all events in series” to properly return the correct event/series even from an event in the middle of a repeating event.
- Fixed an issue where replacing an image file with one of different dimensions wasn’t always clearing custom thumbnail selections. Those thumbnail dimensions are now reset when the image size changes.
- Fixed an issue that could affect Linked Calendars ability to immediately refresh events after Customize checkboxes have been unchecked. Added clarified help text to editor when Customize gets unchecked (e.g., “Note: Original location from feed will sync when you save this event. This may take up to 10 minutes. In the meantime, the current location may still appear here and on the public-facing calendar.”).
- Fixed an issue that prevented single-sign-on AUTH_ATTRIBUTES from being properly passed from stored cookies into custom LW modules.
- Fixed an issue that could sometimes cause a delay before a hidden item became visible to the public after setting it as live.
- Fixed an issue that prevented trashed items from restoring their custom field values when restored.
- Fixed an issue that could cause a prior version of an updated URL to be shown in widget/api results instead of the most current URL.
- Fixed an issue in LiveWhale Calendar where links to event tags were sometimes going to /live/tags rather than the calendar filtered-by-tag view.
- Removed details template customizations from the LiveWhale Calendar group editor since they are a CMS-only feature.
- Fixed an issue where events from Day View (multi-day events overlapping or ending today) were being excluded from only_today/true API and widget results.
- Fixed an issue where clicking a link to dynamic content on a site where a LiveWhale login has recently expired could erroneously cause a session timeout error to be shown.
- Fix bug that inserted the user’s group in the calendar’s subscription menu header on non-group calendars.
- Fixed the submit button label on the multiple image upload screen to properly reflect plurality of images.
- Fixed a PHP8 error that could cause issues with the Page Error manager.
- Fixed an issue where a failed database connection could result in a redirect loop when attempting login, instead of correctly pointing to the database error page.
- Fixed location labels in the calendar’s now showing menu. Now, even if you don’t use the locations dropdown filter, you can hard-link to /all/locations/place_id and show calendar results matching that saved location (including the location title).
- Fixed an issue with admin auth tokens that prevented them from returning certain hidden results when requested from the API (?include_hidden=1).
- Fixed an issue with AP Style where duplicate am/pm flags weren’t always correctly being removed, depending on whitespace in the time format settings.
- Fixed an issue where tags in public submissions could erroneously be split by spaces when only one tag was submitted.
- Fixed an issue that prevented Content Layour UI for class=”lw_layout_block” (buttons for add, remove, move up, move down) from appearing in back-end editors when cursor was placed inside of a content layout.
- Fixed an issue that could cause LiveWhale Calendar pages to generate event links starting with // erroneously when loading calendar views within an iframe.
- LiveWhale CMS Only
- Fixed an issue where file upload fields weren’t loading properly when in a LiveWhale Form attached to an event RSVP.
- Fixed an issue where Event RSVPs with extra LiveWhale Forms attached could fail Recaptcha validation.
- Fixed an issue where requesting a custom details template that was missing (404 error) would fail to redirect to the working default template.
- Fixed an issue that could cause problems with gallery widgets nested inside the format_widget setting of another widget.
- Fixed an issue with LiveWhale Blogs that could prevent certain group template variables from being correctly populated on a blog post with a customized URL.
- Fixed an issue where shared blurbs could sometimes erroneously show a broken link icon in the manager, even if they don’t have any underlying details URLs.
- Fixed an issue where custom blog post templates could not display custom variable values.
- Silenced broken-URL warnings when saving blurb types that don’t have details pages (no front-end linking exists). Also updated the editor page to link to the back-end editor for such shared blurbs instead of any front-end URL.
- Fixed an issue where using a /path/to/custom/template at the end of a details URL could get dropped if redirecting to a newer version of that same URL.
Developer options
- Unmapped X- attributes in the iCAl parser are now passed through to the saved data buffer where they will be available to custom module code.
- Updated default 404 page for installations where it has not been customized.
Behind-the-scenes
- Improved performance of logic that generates front-end checkboxes for calendar categories.
- Adjusted the timing of some overnight database optimization to improve performance.
- Fixed an issue where the SiteImprove scanner was being blocked from generating new image variations, which could cause false positives when scanning for 404 errors.
- Fixed an issue with SAML integrations in cases where the IdP sends duplicate values for FriendlyName in its SSO response.
Release date: March 23, 2025