npm / fullcalendar
fullcalendar
What changed in fullcalendar 6 to 7, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-24.
1 breaking2 new APIs and options2 behavior and defaults30 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initfullcalendar 725 changes
New APIs and options 2
The Belarusian locale is now available as be.
The Tajik locale is now available as tg.
Behavior and default changes 2
DayGrid, TimeGrid, MultiMonth and Resource Timeline use table and cell roles instead of grid roles; Resource Timeline with nested resources or row groups remains a treegrid.
Events in DayGrid, TimeGrid, Timeline and +more popovers are enclosed in list and listitem roles, allowing screen readers to step through them individually.
Fixes and other changes 21
Bulgarian accessibility hints for navigation, more-links, and closing popovers are corrected.
The Czech today button says “today” instead of “now.”
Dragging events in DayGrid views works when using React 18 Strict Mode.
The German list-view hint is corrected.
The Austrian German list-view hint is corrected.
Setting resourceEditable is no longer ignored with a warning.
oldResource and newResource are no longer reported when a dragged event that is not resource-editable does not change resources.
Farsi empty-calendar and more-link text, year navigation, and accessibility hints are corrected.
React no longer hits a maximum update depth when hiddenDays is passed as a new-but-equal value each render and datesSet sets state.
Korean navigation, year, list-view, and more-link translations are corrected.
Norwegian Nynorsk empty-calendar text and accessibility hints are corrected.
When slotMaxTime is beyond 24h, the now-indicator no longer disappears after midnight in Timeline views or loses its arrow in TimeGrid views.
React no longer hits a maximum update depth when validRange is passed as a new-but-equal value each render and datesSet sets state.
React no longer hits a maximum update depth when visibleRange is passed as a new-but-equal value each render and datesSet sets state.
Day headers without navLinks, the TimeGrid week-number header and the Timed row header now expose visually-hidden text to screen readers and axe.
Column-header nav links are labeled with just the date, avoiding repetition of the “Go to …” hint as the column name.
Empty wrappers are presented appropriately, while background events, non-business hours and selection highlights are hidden from assistive technology.
DayGrid cells showing a day number now expose the full date as visually-hidden content so screen readers can read the date.
Events with a url in List view retain their link semantics because list items now wrap the events.
Elements hidden for measurement use visibility: hidden instead of inert, preventing them from being focused or read by screen readers.
With filterResourcesWithEvents and datesAboveResources, the blank resource header is now an empty cell rather than an empty columnheader.
fullcalendar 610 changes
Breaking changes 1
Passing a v6 plugin to FullCalendar v7 now fails with a clear message naming the v7 import.
Fixes and other changes 9
Adds the missing batchRendering member to the CalendarApi type, including for React's getApi().
In list view, clicking an event with a url and custom eventContent no longer crashes instead of navigating.
Prevents an event's time from being cut off by a long title when eventDisplay is set to block.
Corrects oldResource and newResource reporting when dragging a non-resource-editable event over another resource without changing its resource.
When inline styles are blocked by a Content Security Policy, FullCalendar warns instead of crashing; styles must be provided another way.
Avoids a crash in Salesforce LWC with Lightning Web Security when querying the CSP nonce.
Style injection no longer crashes when the calendar is mounted in an iframe.
Non-string toolbar button text, such as JSX, no longer crashes rendering; FullCalendar warns and falls back to the button name.
Fixes React's maximum update depth error when validRange, visibleRange, or hiddenDays is a new-but-equal value on each render and datesSet sets state.