The FullCalendar v4 beta has just been released. It contains almost exactly the same API as the previous alpha version except for one big thing: all functionality is broken up into plugins. There is a core package, but it won’t do anything on its own. You must load plugins for everything, including each type of view.
Each plugin has its own NPM package. Many of the views have been renamed to be more consistent with the package names they come from:
- agenda view has been renamed to timeGrid (timeGridWeek, timeGridDay)
- basic view has been renamed to dayGrid (dayGridWeek, dayGridDay)
- month view has been renamed to dayGridMonth
- timeline view has been renamed to resourceTimeline (resourceTimelineWeek, etc)
Also, it’s important to note that date clicking, date selecting, event drag-n-drop, and event resizing require the interaction plugin.
In addition, Bootstrap 3 theme support and jQuery UI theme support have both been dropped. And there are some minor setting renames. Also, superagent has been dropped as a dependency for JSON feed requests, which was introduced in a previous alpha.
Because FullCalendar has been broken up into plugins, it’s possible to bundle only the functionality you need, saving space. This, combined with the shedding of jQuery and Moment as dependencies, has drastically reduced the total filesize of a simplest-case app. For example, if all you want to do is display a read-only month-view calendar, you would bundle the following packages:
@fullcalendar/core + @fullcalendar/daygrid
= 43k (minified and gzipped)
Whereas before you needed to bundle much more:
fullcalendar + jquery + moment
= 101k (minified and gzipped)
The size of the required JS is less than half!
For getting your hands on this beta release, it is recommended you follow the guide for using an ES6 build system. If you would prefer to download a ZIP file and use script tags and browser globals, download these:
While pluginifying FullCalendar, one aspect that has not yet been quite nailed down is how to deliver the CSS/SCSS. If you have experience with this matter, please chime in on the GitHub Issue »
Please give this beta release a try! Report any bugs you find »
If this beta release goes as smoothly as the previous alpha releases, the final release of 4.0.0 should be March 15th.