 === GravityCalendar ===
Tags: gravitykit
Requires at least: 5.3
Requires PHP: 7.4
Tested up to: 6.9.4
Stable tag: trunk
Contributors: The GravityKit Team
License: GPL 3 or higher

Display Gravity Forms entries in a dynamic calendar.

== Installation ==

1. Upload plugin files to your plugins folder, or install using WordPress's built-in Add New Plugin installer
2. Activate the plugin
3. Follow the instructions

== Changelog ==

= 2.15.1 on March 27, 2026 =

* Fixes fatal error on activation introduced in 2.15.0.

= 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](https://www.gravitykit.com/extensions/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
* [Foundation](https://www.gravitykit.com/foundation/) to version 1.13.0.

= 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](https://www.gravitykit.com/extensions/multiple-forms/) extension, showing data from all joined forms.

#### 🔧 Updated
* [Foundation](https://www.gravitykit.com/foundation/) to version 1.11.0.

= 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
* [Foundation](https://www.gravitykit.com/foundation/) to version 1.10.0.

= 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
* [Foundation](https://www.gravitykit.com/foundation/) to version 1.5.0.

#### Developer Updates
* Modified the `gravityview/calendar/events/do_shortcodes` filter to also determine whether to process shortcodes in the Event Location feed setting.

= 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](https://www.gravitykit.com/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.

= 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.

= 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
* [Foundation](https://www.gravitykit.com/foundation/) to version 1.2.23.

= 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
* [Foundation](https://www.gravitykit.com/foundation/) to version 1.2.22.

= 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.

= 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
* [Foundation](https://www.gravitykit.com/foundation/) to version 1.2.21.

= 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.

= 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.

= 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
* [Foundation](https://www.gravitykit.com/foundation/) to version 1.2.20.
* [FullCalendar](https://fullcalendar.io/) to version 6.1.15.

= 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
* [Foundation](https://www.gravitykit.com/foundation/) and [TrustedLogin](https://www.trustedlogin.com/) to versions 1.2.18 and 1.9.0, respectively.

= 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
* [Foundation](https://www.gravitykit.com/foundation/) and [TrustedLogin](https://www.trustedlogin.com/) to versions 1.2.17 and 1.8.0, respectively.
* [FullCalendar](https://fullcalendar.io/) to version 5.11.5.
* [Popper](https://popper.js.org/docs/v2/) to version 2.11.8.

= 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](https://www.gravitykit.com/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.

= 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.

= 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](https://www.gravitykit.com/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.

= 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](https://www.gravitykit.com/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.

= 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
* Calendars can now choose to "Enable security" that forces the use of a `secret` attribute on shortcodes. [Learn about the `secret` attribute](https://docs.gravitykit.com/article/991-secret-shortcode-attribute).

#### 🚀 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](https://www.gravitykit.com/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.

= 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](https://gist.github.com/zackkatz/9acc181ae9bbd1c339ca614e64ccb733).
- 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`.

= 2.4.3 on December 19, 2023 =

* Fixed: Conditional logic in GravityCalendar feeds causes a fatal error if GravityView is not installed

= 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](https://www.gravitykit.com/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

= 2.4.1 on November 29, 2023 =

* Fixed: Excessive whitespace appearing in the categories section when using the block editor

= 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](https://www.gravitykit.com/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

= 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

= 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](https://www.gravitykit.com/foundation/) to version 1.2.2

= 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](https://www.gravitykit.com/foundation/) to version 1.1.1

= 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](https://www.gravitykit.com/foundation/) to version 1.0.9

= 2.3.2 on January 5, 2023 =

* Updated: [Foundation](https://www.gravitykit.com/foundation/) to version 1.0.8

= 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)

= 2.3.0.1 on December 16, 2022 =

* Fixed: Calendar Feed URL wasn't loading necessary scripts

= 2.3 on December 15, 2022 =

* Added: You can now show other calendar feeds on a calendar using the Calendar Feed URL setting [(read how to add calendar feeds)](https://docs.gravitykit.com/article/899-displaying-events-from-another-calendar)

= 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

= 2.2.4 on December 1, 2022 =

* Fixed: It was not possible to remove an expired license key

= 2.2.3 on November 29, 2022 =

Fixed: "Undefined index" PHP notice

= 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

= 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

= 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](https://www.gravitykit.com/foundation/))
    - 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

= 2.1 on September 1, 2022 =

* Improved: Now you can use the [`{get}` Merge Tag](https://docs.gravitykit.com/article/314-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

= 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

= 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')

= 2.0.0.1 on March 15, 2022 =

* Fixed: Calendar feeds not working due to the library not being included in the downloaded file

= 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](https://docs.gravitykit.com/article/830-calendar-blocks))
    - New `[gv_calendar_link]`, `[gv_calendar_export_button]`, and `[gv_calendar_copy_button]` shortcodes ([learn about the new shortcodes](https://docs.gravitykit.com/article/831-calendar-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](https://fullcalendar.io/docs/height)
* Upgraded: FullCalendar from 5.6 to 5.10.1
    - Improved accessibility
    - Many fixes to tooltip behavior
    - [See the FullCalendar changelog](https://github.com/fullcalendar/fullcalendar/tags)
* Updated: Polish translation (Thanks Dariusz Z!)

= 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.

= 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](https://github.com/fullcalendar/fullcalendar/releases/tag/v5.10.0). 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](https://docs.gravitykit.com/article/814-calendar-week-start).
* 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

= 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

= 1.6.0.1 on September 10, 2021 =

* Fixed: [GP Nested Forms](https://gravitywiz.com/documentation/gravity-forms-nested-forms/) compatibility issue

= 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:__

* Updated: [FullCalendar](https://fullcalendar.io/) library was updated to v5.9 (see a [list of changes](https://github.com/fullcalendar/fullcalendar/releases/tag/v5.9.0))
* Updated: [Popper](https://popper.js.org/) library was updated to v2.9.3 (see a [list of changes](https://github.com/popperjs/popper-core/releases/tag/v2.9.3))

= 1.5.6 on August 5, 2021 =

* Fixed: Line breaks ("\n") appearing in event title/description
* Fixed: Fatal error when dragging and dropping events

= 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

= 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

= 1.5.3 on June 16, 2021 =

* Fixed: Event titles would duplicate when navigating between months
* Updated: [FullCalendar](https://fullcalendar.io/) library was updated to v5.8 (see a [list of changes](https://github.com/fullcalendar/fullcalendar/releases/tag/v5.8.0))

= 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

= 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](https://fullcalendar.io/) library was updated to v5.7 (see a [list of new features](https://fullcalendar.io/blog/2021/05/new-features-in-v570))

= 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](https://atomiks.github.io/tippyjs/) 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](https://atomiks.github.io/tippyjs/v6/themes/)
* Updated: [FullCalendar](https://fullcalendar.io/) library was updated to v5.6
	- This is a major release that introduces breaking changes; please consult the [v5.x upgrade guide](https://fullcalendar.io/docs/upgrading-from-v4)
* Updated: [Popper](https://popper.js.org/) 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.)

= 1.4.4 on March 10, 2021 =

* Added icon for [GravityView 2.10](https://www.gravitykit.com/210-admin-refresh/) 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.

= 1.4.3 on August 27, 2020 =

* Fixed: Calendar preview fails to load until a new Feed is saved

= 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!)

= 1.4.1 on August 10, 2020 =

* Fixed: DataTables View layouts no longer being displayed
* Fixed: Calendar preview not working inside the Gutenberg editor

= 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](https://wordpress.org/plugins/members/)
* 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

= 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](https://fullcalendar.io/docs/locale). Modify this to use your own locales.

= 1.2.1 on February 3, 2020 =

* Fixed: Entries were not being displayed on calendars

= 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](https://docs.gravitykit.com/article/669-no-current-events))
* 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

= 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


= 1.0 on November 12, 2019 =

* Launch!
