React Big Calendar is a flexible, customizable calendar component library for React applications. It provides multiple views (month, week, day, work week, and agenda) for displaying and managing events, with support for event selection, creation, and modification. The library emphasizes customization through pluggable localizers (for date formatting with Moment.js, Globalize.js, date-fns, Day.js, or Luxon), custom component injection points, and a flexible event accessor pattern. The architecture is modular, with the main Calendar component orchestrating various view components (TimeGrid, DayColumn, Month, etc.) and utilities for event layout, slot metrics, and resource management. Drag-and-drop functionality is offered as a separate addon via a higher-order component, allowing users to enable event moving and resizing. The library also includes a toolbar for navigation, popup overlays for overflow events, and comprehensive keyboard and mouse/touch interaction handling. Key strengths include its robust event layout algorithms (handling overlapping events via configurable overlap/no-overlap strategies), extensive prop validation with PropTypes, and a strong testing culture (unit tests with Jest and end-to-end tests with Playwright). The library is actively maintained, supports modern React versions (16.14.0+), and avoids legacy browser dependencies by focusing on modern flexbox-based layouts. However, the extensive customization API and support for multiple date localization libraries contribute to a larger surface area that requires careful documentation and version management. Despite this, the codebase demonstrates solid engineering practices, clear separation of concerns, and reusable utility patterns that can be adapted for other scheduling or timeline-based UIs.
Vue Cal is a full-featured Vue 3 calendar component library with zero external dependencies beyond Vue itself. It provides multiple views (day, week, month, year, years), event management (create, edit, delete, drag-and-drop, resize), schedules, special hours, extensive localization (50+ languages), dark/light theme via CSS variables, and comprehensive slot-based customization. The library is built entirely with the Composition API and is structured around core composables: `useVueCal` (main state), `useConfig` (prop parsing, locale loading), `useEvents` (event normalization, indexing, overlap detection), `useView` (navigation, cell generation), and `useDragAndDrop` (native HTML5 DnD with cross-instance support). The primary entry point is `src/vue-cal/index.js`, which exports the `VueCal` component, `useLocale` function, and a set of optional Date prototype extensions. Events are passed as an array of objects and reactively rendered; all interactions emit Vue events enriched with context (cell info, cursor position). The library is in active pre-release (v5.0.1-rc.46) with a stable release pending timezone support.