GravityCalendar Changelog

Release notes and version history for GravityCalendar . Turn Gravity Forms entries into dynamic calendars to showcase events, schedules, appointments, and more.

2.26.1 on October 29, 2026

This release strengthens security and fixes several issues with Calendar widgets in DataTables Views.

🔒 Security

  • Improved how HTML is handled in events from other calendar feeds when "Allow HTML Content" is on.
  • Events of a deactivated calendar are now available only to users who can edit calendars.
  • Only users who can edit calendars now see secured and deactivated calendars in the block and Elementor editors.
  • If a secured calendar stops showing on a page, a user who can edit calendars can save the page to show it again.

🐛 Fixed

  • AI assistants are now told that an event on a calendar with no Start Time field can only move to another day.
  • Some searches with "Navigate to Events" and Dynamically Load Events on now show an empty calendar instead of an error.
  • Calendar widgets in DataTables Views:
    • In Preloaded (Client-side) mode, a widget showing the entries on the page now shows the events of the rows on screen, and changing the table's page, sorting or search no longer causes a JavaScript error;
    • On a page that shows the View twice, each table now updates only its own widgets;
    • Each widget now follows its own "Display events for" setting, even when two widgets use the same calendar.

🔧 Updated

💻 Developer Updates

  • With "Allow HTML Content" on, events added with the gravityview/calendar/events filter now go through the same HTML filtering in the browser.
Version 2.26.1 permalink

2.26.0 on October 22, 2026

This release lets AI assistants manage calendars, updates a calendar as soon as its form is submitted on the same page, and improves conditional logic. It also strengthens security and fixes many issues with event links, dragging events, and the Calendar widget.

Note: Clear your site's page cache after updating so secured calendars show events from other calendar feeds.

🚀 Added

  • AI assistants connected through the GravityKit MCP can now list, create, change, and delete calendars, list a calendar's events, and move or resize events, limited to what the account they sign in with is allowed to do on the calendar settings screen or with drag-and-drop editing.

✨ Improved

  • Calendars on the same page as their form now show a new entry as soon as the form is submitted with AJAX, without reloading the page or leaving the month being viewed (entries the calendar would not otherwise show, such as those awaiting approval, stay hidden).
  • Enhanced conditional logic:
    • Condition dropdowns that search users, entries, or posts now load their choices as soon as they are opened;
    • Conditions using the {get} merge tag found no entries or the wrong ones when the value in the page address contained &, +, or % (such as "Research & Development"), and changed other {get} merge tags on the page;
    • Conditions on GP Nested Forms fields and other fields that store several users, posts, or entries (such as Dynamic Lookup and Populate Anything fields) were slow on forms with a few hundred entries;
    • "Has any of", "has all of", and "has none of" conditions on Multi Select fields checked only the first selected value;
    • Condition dropdowns could open behind the WordPress admin bar, pressing Enter on a selected choice cleared it, and pressing Enter on the clear button did nothing;
    • When WordPress was set to a language other than English, date conditions showed month names, weekdays, and labels in English, and labels with an apostrophe showed ' (such as "n'est pas" in French);
    • Once a date was picked, the weekday names in a date condition's calendar were off by one day in time zones west of UTC (such as the US), and screen readers announced that calendar as "Event".

🔒 Security

  • Changes to calendars with "Enable security for this calendar" turned on:
    • Each site now uses its own unique secret, and existing shortcodes and blocks keep working with the old one;
    • Posts created or changed after this update by users who cannot edit calendars need the new secret, so insert the calendar again or have a user who can edit calendars re-save the post;
    • ACF fields on options pages, users, and terms accept only the new secret;
    • The Calendar block shows a secured calendar's secret and preview only to users who can edit calendars;
    • The Elementor widget shows a secured calendar only on pages last saved by a user who can edit calendars or, for calendars secured before this update, on pages unchanged since.
  • Improved the security of showing events from another calendar feed:
    • Feed events of secured or turned-off calendars are now available only on pages that show the calendar;
    • Feed addresses on a local or private network are refused when saving the calendar's settings, and are not fetched;
    • Previously saved feeds that are now refused, such as those on port 8443 or with a username and password in the address, are listed in a notice on the calendar's settings screen and recorded in the log.
  • Improved the security of event links and of HTML in events:
    • Event links now open only web addresses, or email, phone, and text message links whose mailto:, tel:, or sms: is typed into the Event URL setting (such as mailto:{Email:3});
    • With "Allow HTML Content" on, event titles, descriptions, and locations keep links and formatting such as bold text, but drop anything that could run a script and embedded content such as iframes;
    • Turning on "Allow HTML Content" now requires a user who can post unfiltered HTML, such as an administrator on a single site.

🐛 Fixed

  • Calendars whose events link to a Single Entry page caused a fatal error when that View had been permanently deleted.
  • The Calendar widget showed an empty calendar on Views that join forms with Multiple Forms when "Display events for" was set to "Entries shown on the page", or to "All View entries" without Dynamically Load Events, and always when the calendar belonged to the joined form.
  • With Dynamically Load Events turned on, the Calendar widget showed no events after a search that sent more than one value for a field, such as two ticked checkboxes or a date range.
  • Calendars added to a View's Single Entry layout with the [gravitycalendar] shortcode did not appear when the entry was opened in a lightbox, and the [gravitycalendar_copy_button] button there did not copy the calendar's link.
  • Issues with event links:
    • On sites with permalinks set to "Plain", event links to an entry on another page opened the calendar's own page or a "Page not found" page;
    • Event links built with merge tags lost every query parameter after the first;
    • Custom event links entered without http://, such as example.org/page, opened a missing page on your own site (links without http:// or a leading / are now treated as web addresses, so start links to your own site with /, such as /page/{entry_id}).
  • Issues with dragging events:
    • Times were saved in the wrong format for the form's Time field, such as 2:00 pm instead of 14:00 in a 24-hour field;
    • On calendars that date events by when entries were created or last updated, dragging an event appeared to move it without saving anything, instead of returning it to its original date (those dates can't be changed).
  • On sites that display PHP warnings, calendars showed no events from feeds on other websites added with "Display Events from Another Calendar Feed".
  • The Calendar block listed calendars from forms in the trash.
  • Accessibility issues:
    • Accessibility checkers such as axe reported an error on events with a tooltip in the month, week, and day views;
    • Screen readers announced the calendar's previous and next arrows as unnamed images.
  • When WordPress was set to a language other than English, the "Click to copy" and "Copied!" text beside a calendar's shortcode and the "Invalid URL" error for the Calendar Feed URL setting were always in English.

💻 Developer Updates

  • Added eight abilities to the WordPress Abilities API under gk-gravitycalendar/ (calendars-list, calendar-get, calendar-settings-schema, events-list, calendar-create, calendar-update, calendar-delete, and event-reschedule), which GravityKit Foundation exposes as gc_* MCP tools.
  • Added gk/gravitycalendar/secret/allow-legacy filter to control whether calendars accept their secret from before this update (by default, only calendars secured before the update accept it, in the places listed above; return true to accept it everywhere or false to require the new secret everywhere).
  • Added gk/gravitycalendar/events/form-submit/reload filter to turn off reloading a calendar's events after its form is submitted on the same page.
  • Added gvFullCalendar.reloadEntryEvents( calendar_id ), which reloads a calendar's entry events without changing its date, and the gk/gravitycalendar/events/reloaded event, which fires on the calendar element and bubbles up to document when a reload finishes.
  • Secrets are now stored in the gk_gravitycalendar_secret_key option, alongside gk_gravitycalendar_secret_legacy_feeds (calendars that still accept their old secret) and gk_gravitycalendar_secret_legacy_since (when that list was created); copy all three when migrating a site, or shortcodes added after this update show nothing on the new site.
  • To show a calendar feed from a server on a private network, allow its host with WordPress's http_request_host_is_external filter, and a port other than 80, 443, or 8080 with http_allowed_safe_ports.

🔧 Updated

Version 2.26.0 permalink

2.25.0 on October 15, 2026

This release displays calendars entirely in their chosen language, resolves several issues with event dates and times, and includes a security improvement; we recommend updating.

✨ Improved

  • All calendar text, including "all-day", "+3 more", and button tooltips, can now be translated or reworded with a translation plugin such as Loco Translate.
  • Calendars set to a language other than the site's now download that language's translation automatically when their settings are saved.

🔒 Security

  • Improved security when moving and resizing events on the calendar.

🐛 Fixed

  • Calendars set to a language other than the site's displayed some text in the wrong language:
    • "all-day", "+3 more", "No events to display", and the Previous and Next button tooltips always appeared in English;
    • Toolbar buttons such as Today, Month, Week, and Day used the site language instead of the calendar's Localization setting.
  • Timed events from external calendar feeds (such as Google Calendar, Outlook, or iCloud) appeared at their original time in the feed's time zone instead of being converted to the site's time zone like the calendar's own events.
  • All-day events in calendar subscription links had incorrect end dates: one-day events ended on the day they started, and events without an end date ran until the subscription was last updated.
  • Resizing an event to span several days on a calendar without an End Date field changed the event's start date instead of undoing the resize.

💻 Developer Updates

  • The calendar's language downloads respect Foundation's gk/foundation/translations/disable-download filter, so a site that turns off translation downloads gets none.
  • Deprecated the gravityview/calendar/scripts/fullcalendar/locales_dir_url filter. The calendar no longer loads FullCalendar's locale files, so the filter has no effect. Change the calendar's text with a translation or with the gravityview/calendar/options filter, whose values still take priority.

🔧 Updated

  • Carbon date library to version 2.73.0, which includes the fix for CVE-2025-22145 (GravityCalendar does not use the affected function, so sites were not exposed) and restores translation files left out of earlier releases.
  • Foundation to version 1.37.0.
Version 2.25.0 permalink

2.24.0 on October 8, 2026

This release improves conditional logic, resolves a security issue and several display issues with the Calendar widget, and fixes event times that varied between visitors; we recommend updating.

Note: GravityCalendar now requires Gravity Forms 2.9.4 or newer.

✨ Improved

  • Calendar widget compatibility with Views that refresh their results without reloading the page, such as when a map is moved.
  • Enhanced conditional logic:
    • Conditions on fields that store a user, post, or entry ID (such as Dynamic Lookup, Populate Anything, and Nested Forms fields) now match the name the field displays, limited to records the visitor can see ("is" and "is not" with a number still compare the stored ID);
    • "Is", "is not", "in", and "not in" conditions on a Product, Option, or Shipping field choice found no entries;
    • Conditions on Entry Date, Date Updated, or Payment Date with a value that was not a date, such as a merge tag for a text field, caused a fatal error on PHP 8;
    • On translated sites, screen readers announced the day, month, and year of date conditions in English.

🔒 Security

  • The Calendar widget could show entries that the View itself did not display, including every entry in the calendar when "Show only approved entries", a search, or a View filter left the View with no results.

🐛 Fixed

  • Calendars using an Event field showed events in each visitor's local time, so the time (and sometimes the day) varied between visitors instead of matching the time that was entered.
  • A calendar placed on the same page after a View's Calendar widget could display that View's events instead of its own, or no events at all if the View used the DataTables layout.
  • Views with the "Hide View data until search is performed" setting enabled still showed every entry in the Calendar widget before a search when "Display events for" was set to "All View entries".
  • Content placed after a calendar whose events link to a single entry could behave as though it were on the linked View's page.

🔧 Updated

Version 2.24.0 permalink

2.23.1 on October 1, 2026

This update makes event descriptions accessible to keyboard and screen reader users and fixes calendar layout and block editor preview issues.

🐛 Fixed

  • Keyboard and screen reader issues with event descriptions:
    • Descriptions in the List and Agenda layouts opened only on mouse hover, not when an event was reached with the keyboard;
    • List events without a link could not be reached with the Tab key;
    • Descriptions stayed open after keyboard focus moved past a link inside them;
    • Screen readers did not announce an event's description when the event had keyboard focus.
  • Calendar buttons that did not fit on one row, including the default buttons on phones, spilled past the calendar's edge and squeezed the month title onto two lines (they now wrap onto additional rows).
  • With Gravity Forms 2.x, the GravityCalendar block showed a "This block has encountered an error and cannot be previewed" message in the block editor after a feed was selected (the preview now works and matches the calendar's look on the site).

🔧 Updated

Version 2.23.1 permalink

2.23.0 on September 24, 2026

This release makes conditional logic more accessible and fixes matching on product prices.

Note: GravityCalendar now requires WordPress 6.5 or newer.

✨ Improved

  • Keyboard and screen reader accessibility of conditional logic: focus stays in place when adding or removing a condition, the AND/OR switch is a single control, and date fields and buttons identify the field they belong to.
  • Wider Custom Value box in narrow settings panels.

🐛 Fixed

  • Conditional logic on product prices matched the wrong entries, especially with currencies that use a comma for decimals or place the symbol first (such as Pound Sterling).
  • The page scrolled when a date picker calendar was opened or closed.

🔧 Updated

Version 2.23.0 permalink

2.22.0 on September 3, 2026

This release adds a GravityCalendar widget for Elementor, allows overriding calendar height when embedding, and fixes some bugs. GravityCalendar now requires WordPress 5.6 or newer.

🚀 Added

  • A GravityCalendar widget for Elementor. Drag it onto the page, pick a calendar, and it renders in the editor as it will on the page — no shortcode to paste. The widget is under the GravityKit category in the widget panel.
  • Ability to override the calendar's defined height when embedding a calendar:
    • Shortcode: [gravitycalendar id="5" height="400px"]. Accepts the same values as the Calendar Height setting — 400px, 100%, 10vh — plus auto;
    • GravityCalendar block: a Height field under Calendar Size in the block settings;
    • Elementor widget: a Height slider on the Style tab.

✨ Improved

  • Added support for the Block Editor's version 3 block API.

🐛 Fixed

  • Calendars whose feed was created outside the settings screen — through the API, or before the Sizing setting existed — logged a PHP warning every time they rendered.
  • Only administrators could open a form's GravityCalendar feed settings. Now, anyone who can edit forms can edit the feed.
    • Administrators on sites running the Members plugin could not see the feed settings.
  • Merge tag pickers were not showing in the calendar feed settings screen.
  • The Active/Inactive toggle on the All Calendars screen displayed as a plain, unstyled button.
  • Calendar toolbar buttons showed HTML character codes instead of punctuation in some languages — in French, the "Today" button read "Aujourd'hui" rather than "Aujourd'hui".
  • The calendar's Filter control did nothing on calendars whose Localization is set to a language other than English.
  • GravityCalendar block preview in the WordPress editor:
    • Did not recover when a feed was selected again after its settings had failed to load;
  • In the WordPress 7.1 editor:
    • Showed "This block has encountered an error and cannot be previewed" instead of the calendar;
    • Did not switch the active Stack/Grid button of the multi-month layout;
    • Kept the Filter button instead of replacing it with the search box, so events could not be filtered;
    • Opened event tooltips away from their event when the interactive option is turned off.
    • Showed JavaScript errors in the browser console;
    • Clicking the export link in the GravityCalendar Buttons block preview downloaded the calendar file.

🔧 Updated

Version 2.22.0 permalink

2.21.0 on August 27, 2026

This release speeds up calendar subscriptions, keeps them up to date when entries change, and fixes several subscription and timezone issues.

✨ Improved

  • Completely reworked how calendar subscriptions are generated to improve performance.
    • Large calendar feeds now generate without a sweat (tested on forms with more than 20,000 entries);
    • Now served from a stored copy that refreshes hourly and when you save the feed.
  • Downloading a single event, or attaching one to a form notification, is much faster.
  • Conditional logic date filters have a clear button and an improved date picker, and Dynamic Lookup filters use the Lookup plugin's own API when available (Gravity Forms Lookup Field 1.8 or newer).

🐛 Fixed

  • Events using "Entry Date (Created)" or "Entry Date (Updated)" were displayed in UTC instead of the site's timezone.
  • Entry changes did not reach calendar subscriptions until the stored copy expired. Now, new, edited, and deleted entries update subscriptions immediately.
    • Improves support for changes made through GravityView, GravityEdit, GravityRevisions, and GravityImport.
  • Deleted, disabled, or regenerated feeds returned a server error instead of reporting that the feed no longer exists.
  • Subscription links kept the site's previous domain after a move. Saving the feed now updates the link without breaking existing subscriptions.
  • A subscription too large for the server's time limit now properly reports a server error.
  • Pressing Enter while editing feed settings regenerated the subscription URL and broke existing subscriptions. The URL now changes only when you click "Regenerate URL".

💻 Developer Updates

  • Added filters for the stored calendar: gk/gravitycalendar/ics-export/cache/enabled (turn it off site-wide or per feed), gk/gravitycalendar/ics-export/cache/lifetime (default: one hour), and gk/gravitycalendar/ics-export/cache/rebuild-timeout (default: ten minutes).

🔧 Updated

Version 2.21.0 permalink

2.20.0 on August 13, 2026

This release adds support for appending .ics to calendar subscription links and fixes subscribed calendars duplicating events on every refresh.

🚀 Added

  • Support for appending .ics to the generated calendar subscription link, for calendar applications that only accept URLs ending in .ics (existing links continue to work without the suffix).

🐛 Fixed

  • Events in a calendar subscription received a new identifier on every refresh, causing subscribed calendars to re-add all events on each sync instead of updating the ones they already have.

🔧 Updated

Version 2.20.0 permalink

2.19.0 on August 6, 2026

This release removes an unnecessary database query from every calendar load and makes the event limit work correctly on calendars that read their events from the database.

✨ Improved

  • Removed an unnecessary database query that ran, and returned no results, every time a calendar's events were loaded.

🐛 Fixed

  • Setting the event limit to a negative value now means "no limit", as it does elsewhere in WordPress, instead of dropping the last event.
  • The warning logged when the event limit is reached now appears only when entries were actually left out, not when the number of events merely equals the limit.

💻 Developer Updates

  • The gravityview/calendar/settings/total-event-limit filter now applies to events read from the database, where it previously had no effect. The limit defaults to unlimited for database entries, so calendars without a filter callback display exactly as before — but a callback returning a positive number now takes effect on those calendars. Events supplied through the gravityview/calendar/events/source_data filter still default to 1000. The limit counts only events the calendar displays, so it is never spent on entries that other filters remove.

🔧 Updated

Version 2.19.0 permalink

2.18.0 on July 16, 2026

This release enhances conditional logic filtering, makes the single entry "Go Back" button return to the calendar the event was clicked on, and clears PHP notices that could appear when rendering calendars.

✨ Improved

  • Calendar events that link to a single entry now remember the page the calendar is on: the "Go Back" button on the Single Entry page returns to the calendar instead of the View's Multiple Entries page, including after editing the entry.
  • Enhanced conditional logic:
    • Choice-based filters now offer a searchable dropdown whose results page in as you scroll, so fields with large option lists stay fast and usable instead of trying to render every choice at once. This covers the standard choice fields (Drop Down, Checkbox, Radio, Multi Select) as well as Dynamic Lookup and Populate Anything fields, which draw their options from large external data sets;
    • Use a field merge tag (e.g. {Threshold:2}) as a filter value to compare two fields of an entry instead of a static value;
    • Compare against a field on a joined form (Multiple Forms) with a form: modifier, e.g. {Reorder threshold:1:form:123};
    • The "has ALL of" operator on checkbox and other multi-value fields matched every entry instead of only those containing all the selected values;
    • Switching a condition between single-value and multi-value operators could save a mismatched value shape.

🐛 Fixed

  • A _load_textdomain_just_in_time notice (WordPress 6.7+) appeared because some plugin components loaded translations too early.
  • Two Undefined array key "controls" PHP notices appeared when rendering a calendar whose feed had no header/footer controls setting saved.
  • Internal Ajax parameters (nonce, date range, calendar ID) appeared in single entry links generated by calendars that load events dynamically.

🔧 Updated

Version 2.18.0 permalink

2.17.0 on June 4, 2026

This release improves conditional logic with a searchable picker for multi-selection filters, a new "has NONE of" operator, and a redesigned date picker.

✨ Improved

  • Enhanced conditional logic:
    • Value filters that accept multiple selections now use a searchable picker for quicker selection, plus a new "has NONE of" operator for excluding multiple values at once;
    • Conditions on date fields now use a redesigned calendar date picker for easier date entry.

🔧 Updated

Version 2.17.0 permalink

2.16.2 on May 7, 2026

This release fixes missing conditional logic controls under "No Conflict" mode and calendar event tooltips appearing behind the day-of-week header.

🐛 Fixed

  • Controls for adding new conditional logic rules were missing when "No Conflict" mode was active.
  • Calendar event tooltips could render behind the day-of-week header.

🔧 Updated

Version 2.16.2 permalink

2.16.1 on April 27, 2026

This hotfix restores the controls for adding new conditional logic rules.

🐛 Fixed

  • Conditional logic controls missing in the feed settings when no rules had been configured.
Version 2.16.1 permalink

2.16.0 on April 23, 2026

This release resolves multiple issues with conditional logic, including empty date field values being misinterpreted, filters referencing deleted forms, and admin-only filters applied to multi-value fields.

✨ Improved

  • Enhanced conditional logic:
    • Empty field values are no longer treated as today's date when using is on, is not on, is before, or is after filters;
    • Filters on deleted or missing forms (e.g. when viewing feed settings for a removed form) no longer trigger errors;
    • Admin-only filters (those suffixed :disabled_admin) no longer error out when applied to multi-value fields.

🔧 Updated

Version 2.16.0 permalink

2.15.0 on March 26, 2026

This update improves conditional logic with better Multiple Forms compatibility, numeric comparisons, and author search.

✨ Improved

  • Enhanced conditional logic:
    • "Created By" filter now supports searching by username, display name, email, or login;
    • Product and pricing field filters now correctly compare numeric values, ignoring currency formatting;
    • Filters for fields on joined forms (via Multiple Forms) now correctly resolve field types and merge tags;
    • Fixed "Approval Status" filter option appearing twice in the dropdown;
    • Fixed CSS scoping to prevent style collisions with other GravityKit products.

🔧 Updated

Version 2.15.0 permalink

2.14.1 on March 5, 2026

This release fixes calendar event links for Views using the Multiple Forms extension.

🐛 Fixed

  • Calendar events now link to the correct Single Entry page when the View uses the Multiple Forms extension, showing data from all joined forms.

🔧 Updated

Version 2.14.1 permalink

2.14.0 on February 12, 2026

This update adds support for external ICS feed events in calendar subscriptions, enhances conditional logic, and resolves an issue with event links in list-style views.

🚀 Added

  • Ability to include events from external ICS feeds in calendar subscription exports in addition to Gravity Forms entries.

✨ Improved

  • Enhanced conditional logic:
    • Better support for nested Repeater fields;
    • Nested field labels now include their parent field name for easier identification;
    • Custom dropdown/checkbox/radio values added dynamically now display correctly;
    • Improved compatibility with WordPress installations using SQLite.

🐛 Fixed

  • Event links to Single Entry pages were not working in list-style calendar views (e.g., Day List).

Developer Updates

  • Added gk/gravitycalendar/ics-export/external-sources filter to modify or remove external ICS sources before they are fetched for the calendar subscription export.
  • Added gk/gravitycalendar/ics-export/external-events filter to modify or remove external ICS events after fetching but before they are merged into the calendar subscription export.
  • Added gk/gravitycalendar/ics-export/events filter to modify events before they are written to the calendar subscription export.

🔧 Updated

Version 2.14.0 permalink

2.13.0 on September 25, 2025

This release enhances conditional logic, improves shortcode and event location handling, and resolves issues with HTML content and fatal errors in certain calendar feed configurations.

✨ Improved

  • Shortcodes contained in the Event Location feed setting are now processed.
  • Enhanced conditional logic:
    • Added support for using merge tags in text inputs;
    • Added automatic "Currently Logged-in User" options for Populate Anything fields using WordPress users as a source;
    • Fixed errors when using Consent field sub-inputs in conditional logic;
    • Filters using {user:} and {created_by:} merge tags are now treated as no-match when the user is logged out;
    • Other fixes and improvements.

🐛 Fixed

  • HTML content in the "Event Location" setting was not being allowed when the "Allow HTML content" setting is enabled.
  • Fatal error when creating a calendar feed for a form with a Post Category field if GravityView was not active.

🔧 Updated

Developer Updates

  • Modified the gravityview/calendar/events/do_shortcodes filter to also determine whether to process shortcodes in the Event Location feed setting.
Version 2.13.0 permalink

2.12.0 on August 28, 2025

This release improves conditional logic and fixes incorrect time display when moving events on the calendar.

✨ Improved

  • Enhanced conditional logic:
    • Added ability to search fields by "does not contain";
    • Added predefined options (e.g., Today, Tomorrow, etc.) for Date fields;
    • Created By field now support is empty and is not empty operators;
    • Fixed conditional logic not working with radio button fields and Survey field Likert scales;
    • Other fixes and improvements.

🐛 Fixed

  • Dragging and dropping events on the calendar now correctly preserves the 24-hour time format when set in WordPress settings.

🔧 Updated

  • Foundation to version 1.3.0:
    • New GravityKit global settings for logging configuration (level, type, cleanup schedule, retention);
    • A unified way to display admin notices across all GravityKit products;
    • Performance improvements and bug fixes.
Version 2.12.0 permalink

2.11.0 on March 11, 2025

This release adds more control over event links and calendar toolbar button labels, improves event tooltip display, and fixes missing form notification events in Calendar feed settings.

🚀 Added

  • Additional options for configuring event links, including a custom URL and, if GravityView is installed, a direct link to a single entry page.
  • Option to control the display of calendar toolbar button labels, allowing selection between short and full labels.

✨ Improved

  • Event tooltip visibility and positioning to prevent display issues in certain scenarios.

🐛 Fixed

  • Some form notifications were missing from the list of selectable notifications in Calendar feed settings.
Version 2.11.0 permalink

2.10.1 on February 10, 2025

This hotfix resolves an issue affecting conditional logic in feed settings.

🐛 Fixed

  • A potential JavaScript conflict that could prevent conditional logic from being configured.

🔧 Updated

Version 2.10.1 permalink

2.10.0 on January 16, 2025

This release improves conditional logic functionality and fixes a deprecation notice in Gravity Forms 2.9.1+.

✨ Improved

  • Enhanced conditional logic:
    • Added ability to define custom filter values when using the has ANY of or has ALL of operators;
    • Added support for merge tag processing in filters with multiple values;
    • Fixed an issue where a missing filter value, when combined with the has ANY of or has ALL of operators, caused the user interface to break.

🐛 Fixed

  • Deprecation notice in Gravity Forms 2.9.1 or newer caused by the use of the GFFormsModel::matches_operation() method.

🔧 Updated

Version 2.10.0 permalink

2.9.0 on November 28, 2024

This release adds a simple way to access all calendar feeds from the GravityKit menu.

🚀 Added

  • "All Calendars" menu under GravityKit to conveniently access and filter all calendar feeds in one place.
Version 2.9.0 permalink

2.8.3 on November 21, 2024

This hotfix update addresses a non-critical PHP notice in WordPress 6.7 and newer.

🐛 Fixed

  • PHP notice in WordPress 6.7 caused by initializing product translations too early.

🔄 Updated

Version 2.8.3 permalink

2.8.2 on November 8, 2024

This release improves conditional logic functionality, fixes issues with language selection and missing locales, and addresses a PHP deprecation error.

✨ Improved

  • Conditional logic:
    • Added support for is empty and is not empty operators for fields with predefined choices;
    • Introduced a new option to specify a custom value for the contains operator when fields have predefined choices;
    • General bug fixes.

🐛 Fixed

  • Language selection in the feed editor was not working correctly, and some locales were missing from the list.
  • PHP deprecation error.
Version 2.8.2 permalink

2.8.1 on November 4, 2024

This hotfix release addresses an issue that prevented the calendar from displaying.

🐛 Fixed

  • JavaScript error that caused the calendar not to display when event editing was enabled in the calendar feed.
Version 2.8.1 permalink

2.8.0 on November 1, 2024

This release updates FullCalendar to version 6, introducing features like multi-month layouts and expanded calendar language support.

🚀 Added

  • Support for multi-month grid and stack layouts, allowing you to display multiple months at once.
  • Additional calendar languages.

🔧 Updated

Version 2.8.0 permalink

2.7.3 on September 16, 2024

This update resolves the issue with external calendar feeds not loading and fixes a 404 error in the browser console.

🐛 Fixed

  • 404 error in the browser console caused by a missing stylesheet.
  • Events from external calendar feeds not loading.

🔧 Updated

Version 2.7.3 permalink

2.7.2 on August 16, 2024

This update includes several bug fixes and updates internal components for better performance and compatibility.

🐛 Fixed

  • Calendar did not respect the setting to navigate to the first available past or future event when no current events were available.
  • Copying text inside the event cell or tooltip was not possible even when the event was not editable.
  • PHP warning due to an undefined array key.

🔧 Updated

Version 2.7.2 permalink

2.7.1 on May 9, 2024

This release resolves an issue with the ICS export URL and updates internal components to improve performance and compatibility.

🐛 Fixed

  • Calendar subscription links weren't working, preventing users from accessing and subscribing to events.

🔧 Updated

  • Foundation to version 1.2.13.
    • Fixed a bug that prevented WordPress from loading third-party plugin translations after their updates.
    • Improved internal check for product updates that could still interfere with third-party plugin updates.
Version 2.7.1 permalink

2.7.0 on April 24, 2024

This release enhances the conditional logic functionality in calendar feeds, adds instant filtering of events, and fixes the display of events without end dates.

🚀 Added

  • Instant filtering of calendar events.
  • Ability to nest conditional logic filters and to filter entries based on the current user's role(s).

🐛 Fixed

  • Events without an end date now appear on the calendar.
Version 2.7.0 permalink

2.6.2 on April 18, 2024

This release fixes an ICS export issue and sets event names as the default for ICS and JSON file names.

🐛 Fixed

  • ICS export issue. Thanks to Sean for discovering the issue!

✨ Improved

  • Use the event name as the file name when exporting events to ICS or JSON. Thanks to Karl for the suggestion!

🔧 Updated

  • Foundation to version 1.2.12.
    • Transients are no longer autoloaded.
    • Fixed a bug that hid third-party plugin updates on the Plugins and Updates pages.
    • Resolved a dependency management issue that incorrectly prompted for a Gravity Forms update before activating, installing, or updating GravityKit products.
    • GravityKit product updates are now showing on the Plugins page.
    • Database options that are no longer used are now automatically removed.

💻 Developer Updates

  • Added gk/gravitycalendar/feed/file-name filter to allow modifying the file name.
Version 2.6.2 permalink

2.6.1 on February 29, 2024

This release fixes a critical error when creating new calendar feeds, addresses issues with event time updates during movement or resizing, and updates internal components for enhanced performance and compatibility.

🐛 Fixed

  • Time now updates during moving and resizing of an event.
  • Creating a new calendar feed no longer returns an error.

🔧 Updated

  • Foundation to version 1.2.9.
    • GravityKit products that are already installed can now be activated without a valid license.
    • Fixed PHP warning messages that appeared when deactivating the last active product with Foundation installed.
Version 2.6.1 permalink

2.6 on February 21, 2024

This release enhances security, addresses multiple issues related to conditional logic, resolves a compatibility issue with DataTables version 3.3 and higher, and updates essential components to enhance performance.

🔐 Security

🚀 Added

  • A calendar shortcode can now be copied by a single click on the shortcode field.

🐛 Fixed

  • Fatal error when using DataTables with client-side processing enabled.
  • PHP 8.1+ deprecation notice.
  • Filtering by progress in conditional logic now accurately interprets entry's '100%' completion rate as 'complete'.
  • Processing conditional logic filters for non-date fields no longer results in errors.
  • "Form field ID #X is no longer available" error when adding conditional logic, despite the field existing.
  • "Created by Currently Logged-in User (Disabled for Administrators)" filter not functioning correctly with field conditional logic.
  • Incorrect results when filtering checkbox fields using the "is not" condition.

🔧 Updated

  • Foundation to version 1.2.8.
    • Transients are now set and retrieved correctly when using object cache plugins.
    • Fixed a JavaScript warning that occurred when deactivating license keys and when viewing products without the necessary permissions.
    • Resolved PHP warning messages on the Plugins page.
Version 2.6 permalink

2.5 on December 21, 2023

This release adds support for displaying multiple public calendar feeds on the same calendar and improves the performance of remote feeds.

🚀 Added

  • Support for showing multiple public calendar feeds on the same calendar by separating URLs with commas.

✨ Improved

  • Caching of remote feeds for 10 minutes to enhance performance.

💻 Developer Updates:

  • Added the gk/gravitycalendar/event-sources filter to modify extra calendars displayed on a calendar. See example code.
  • Modified the $extra_options array passed to the gravityview/calendar/extra_options filter:
    • Removed the ical_feed key.
    • Removed the ical_color key.
    • Added the ical_feeds key, containing an array of all public calendar feed URLs with this structure:
      • url: URL to the public calendar feed.
      • color: any valid CSS color.
      • type: ics or json.
Version 2.5 permalink

2.4.3 on December 19, 2023

  • Fixed: Conditional logic in GravityCalendar feeds causes a fatal error if GravityView is not installed
Version 2.4.3 permalink

2.4.2 on December 12, 2023

  • Fixed: GravityCalendar feeds now correctly handle relative dates (e.g., "today", "yesterday") in conditional logic configured for date fields
  • Fixed: View's Advanced Filter conditions not being respected inside the View calendar widget
  • Updated: Foundation to version 1.2.6

Developer Updates:

  • Added: gk/gravitycalendar/events/custom-response filter to short-circuit the event fetching process and return a custom response
Version 2.4.2 permalink

2.4.1 on November 29, 2023

  • Fixed: Excessive whitespace appearing in the categories section when using the block editor
Version 2.4.1 permalink

2.4 on November 9, 2023

  • Added: Option to automatically attach an ICS event calendar file to form notification emails
  • Improved: Performance when querying events on hosts with limited resources
  • Fixed: Date picker not working in Conditional Logic
  • Fixed: Deprecation notice in PHP 8.2+
  • Fixed: Calendar feed's Conditional Logic not being respected inside the View widget
  • Fixed: Fatal error when the View widget is configured to display all entries
  • Updated: Foundation to version 1.2.5

Developer Updates:

  • Deprecated: GravityView_Widget_Calendar::get_entries() method
  • Removed:
    • GV_Extension_Calendar_Feed::calculate_fullcalendar_plugins() and GV_Extension_Calendar_Feed::convert_button_to_plugin_name() methods that was deprecated in 1.5
    • GV_Extension_Calendar_Feed::calculate_frontend_enqueues() method that was deprecated in 1.5.1
    • gravityview/calendar/settings/search_criteria filter that was deprecated in 1.5.7
  • Added: gk/gravitycalendar/settings/db-batch-size filter to modify the number of entries fetched from the database at a time
Version 2.4 permalink

2.3.6 on September 18, 2023

  • Fixed: Calendar Buttons and Link blocks not working in the Gutenberg editor
  • Fixed: "Copy Calendar Feed URL" button not copying the URL to the clipboard
  • Fixed: Multi-line description fields in calendar feeds would only display the first line of text
Version 2.3.6 permalink

2.3.5 on September 7, 2023

  • Improved: Support for RTL languages
  • Fixed: Events starting before or ending after the visible date range of the view were not being displayed
  • Updated: Foundation to version 1.2.2
Version 2.3.5 permalink

2.3.4 on July 12, 2023

  • Fixed: Incompatibility with some plugins/themes that use Laravel components
  • Fixed: Timezone issues for all-day events in ICS feeds
  • Updated: Foundation to version 1.1.1
Version 2.3.4 permalink

2.3.3 on February 23, 2023

  • Fixed: "Greater than" and "less than" comparison not working with the "Total" field in conditional logic
  • Fixed: It was possible for the "Calendar Controls" setting to become corrupted
  • Fixed: All-day single-day events could span multiple days due to timezone issues
  • Removed: Calendar formatting validation for the "Display Events from Another Calendar Feed" setting because the validation was too strict
  • Updated: Foundation to version 1.0.9
Version 2.3.3 permalink

2.3.1 on December 21, 2022

  • Fixed: PHP 8.1 notices
  • Fixed: Fatal error on some hosts due to a conflict with one of the plugin dependencies (psr/log)
Version 2.3.1 permalink

2.3.0.1 on December 16, 2022

  • Fixed: Calendar Feed URL wasn't loading necessary scripts
Version 2.3.0 permalink

2.2.5 on December 14, 2022

  • Fixed: The plugin would display a notice requiring Gravity Forms 2.5 even if it's already installed
  • Fixed: Fatal error on some hosts that use weak security keys and salts
Version 2.2.5 permalink

2.2.4 on December 1, 2022

  • Fixed: It was not possible to remove an expired license key
Version 2.2.4 permalink

2.2.2 on November 14, 2022

  • Fixed: Fatal error when loading plugin translations
  • Fixed: Slow loading times on some hosts
  • Fixed: Plugin failing to install on some hosts
Version 2.2.2 permalink

2.2.1 on October 31, 2022

  • Added: Support for future "Event" Gravity Forms field type when choosing a date field
  • Fixed: Plugin was not appearing in the "Add-Ons" section of the Gravity Forms System Status page
Version 2.2.1 permalink

2.2 on October 24, 2022

  • Added: New WordPress admin menu where you can now centrally manage all your GravityKit product licenses and settings (learn more about the new GravityKit menu)
    • Go to the WordPress sidebar and check out the GravityKit menu!
    • We have automatically migrated your existing GravityCalendar license, which was previously entered in the Gravity Forms settings page
    • Request support using the "Grant Support Access" menu item
  • Fixed: FullCalendar and Popper libraries were updated to the latest versions but not included in the previous release
  • Fixed: Potential fatal error when parsing shortcodes
Version 2.2 permalink

2.1 on September 1, 2022

  • Improved: Now you can use the {get} Merge Tag to filter displayed entries by passing URL parameters
  • Updated: The name of the plugin is now GravityCalendar, so we updated shortcodes to use the new name. Prior shortcodes will continue to work!
    • [gravitycalendar] instead of [gv_calendar]
    • [gravitycalendar_link] instead of [gv_calendar_link]
    • [gravitycalendar_copy_button] instead of [gv_calendar_copy_button]
    • [gravitycalendar_export_button] instead of [gv_calendar_export_button]
  • Updated: Use the GravityCalendar icon in the plugin menu and on blocks
  • Fixed: Scripts and styles were loading on pages without calendars

Developer Updates:

  • Updated: FullCalendar library from 5.10.1 to 5.11.3
  • Updated: Popper library from 2.9.3 to 2.11.6
Version 2.1 permalink

2.0.2 on July 31, 2022

  • Updated: Uses our new GravityCalendar icon in the Gravity Forms menu
  • Fixed: Javascript error when configuring Legacy Widgets in the WordPress Dashboard
  • Tested to WordPress 6.0.1
Version 2.0.2 permalink

2.0.1 on April 19, 2022

  • Fixed: Invalid .ics file is generated when using a manual timezone offset (e.g., 'UTC-4' instead of 'America/New_York')
Version 2.0.1 permalink

2.0.0.1 on March 15, 2022

  • Fixed: Calendar feeds not working due to the library not being included in the downloaded file
Version 2.0.0 permalink

2.0 on February 17, 2022

Note: This version requires WordPress 5.3 and PHP 7.4 or newer.

  • Added: Calendar subscription links! People can now subscribe to your calendar feed in Google Calendar and Apple Calendar
    • Visitors can also download .ics files that can be imported into calendars
    • New "GravityView Calendar Link" and "GravityView Calendar Buttons" blocks to make it easy to share links to your calendars (learn how to use the new blocks)
    • New [gv_calendar_link], [gv_calendar_export_button], and [gv_calendar_copy_button] shortcodes (learn about the new shortcodes)
  • Fixed: Styles not outputting when a calendar is embedded on block themes (in WordPress 5.9 and higher)
  • Fixed: Translations not loading properly
  • Fixed: Merge tags were not being processed inside Conditional Logic
  • Fixed: Calendar height setting now allows all CSS units
  • Upgraded: FullCalendar from 5.6 to 5.10.1
  • Updated: Polish translation (Thanks Dariusz Z!)
Version 2.0 permalink

1.7.0.1 on December 20, 2021

  • Fixed: Potential fatal error when Calendar is embedded on a page and GravityView is not installed. Calendar does not require GravityView, sorry for the issue.
Version 1.7.0 permalink

1.7 on December 16, 2021

The next version of Calendar adds great functionality that requires PHP 7.4. Please contact your host to update your PHP version!

  • Updated: Now using Version 5.10.1 of FullCalendar. There are HTML changes as well as accessibility improvements.
  • Improved: Calendar week start day now defaults to the value of the "Week Starts On" setting configured in WordPress. Read how to modify the week start date.
  • Improved: Added "Entry Approval Status" option under Conditional Logic
  • Improved: It is now possible to filter only those entries that have been updated since creation
  • Fixed: Event description tooltip would be displayed underneath an event when using an Agenda layout with overlapping events
  • Fixed: JavaScript error when a Conditional Logic filter is configured for a multi-input form field that no longer exists
  • Fixed: MySQL error on certain hosts when "Date Updated", "Date Created" or "Payment Date" entry meta are filtered using the "is empty" condition
  • Fixed: Removed a line of code that only works in PHP 7.0
Version 1.7 permalink

1.6.1 on September 27, 2021

  • Fixed: Fatal error when trying to detect Gutenberg editor
  • Fixed: Events without defined start/end time and spanning multiple days (e.g., September 28-30) would show as ending one day earlier
  • Fixed: Plugin styles and scripts would load on pages that do not have embedded calendars
  • Improved: Fully hiding Calendar feed options that should only be shown when a linked option is toggled
Version 1.6.1 permalink

1.6 on August 31, 2021

  • Added: New Conditional Logic that lets you filter events using AND/OR operators
    • Many more Conditional Logic filtering options are available!

Developer Updates:

Version 1.6 permalink

1.5.6 on August 5, 2021

  • Fixed: Line breaks ("n") appearing in event title/description
  • Fixed: Fatal error when dragging and dropping events
Version 1.5.6 permalink

1.5.5 on July 22, 2021

  • Added: Settings option to control the display of HTML content in event title/description
    • Please note that this option is disabled by default and you may have to update your Calendar feed settings
  • Fixed: Display of event color swatches in Calendar feed settings
Version 1.5.5 permalink

1.5.4 on June 28, 2021

  • Fixed: Events that had a start time but no end time were being shown as ending at 23:59
  • Fixed: Fatal error when event has an incorrect start/end time (e.g., "00:00 pm")

Developer Updates:
* Added: gravityview/calendar/events/allow_invalid_start_date filter to allow events with invalid start date

Version 1.5.4 permalink

1.5.2 on June 15, 2021

  • Improved: Event description tooltips are now interactive by default
  • Fixed: Event tooltips will not show when the description is empty
Version 1.5.2 permalink

1.5.1 on May 24, 2021

  • Fixed: Plugin scripts and styles interfering with page/post editor
  • Fixed: Calendar Gutenberg block preview not being generated
  • Fixed: Calendar controls setting not being saved in Gravity Forms 2.5
  • Fixed: Loader animation in GravityView DataTables layout
  • Updated: FullCalendar library was updated to v5.7 (see a list of new features)
Version 1.5.1 permalink

1.5 on May 13, 2021

  • Added: Dynamic loading of events based on the date range displayed by the Calendar view
  • Improved: Compatibility with Gravity Forms 2.5
  • Improved: Synchronization with the GravityView DataTables layout
  • Improved: The previously used tooltip library was replaced with Tippy.js v6.3.0
    • The tooltip element structure has changed and will break any custom styles
    • A custom gv-calendar theme is used that can be styled as per the official guide
  • Updated: FullCalendar library was updated to v5.6
    • This is a major release that introduces breaking changes; please consult the v5.x upgrade guide
  • Updated: Popper library was updated to v2.9.2

Developer Updates:
* Updated: New, updated and deprecated methods in the GV_Extension_Calendar_Feed, GravityView_Calendar_Ajax and GravityView_Widget_Calendar classes
* Added: gravityview/calendar/extra_options filter to modify non-core calendar options (e.g., AJAX URL, nonce, etc.)

Version 1.5 permalink

1.4.4 on March 10, 2021

  • Added icon for GravityView 2.10 widget picker
  • Fixed: Calendar would improperly display entries edited using GravityView's Inline Edit extension; thank you, Thomas!

Developer Updates:

  • Added: gravityview/calendar/settings/search_criteria filter to specify search criteria for form entries with events.
  • Added: gravityview/calendar/settings/sort_order filter to specify sort order for form entries with events.
Version 1.4.4 permalink

1.4.3 on August 27, 2020

  • Fixed: Calendar preview fails to load until a new Feed is saved
Version 1.4.3 permalink

1.4.2 on August 25, 2020

  • Fixed: Calendar preview throws an error when GravityView plugin is not activated
  • Fixed: Multiple calendars sharing a single Feed ID can't be displayed on the same page
  • Improved: DB query excludes entries with empty start/end dates
  • Modified: End Date is no longer and unless specified will be based on the Start Date
  • Updated: Russian translation (thank you, Irina F!) and Polish translation (thank you, Dariusz Z!)
Version 1.4.2 permalink

1.4.1 on August 10, 2020

  • Fixed: DataTables View layouts no longer being displayed
  • Fixed: Calendar preview not working inside the Gutenberg editor
Version 1.4.1 permalink

1.4 on August 6, 2020

  • Added: Compatibility with Gravity Forms 2.5
  • Added: You can now use shortcodes inside the Event Title and Event Description feed settings
  • Added: Integration with the Members plugin
  • Modified: Start time will not be displayed for all-day events
  • Fixed: GravityView widget not applying View settings (e.g., filter conditions) to events selected for display
  • Fixed: Event tooltips not may not appear for themes or plugins using Bootstrap tooltips
  • Fixed: Two-day events without start/end time would display as a one-day event
  • Fixed: Scripts/styles are enqueued when their dependencies are not registered
  • Fixed: Calendar preview throws an error when a feed has not yet been created
  • Fixed: PHP error when deactivating Calendar in GravityView Extensions installer
  • Fixed: Calendar grid looked bad with some themes due to CSS margins

Developer Updates:

  • Updated FullCalendar scripts to 4.4.2
  • Added: gravityview/calendar/events/do_shortcodes Whether to process shortcodes in the event title and event description
  • Added: gravityview/calendar/events/source_data filter to define form entries that will be used as the basis for FullCalendar events
  • Added: gravityview/calendar/options filter to modify calendar options that are passed to FullCalendar
  • Added: gravityview/calendar/events filter to modify the events array that is passed to FullCalendar
  • Added: gravityview/calendar/shortcode/render/element_attributes filter to apply attributes to the calendar container element
  • Modified: Stopped using gravityforms_edit_forms capability for access to Calendar settings. Now using gravityview_calendar capability.
  • Modified: Event description tooltips now use .gv-tooltip and .gv-tooltip-arrow classes instead of .gv_tooltip and .tooltip-arrow
  • Modified: Set .gv-fullcalendar table margin to 0 to fix display issues for the nested tables in the calendar output
  • Fixed: scripts/fullcalendar/locales_dir_url filter was not being applied
Version 1.4 permalink

1.3 on February 19, 2020

  • Added: Support for localization
  • Fixed: Event description not appearing in calendar
  • Fixed: Calendar not editable when using Members plugin
  • Fixed: Calendar not updating to past or future events when there are no current events
  • Updated: Polish translation - thank you Dariusz Z!

Developer Updates:

  • Added: gravityview/calendar/default_locale filter to set the default locale. By default, it is set to the site's locale.
  • Added: gravityview/calendar/scripts/fullcalendar/locales_dir_url modify URL path to FullCalendar locales directory. Modify this to use your own locales.
Version 1.3 permalink

1.2 on January 23, 2020

  • Added: Entries can be displayed on calendars using the date they were created or last updated!
  • Added: Setting to control behavior of the calendar when there are no events shown (see the options)
  • Improved: Translated error messages
  • Updated: Polish translation (thank you, Dariusz!)
  • Fixed: Editing entries
  • Fixed: Respect GravityView Advanced Filter settings for a View
  • Fixed: Sample events were showing up in GravityView Views when there were no matching entries
  • Fixed: Fatal error when GravityView isn't loaded or
  • Fixed: Fatal error when get_editable_roles() isn't defined
Version 1.2 permalink

1.1 on November 20, 2019

  • Added: GravityView integration
    • Show View entries on a new Calendar widget
    • Choose to show all View entries, or only entries currently-visible for the View
  • Added: Gutenberg Calendar block
  • Added: Visual picker for event colors
  • Improved: Use sample calendar events until feed fields are configured
  • Fixed: Fatal error when deactivating Gravity Forms when Calendar is active
  • Fixed: Number of entries displayed on calendar limited to 20
  • Fixed: Tooltip description added for the "Event Color" feed setting

Developer Updates:

  • Updated from FullCalendar 4.1.0 to 4.3.0
  • Added: gravityview/calendar/events/include|exclude filters to add/remove specific entries from rendering
  • Added: gravityview/calendar/settings/total-event-limit filter to change max # of entries displayed on a calendar (default: 1000)
  • Improved: Only enqueue scripts and styles for tooltips if there is an event description configured
  • Fixed: Scripts and styles being added to all pages, not just pages with calendars embedded
Version 1.1 permalink