Changelog
All notable changes to the Business Calendar Panel plugin for Grafana are documented in this file.
This changelog follows the Keep a Changelog format and adheres to Semantic Versioning.
[4.2.4] - 2026-05-21
Changed
- Debounce the
Calendarremount key on panel resize to avoid full tree rebuilds on every pixel change during a drag. - Remove
textSizefrom theCalendarremount key; font size changes propagate via CSS without a remount. - Memoize
firstDayinuseCalendarEventsto avoid redundant locale lookups on every render. - Cache
Intl.DateTimeFormatinstances per timezone ingetMinutesOffsetFromTimeZoneto avoid re-allocating the formatter on every call; useformatToPartsto eliminate locale-dependent string parsing entirely. - Merge double
.map()inuseCalendarEventsinto a single pass to halve intermediate array allocations per frame on every data refresh. - Move
minutesOffsetcomputation insideuseCalendarEventsouteruseMemoso the timezone offset refreshes on every dashboard time range change, fixing stale offsets after DST transitions. - Replace
dayjsyear extraction infilterEventsByYearwithDate.getFullYear()to avoid constructing dayjs objects per event in year view. - Memoize agenda view length (
daysInMonth) inBigCalendaron the current date. - Updated
@grafana/create-pluginscaffolding from 7.0.8 to 7.6.0 (fixes TypeScript 6baseUrl/bundlercompat). - Externalized
react/jsx-runtimeandreact/jsx-dev-runtimefor React 19 compatibility. - Removed deprecated
@types/testing-library__jest-domdev dependency.
CI/CD
- Bumped
actions/create-github-app-tokenv3.0.0 → v3.2.0. - Replaced
stamp-changelogpublish job withcheck-changelog: fails ifCHANGELOG.mdcontains an[Unreleased]section, requiring a version matchingpackage.jsonbefore release. - Bumped
davelosert/vitest-coverage-report-actionv2.11.2 → v2.12.0.
Known Issues
react-big-calendarbundlesreact-overlayswhich usesReactDOM.findDOMNode(removed in React 19). The code path is only reached for class component instances and is unlikely to be hit in practice, but a permanent fix requires an upstream release ofreact-overlays> 5.2.1.
Project Updates
- Added
.npmrcwithignore-scripts=trueto disable lifecycle scripts and mitigate supply-chain attack risk. - Upgraded
@grafana/plugin-e2efrom 3.6.1 to 3.8.0;addPanelflow now works on Grafana 13 butsetVisualizationstill fails due to a selector mismatch in@grafana/e2e-selectors13.0.1. Test remains skipped on Grafana 13+ pending an upstream fix. - Updated patch/minor dependencies:
@swc/core1.15.33,@types/node24.12.4,sass-loader16.0.8,@grafana/tsconfig2.1.0,@playwright/test1.60.0. - Bumped Playwright Docker base image from
v1.59.1-nobletov1.60.0-noble.
[4.2.4] - 2026-04-29
Changed
- Updated minimum Grafana version to 12.3.0 for React 19 support.
Project Updates
- Updated development tooling dependencies.
- Refactored internal hooks for React 19 compatibility.
- Improved E2E test coverage and stability on Grafana 13+.
- Improved CI workflows: coverage reporting, PR file summaries, and automated changelog stamping on release.
- Removed
pr-files.ymlworkflow; GitHub's native Files changed tab supersedes it.
[4.2.3] - 2026-04-23
Changed
- Bumped Node version requirement to 24.
- Updated plugin build tooling (
.config/from@grafana/create-pluginv7.0.8). - Added missing webpack dependencies (
imports-loader,webpack-subresource-integrity,webpack-virtual-modules). - Updated dependencies within semver ranges (Grafana 12.4.2, webpack 5.105.4, i18next 25.10.10, sass 1.98.0, etc.).
- Removed unused dependencies (
@stylistic/eslint-plugin,tsconfig-paths). - Simplified
docker-compose.yamlto extend base config. - Pinned CI/CD workflows to
ci-cd-workflows/v7instead of@main. - Pinned Playwright Docker image to
v1.59.1-noble. - Bumped minimum supported Grafana version to 12.0.0.
- Upgraded
@grafana/plugin-e2efrom 2.x to 3.4.10 for Grafana 12.4.2 E2E compatibility. - Skipped React 19 preview image in Playwright E2E tests (pending upstream
react-overlaysfix). - Inlined
useDashboardVariableshook and removed@volkovlabs/componentsdependency. - Removed unused
grafana-devDocker Compose service. - Updated patch/minor dependencies (
@grafana/plugin-e2e3.4.11,@playwright/test1.59.1,@swc/core1.15.24,@swc/helpers0.5.21,sass1.99.0). - Optimized Playwright config: increased workers (4 local, 2 CI), reduced retries (0 local, 2 CI).
- Optimized Playwright Dockerfile with dependency layer caching.
Fixed
- Added
pull-requests: readpermission topublish.ymlso the reusablecd.yml@ci-cd-workflows/v7workflow can run. - Fixed ESLint flat config compatibility with
eslint-plugin-react-hooks@7legacy plugins format. - Added
aria-labelto icon-only toolbar buttons for@grafana/ui12.4.2 compatibility. - Replaced deprecated
classicColorswiththeme.visualization.palette. - Typed
Drawermock props to fixno-explicit-anylint warning. - Replaced
volkovlabs.ioURLs with Grafana equivalents. - Fixed stale
functionsRefin inlineduseDashboardVariableshook. - Fixed reverted
useRuntimeVariablesimport to use localuseDashboardVariableshook.
Added
- Added
cspell.config.jsonfor spell checking with missing words. - Added
AGENTS.mdwith build/test commands, code style guidelines, naming conventions, testing conventions, ESLint rules, changelog policy, and branching policy.
[4.2.0] - 2025-10-23
Project Updates
- Grafana Labs fork.
[4.1.0] - 2025-08-19
Changed
[4.0.1] - 2025-06-23
Changed
- Revert react-big-calendar version (#268).
[4.0.0] - 2025-06-04
Breaking Changes
- Now requires Grafana 10 or 11.
Changed
- Updated Multi-Day Events (#264).
- Upgraded to Grafana 12.0.1 and updated dependencies (#265).
- Fix panel crashes on switching color scheme to single color(#266).
[3.9.1] - 2025-03-18
Added
- Updated "There are no events in this range" message in the alert info component (#258).
- Adjusted Yearly view layout to prevent shifting with smaller panel sizes (#257).
- Enabled Yearly view to display events from previous years (#260).
[3.9.0] - 2025-02-20
Added
- Updated end-to-end (E2E) tests (#250).
- Upgraded to Grafana 11.5 and updated dependencies (#252).
- Enhanced release workflow to include attestation (#252).
[3.8.0] - 2024-10-25
Added
- Added multi-day event support in Yearly view (#243).
- Updated migration process for threshold color filters (#248).
- Improved
useRuntimeVariableshook for Scenes dashboards (#247). - Upgraded to Grafana 11.3 and updated dependencies (#248).
[3.7.0] - 2024-09-15
Added
- Enhanced Yearly view to display events (#240).
- Upgraded to Grafana 11.2 and updated dependencies (#241).
[3.6.0] - 2024-08-19
Added
- Modified tooltip to prevent drawer opening when selecting text (#235).
- Updated date-time format to support multiple languages (#236).
- Hid event detail actions when no actions are available (#238).
[3.5.0] - 2024-07-25
Added
- Added event details in tooltip on hover (#217, #221).
- Introduced option to disable event time display (#223).
- Updated daily calendar view to reflect time range changes (#229).
- Reordered description fields for consistency (#230).
- Adjusted date handling to use time zone option (#227).
[3.4.0] - 2024-07-16
Added
- Improved E2E workflow using Docker (#211).
- Added font size configuration option (#213).
- Upgraded to Grafana 11.1 and updated dependencies (#214).
[3.3.0] - 2024-06-19
Added
- Enhanced variables with static datasource for time range in source dashboard (#205).
- Added support for multiple description fields (#206).
- Introduced threshold-based color options (#208).
- Added Portuguese language support in Grafana 11 (#209).
[3.2.0] - 2024-06-11
Added
- Updated tutorial video (#190).
- Added formatting options for event descriptions (#182).
- Improved details drawer layout (#192).
- Added support for additional time range sources (#179).
- Enhanced event format (#188).
- Updated time range in Agenda view (#196).
- Improved mouse cursor behavior in Agenda view (#200).
- Updated dependencies (#200).
- Added display of dashboard annotations (#194).
- Introduced Portuguese language support (#201).
- Localized toolbar and messages to the selected language (#203).
[3.1.0] - 2024-05-19
Added
- Added Agenda (List) view (#177).
- Enhanced customization for event bubbles (#178).
- Improved multi-day window handling (#183).
- Upgraded to Grafana 11 (#184).
[3.0.0] - 2024-05-02
Breaking Changes
- Renamed plugin to "Business Calendar Panel".
- Replaced Legacy Calendar with Big Calendar.
- Now requires Grafana 10 or 11.
Added
- Preserved dashboard refresh on time range changes (#167).
- Added plugin E2E tests and removed Cypress (#168, #170).
- Replaced Legacy Calendar with Big Calendar (#172).
- Prepared compatibility for Grafana 11 (#175, #176).
[2.5.0] - 2024-03-20
Added
Fixed
- Fixed display of location in Month and Work Week views (#160).
[2.4.0] - 2024-03-07
Added
- Upgraded Big Calendar to version 1.10.3 (#150).
- Added option to select date format (#151).
- Updated ESLint configuration and refactored code (#152).
- Updated dependencies and GitHub Actions (#154).
- Added option to hide end time (#155).
Fixed
- Fixed retention of calendar dates when time range is unchanged (#156).
[2.3.1] - 2023-11-06
Fixed
- Corrected import order for default Big Calendar styles and overrides (#143).
[2.3.0] - 2023-11-01
Added
- Added Yearly view (#134).
- Introduced internationalization (Spanish, French, German, Chinese) (#135, #138).
- Added default view selection option (#137).
- Enabled "scroll to time" feature in Big Calendar (#140, #141).
[2.2.0] - 2023-10-06
Added
- Added event location support in Big Calendar (#127).
- Improved contrast for event text colors (#129).
- Upgraded to Grafana 10.1.4 and Plugin Tools 2.0.2 (#132).
- Updated Grafana Access Policy for plugin signing (#132).
- Added dashboard timezone support for start and end times (#128).
- Added view selection options: Day, Week, Work Week, and Month (#133).
[2.1.0] - 2023-08-14
Added
- Added annotation type and limit options (#121).
- Upgraded to Grafana 10.0.3 (#122).
- Added language messages for Big Calendar (#123).
[2.0.1] - 2023-08-03
Fixed
- Fixed display of annotation options (#119).
[2.0.0] - 2023-07-28
Breaking Changes
- Now requires Grafana 9.2 or 10.
Added
- Increased test coverage (#105).
- Introduced Big Calendar component for rendering (#106).
- Updated ESLint configuration (#106).
- Removed support for Grafana 8.5 (#110).
- Upgraded to Grafana 10.0 (#110).
- Improved event overlap handling when start and end dates are equal in Big Calendar (#112).
- Added quick links in Big Calendar (#113).
- Updated back/next buttons for Weekly and Daily views in Big Calendar (#114).
- Enhanced button styles in Big Calendar (#115).
- Improved calendar resizing in Big Calendar (#116).
[1.4.0] - 2023-06-10
Added
- Upgraded to Grafana 9.5.2 (#96, #101).
- Added text formatting, mappings, and overrides (#97).
- Removed unused standard options (#97).
- Increased test coverage and updated testing library (#100, #103).
- Migrated to Plugin Tools 1.5.2 (#101).
- Upgraded to Node 18 (#101).
- Added E2E Cypress testing (#102).
Fixed
- Increased event spacing to prevent overflow (#96).
[1.3.0] - 2023-03-08
Added
- Upgraded to Grafana 9.4.3 (#87).
- Added label splitting for display in drawer (#88).
- Added annotation tags as labels (#88).
- Improved multi-day interval handling (#89).
- Enabled color display based on event or frame ID if color field is unspecified (#90).
- Added support for color schemes (#91).
- Added video configuration tutorial (#92).
Fixed
- Fixed scrollable content in Day drawer (#93).
[1.2.0] - 2023-02-23
Breaking Changes
- Refactoring and styles migration may introduce breaking changes. Test before upgrading in production.
Added
- Added color selection for calendar entry queries (#67).
- Filtered out undefined events (#69).
- Updated CI and release workflows (#72).
- Rebuilt using Grafana 9.3.6 (#73).
- Refactored options editors to use field pickers (#74).
- Refactored Day and Events drawer (#75).
- Removed panel padding (#75).
- Updated Day view and styles (#76).
- Migrated to Styles v2 (#79).
- Aligned week start with Grafana settings (#80).
- Skipped undefined events in drawer (#81).
- Added display time option (#82).
- Updated styles and screenshot (#83).
[1.1.0] - 2022-12-12
Breaking Changes
- Refactoring may introduce breaking changes. Test before upgrading in production.
Added
- Updated panel options in README (#53).
- Added YouTube tutorial for Calendar with JSON API datasource (#54).
- Updated CI to Node 16 and synced with release workflow (#56).
- Upgraded to Grafana 9.2.2 (#57).
- Refactored code (#58).
- Upgraded to Grafana 9.3.1 (#59).
- Updated CI to upload signed artifacts (#60).
- Refactored panel options and increased test coverage (#61).
- Added annotation support (#8).
- Removed legacy code (#62).
- Enhanced panel options with annotations (#63).
[1.0.0] - 2022-10-02
Added
- Transferred maintenance to Volkov Labs (#51).
- Updated based on Volkov Labs Panel Template (#51).
- Upgraded to Grafana 9.1.6 (#52).
[0.7.1] - 2022-08-28
Added
- Upgraded to Grafana 9.
[0.7.0] - 2022-03-09
Added
- Added quick links to follow data links on event click instead of opening a modal.
- Upgraded to Grafana 8.4.3.
[0.6.0] - 2022-01-28
Breaking Changes
- Increased minimum Grafana requirement to 8.0 due to new theming engine.
- Use v0.5.0 for Grafana versions below 8.0.
- Upgrade to v0.6.0 for Grafana 8.0 or higher.
[0.5.0] - 2021-09-06
Added
- Added data links support (#25).
- Introduced inline drawer for event details, replacing tooltips (#25).
- Note: Feedback welcome on the new design; considering a custom sidebar alternative.
[0.4.3] - 2021-06-12
Added
- Renamed "Apply time interval" to "Apply time range" to align with Grafana.
- Increased contrast for single-day events.
[0.4.2] - 2021-05-22
Fixed
- Fixed issue where
classicColorswas still undefined (#16).
[0.4.1] - 2021-05-21
Fixed
[0.4.0] - 2021-05-20
Added
- Displayed event names for events starting outside the filtered day (#13).
- Added support for more calendars and colors (#14).
- Enabled line breaks in event descriptions (#11).
[0.3.0] - 2021-05-18
Added
- Added detailed view for individual events (#10).
[0.2.0] - 2021-05-09
Added
- Added multi-day event support (#1).
- Enabled display of truncated events (#6).
- Supported string and number fields for time dimensions.
[0.1.1] - 2021-02-10
- No changes.
[0.1.0] - 2021-02-10
Added
- Initial release (not production-ready).