forceCalendar/benchmark
Honest performance comparison
Run Info
| timestamp | 2026-01-21 11:47:18 UTC |
| node | v20.19.6 |
| platform | linux / x64 |
Installed Packages
ForceCalendar
| @forcecalendar/core | @ |
| @forcecalendar/interface | @ |
FullCalendar
| @fullcalendar/core | @6.1.20 |
| @fullcalendar/daygrid | @6.1.20 |
| @fullcalendar/timegrid | @6.1.20 |
| @fullcalendar/list | @6.1.20 |
| @fullcalendar/rrule | @6.1.20 |
| rrule | @2.8.1 |
Bundle Size (node_modules)
Installed size comparison for equivalent functionality.
ForceCalendar Stack
| @forcecalendar/core | 302.1 KB |
| @forcecalendar/interface | 1.49 MB |
| Total | 1.79 MB |
FullCalendar Stack
| @fullcalendar/core | 1.79 MB |
| @fullcalendar/daygrid | 197.5 KB |
| @fullcalendar/timegrid | 231.6 KB |
| @fullcalendar/list | 66.7 KB |
| @fullcalendar/rrule | 26.2 KB |
| rrule | 671.1 KB |
| Total | 2.96 MB |
Ratio: FullCalendar is 1.7x larger
Recurrence Expansion (RRULE)
ForceCalendar RecurrenceEngine vs rrule library. Both are pure JavaScript. Higher ops/sec = better.
| pattern | forcecalendar | rrule | ratio |
|---|---|---|---|
| Daily for 1 year | 1,100 | 21,052 | 19.14x |
| Weekly (MWF) for 1 year | 1,460 | 57,233 | 39.20x |
| Monthly (15th) for 5 years | 3,588 | 161,825 | 45.10x |
| Yearly for 10 years | 44,921 | 939,418 | 20.91x |
| Daily for 5 years (1825 occurrences) | 6 | 5,445 | 907.50x |
Notes
• All packages installed from npm (not local builds)
• Bundle size = du -sb node_modules/package
• Recurrence benchmarked with tinybench (warmup + iterations)
• We only compare what's fairly comparable
Why no rendering/memory benchmarks? ForceCalendar core is DOM-free, FullCalendar requires DOM. Comparing them would be misleading.