Releases: fullcalendar/fullcalendar-workspace
Release list
v7.1.0
v7.0.2
v7.0.1
v7.0.0
v6.1.21
v7.0.0-rc.3
- FIX: In React, event flicker after event drag-n-drop
- FIX: In React/Preact, expose the CalendarRef type
- FIX: In TimeGrid view, when snapDuration smaller than slotDuration, incorrect date-selection coordinates
- FIX: With custom slotHeaderFormats, navLinks sometimes disabled (#8064)
- FIX: For Shadcn/MUI toolbars, or users of CalendarController, button hints wrong for certain locales
- FEATURE: Warn on unknown options
- FEATURE: Warn on invalid class-name inputs
- BREAKING: Renamed a few things for consistency. Apologies. Please update any forked themes.
- Renamed info-prop
.multiMonthColumnCountto.multiMonthColumns - Renamed type
MountDatatoMountInfo - Reverted rename from
weekTextLongtoweekText. UseweekTextLong. - Reverted some renames for view-specific options:
- Reverted
views{}.viewClass. Useviews{}.class/className. - Reverted
views{}.viewContent. Useviews{}.content. - Reverted
views{}.viewDidMount. Useviews{}.didMount. - Reverted
views{}.viewWillUnmount. Useviews{}.willUnmount.
- Reverted
- Renamed info-prop
v7.0.0-rc.2
- FIX: full-height calendar inside flexed/gridded parent results in infinite loop/endless width (#8051)
- FIX: virtualization & scrolling: Slot header is not rendering properly (#8052)
- FIX: virtualization: Now indicator not shown (#8053)
- FIX: virtualization: scrollLeft JS action will not render timeline (#8054)
- FIX: Event color not changing when changed via Event::setProp (#8064)
- FIX: Classic theme timeline event arrows appearing unnecessarily (#8055)
- FIX: slotMinWidth takes precedence over natural min-width created by header cell inner-text (#7910)
- FIX: more stable useId shim for React 17
- FIX: revealed TableDisplayInfo/TableHeaderInfo/TableBodyInfo types for tableClass/tableHeaderClass/tableBodyClass
- FIX: reduced vertical padding on Classic theme timeline header cells
v7.0.0-rc.1
Changes from v6
- FEATURE:
omitTrailingoption added to Intl date formatting objects - FEATURE:
eventPrintLayoutsetting for controlling TimeGrid print behavior - BREAKING:
stickyHeaderDatesrenamed totableHeaderSticky - BREAKING:
stickyFooterScrollbarrenamed tofooterScrollbarSticky - BREAKING:
listDaySideFormatrenamed tolistDayAltFormat - BREAKING:
dayPopoverFormatrenamed topopoverFormat - BREAKING: Custom view
.classNamesreplaced by.viewClass;.content/.didMount/.willUnmountprefixed withview - BREAKING:
weekTextrenamed toweekTextShort;weekTextLongrenamed toweekText - BREAKING:
nonBusinessClassrenamed tononBusinessHoursClass - BREAKING:
titleRangeSeparatorremoved — range separator now determined by Intl API - BREAKING:
defaultRangeSeparatorremoved — range separator now determined by Intl API - BREAKING:
.updateSize()method removed — sizing is now automatic - BREAKING:
eventClass,eventContent,eventDidMount,eventWillUnmountno longer apply to background events (usebackgroundEventClassetc. to restore) - BREAKING:
tableHeaderSticky(formerlystickyHeaderDates) no longer applies to list-view day-headers — those are now unconditionally sticky - BREAKING:
validRangecallback now receives start-of-day of "now" (stable), not the exactnowtimestamp - BREAKING: Date range formatting uses Intl and output has subtle differences (e.g.
"10:00 – 11:00AM"vs old"10:00 AM – 11:00 AM") - BREAKING: All packages distributed as ESM only — no more CJS
- BREAKING: The
fullcalendarpackage no longer ships.global.min.jsfiles (though JSDelivr still auto-minifies) - BREAKING: Render hook arg types renamed from
*Datato*Infopattern (e.g.EventDisplayData→EventDisplayInfo,ViewDisplayData→ViewDisplayInfo,DayHeaderData→DayHeaderInfo, etc.) - FIX:
scrollTimeslightly off when switching from Timeline month to week view (#5686) - FIX: Background events now print with 1px colored borders instead of white-out
- FIX: Print-view limited to 1000 resources to prevent browser's print dialog from crashing
Changes from the v7 Betas
- BREAKING: The render-hook callbacks argument types renamed from
*Data->*Info(ex:ListDayData->ListDayInfo) - BREAKING:
fillerClasssetting'sinHeaderinfo prop renamed toinTableHeader. - BREAKING:
buttonGroup*settings'inSelectionGroupinfo prop renamed tohasSelection - BREAKING:
button*settings'inGroupinfo prop removed. Use boolean check onbuttonGroupobject prop instead - BREAKING:
button*settings'inSelectGroupinfo prop removed. UsebuttonGroup?.hasSelectioninstead - BREAKING: renamed Breezy theme palette file from honey.css -> amber.css
- BREAKING:
singleMonth*andsingleMonthHeader*settings'colCountinfo prop renamed tomultiMonthColumnCount - BREAKING:
viewClassinfo propsisFirst/isLastremoved (expressed DOM sibling relationship). Test for.options.headerToolbar/footerToolbarinstead. - BREAKING:
updateSizewas originally retained to force synchronous sizing adjustment, but now removed - FIX: ResizeObserver loop error w/ height:auto (#7929)
- FIX: day headers disappear on every other week (#8041)
- FIX: virtualization & dragging: Event is not at same position of mouse pointer (#8048)
- FIX: slotMinWidth has no effect in v7 (#7910)
- FIX: navLinks on day labels in timeline views cannot be disabled in v7 (#7911)
- FIX: date-formatting with "today" circle looks strange with some locales (trailing ".") (#8020)
- FIX: some stock themes incorrectly inheriting browser-default
<a>tag color and underline - FIX: CSS fallbacks for browsers that don't suppport
color-mix - FIX: stock themes font size defined with pixel units, more predictable
- FIX: colorScheme='dark' on per-component level had lots of visual glitches
- FIX: scheduler bundles accidentally omitted "adaptive" plugin (aka print plugin)
- FIX: adaptive plugin, after print dialog, would be stuck in print-mode
- FIX: broken styling in
@fullcalendar/angular/skeleton.css(mismatch w/ HTML structure) - FIX: more-link badly positioned with disabled cells in day-row
- FIX: more-link popover poorly positioned when opened
- FIX: React drag-n-drop double event ghost
- FIX: when displayEventTime:false, all-day list-view events still show "All-day"
- FIX: now-indicator arrow in classic should have been clipped if past slotMaxTime
- FIX: weird double-border at top of timeline views
- FIX: print problems via window.print()
v7.0.0-beta.8
Changelog:
- feature:
colorSchemeprop on component - feature:
resourceCell*hooks now receive.fieldin data - feature: new Classic theme CSS variables:
--fc-classic-button--fc-classic-button-border--fc-classic-button-strong--fc-classic-button-strong-border--fc-classic-button-outline--fc-classic-button-foreground--fc-classic-background-event-opacity--fc-classic-background-event-foreground-opacity--fc-classic-small-dot-width--fc-classic-large-dot-width
Misc changes:
themes.fullcalendar.io now has a "Code" button below each demo that helps you generate code for theme forking and other theme configuration.
v7.0.0-beta.7
React (@fullcalendar/react)
- FEATURE: React connector is no longer just a connector with internal Preact rendering.
@fullcalendar/reactis now fully implemented in React, including working SSR and StrictMode. - FEATURE:
@fullcalendar/coreremoved as peer dependency - BREAKING:
temporal-polyfilladded as peer dependency (more info below) - BREAKING: Many packages restructured into
@fullcalendar/reactand@fullcalendar/react-scheduler(new)@fullcalendar/interaction->@fullcalendar/react/interaction@fullcalendar/daygrid->@fullcalendar/react/daygrid@fullcalendar/timegrid->@fullcalendar/react/timegrid@fullcalendar/list->@fullcalendar/react/list@fullcalendar/multimonth->@fullcalendar/react/multimonth@fullcalendar/theme-monarch->@fullcalendar/react/themes/monarch@fullcalendar/theme-forma->@fullcalendar/react/themes/forma@fullcalendar/theme-breezy->@fullcalendar/react/themes/breezy@fullcalendar/theme-pulse->@fullcalendar/react/themes/pulse@fullcalendar/theme-classic->@fullcalendar/react/themes/classic@fullcalendar/resource->@fullcalendar/react-scheduler@fullcalendar/adaptive->@fullcalendar/react-scheduler/adaptive@fullcalendar/scrollgrid->@fullcalendar/react-scheduler/scrollgrid@fullcalendar/timeline->@fullcalendar/react-scheduler/timeline@fullcalendar/resource-timeline->@fullcalendar/react-scheduler/resource-timeline@fullcalendar/resource-timegrid->@fullcalendar/react-scheduler/resource-timegrid
Preact
- FEATURE: FullCalendar implemented natively with Preact and finally exposed as packages:
@fullcalendar/preactand@fullcalendar/preact-scheduler
Vue 3 (@fullcalendar/vue3)
- FEATURE:
@fullcalendar/coreremoved as peer dependency - BREAKING:
temporal-polyfilladded as peer dependency (more info below) - BREAKING: Many packages restructured into
@fullcalendar/vue3and@fullcalendar/vue3-scheduler(new)@fullcalendar/interaction->@fullcalendar/vue3/interaction@fullcalendar/daygrid->@fullcalendar/vue3/daygrid@fullcalendar/timegrid->@fullcalendar/vue3/timegrid@fullcalendar/list->@fullcalendar/vue3/list@fullcalendar/multimonth->@fullcalendar/vue3/multimonth@fullcalendar/theme-monarch->@fullcalendar/vue3/themes/monarch@fullcalendar/theme-forma->@fullcalendar/vue3/themes/forma@fullcalendar/theme-breezy->@fullcalendar/vue3/themes/breezy@fullcalendar/theme-pulse->@fullcalendar/vue3/themes/pulse@fullcalendar/theme-classic->@fullcalendar/vue3/themes/classic@fullcalendar/resource->@fullcalendar/vue3-scheduler@fullcalendar/adaptive->@fullcalendar/vue3-scheduler/adaptive@fullcalendar/scrollgrid->@fullcalendar/vue3-scheduler/scrollgrid@fullcalendar/timeline->@fullcalendar/vue3-scheduler/timeline@fullcalendar/resource-timeline->@fullcalendar/vue3-scheduler/resource-timeline@fullcalendar/resource-timegrid->@fullcalendar/vue3-scheduler/resource-timegrid
Angular (@fullcalendar/angular)
- FIX: Restored Angular support for v7
- BREAKING: Vanilla JS peer dependency renamed from
@fullcalendar/coretofullcalendar - BREAKING:
temporal-polyfilladded as peer dependency (more info below) - BREAKING: Many packages restructured into
@fullcalendar/angularand@fullcalendar/angular-scheduler(new)@fullcalendar/interaction->@fullcalendar/angular/interaction@fullcalendar/daygrid->@fullcalendar/angular/daygrid@fullcalendar/timegrid->@fullcalendar/angular/timegrid@fullcalendar/list->@fullcalendar/angular/list@fullcalendar/multimonth->@fullcalendar/angular/multimonth@fullcalendar/theme-monarch->@fullcalendar/angular/themes/monarch@fullcalendar/theme-forma->@fullcalendar/angular/themes/forma@fullcalendar/theme-breezy->@fullcalendar/angular/themes/breezy@fullcalendar/theme-pulse->@fullcalendar/angular/themes/pulse@fullcalendar/theme-classic->@fullcalendar/angular/themes/classic@fullcalendar/resource->@fullcalendar/angular-scheduler@fullcalendar/adaptive->@fullcalendar/angular-scheduler/adaptive@fullcalendar/scrollgrid->@fullcalendar/angular-scheduler/scrollgrid@fullcalendar/timeline->@fullcalendar/angular-scheduler/timeline@fullcalendar/resource-timeline->@fullcalendar/angular-scheduler/resource-timeline@fullcalendar/resource-timegrid->@fullcalendar/angular-scheduler/resource-timegrid
Vanilla JS (previously @fullcalendar/core)
- BREAKING: renamed to
fullcalendar - BREAKING:
temporal-polyfilladded as peer dependency (more info below) - BREAKING: Many packages restructured into
fullcalendarandfullcalendar-scheduler(repurposed)@fullcalendar/interaction->fullcalendar/interaction@fullcalendar/daygrid->fullcalendar/daygrid@fullcalendar/timegrid->fullcalendar/timegrid@fullcalendar/list->fullcalendar/list@fullcalendar/multimonth->fullcalendar/multimonth@fullcalendar/theme-monarch->fullcalendar/themes/monarch@fullcalendar/theme-forma->fullcalendar/themes/forma@fullcalendar/theme-breezy->fullcalendar/themes/breezy@fullcalendar/theme-pulse->fullcalendar/themes/pulse@fullcalendar/theme-classic->fullcalendar/themes/classic@fullcalendar/resource->fullcalendar-scheduler@fullcalendar/adaptive->fullcalendar-scheduler/adaptive@fullcalendar/scrollgrid->fullcalendar-scheduler/scrollgrid@fullcalendar/timeline->fullcalendar-scheduler/timeline@fullcalendar/resource-timeline->fullcalendar-scheduler/resource-timeline@fullcalendar/resource-timegrid->fullcalendar-scheduler/resource-timegrid
Web Component (@fullcalendar/web-component)
- FEATURE:
@fullcalendar/coreremoved as peer dependency - BREAKING:
temporal-polyfilladded as peer dependency (more info below) - BREAKING: Many packages restructured into
@fullcalendar/web-componentand@fullcalendar/web-component-scheduler(new)@fullcalendar/interaction->@fullcalendar/web-component/interaction@fullcalendar/daygrid->@fullcalendar/web-component/daygrid@fullcalendar/timegrid->@fullcalendar/web-component/timegrid@fullcalendar/list->@fullcalendar/web-component/list@fullcalendar/multimonth->@fullcalendar/web-component/multimonth@fullcalendar/theme-monarch->@fullcalendar/web-component/themes/monarch@fullcalendar/theme-forma->@fullcalendar/web-component/themes/forma@fullcalendar/theme-breezy->@fullcalendar/web-component/themes/breezy@fullcalendar/theme-pulse->@fullcalendar/web-component/themes/pulse@fullcalendar/theme-classic->@fullcalendar/web-component/themes/classic@fullcalendar/resource->@fullcalendar/web-component-scheduler@fullcalendar/adaptive->@fullcalendar/web-component-scheduler/adaptive@fullcalendar/scrollgrid->@fullcalendar/web-component-scheduler/scrollgrid@fullcalendar/timeline->@fullcalendar/web-component-scheduler/timeline@fullcalendar/resource-timeline->@fullcalendar/web-component-scheduler/resource-timeline@fullcalendar/resource-timegrid->@fullcalendar/web-component-scheduler/resource-timegrid
temporal-polyfill Peer Dependency
The temporal-polyfill package is now a peer dependency of all the FullCalendar packages. This means you are required to install it.
The "Temporal" built-in browser API is coming to all modern browsers, and this package is a polyfill for it, which means it allows you to use it before it's officially supported.
FullCalendar DOES NOT INSTALL IT GLOBALLY but instead uses it internally. For v7, FullCalendar uses the tree-shakeable API, meaning the code-size impact will be minimal and there will be no side-effects.
Though FullCalendar does not install the polyfill globally, you are welcome to do so for your projects:
import 'temporal-polyfill/global'Moment / Moment Timezone
- BREAKING: moment package removed (
@fullcalendar/moment)- Date formatting-string functionality moved to
@fullcalendar/format-momentplugin - Date conversion utilities (
toMomentandtoMomentDuration) removed
- Date formatting-string functionality moved to
- BREAKING: moment-timezone support removed (
@fullcalendar/moment-timezone) because time zone resolution is now built-in to FullCalendar via thetemporal-polyfillpeer dependency.
Luxon
- BREAKING: Luxon 1 package removed (
@fullcalendar/luxon) - BREAKING: Luxon 2 package removed (
@fullcalendar/luxon2) - BREAKING: Luxon 3 package removed (
@fullcalendar/luxon3)- Date formatting-string functionality moved to
@fullcalendar/format-luxon3plugin - Date conversion utilities (
toLuxonDateTimeandtoLuxonDuration) removed - Luxon time zone support removed because time zone resolution is now built-in to FullCalendar via the
temporal-polyfillpeer dependency.
- Date formatting-string functionality moved to
Bootstrap Theme
- BREAKING: Bootstrap 4 theme support removed (
@fullcalendar/bootstrap4) - BREAKING: Bootstrap 5 theme support removed (
@fullcalendar/bootstrap5)