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.
This repository is a production-grade React calendar component library (`@ilamy/calendar`) designed as a lightweight (~13 KB gzipped) replacement for FullCalendar. It provides month, week, day, year, and agenda views with drag-and-drop, resource scheduling, RFC 5545 recurring events, iCal export, and internationalization. The core ships no CSS and relies on Tailwind CSS v4 with shadcn/ui tokens, making it themeable and tree-shakeable. Architecturally, the library follows a plugin-first pattern: the core implements a pluggable kernel (`IlamyPlugin` interface) that accepts opt-in plugins for recurrence, agenda, and drag-to-create. Each plugin contributes views, event transformations, mutation scopes, and UI slots through a runtime composer. The state management uses a single `CalendarProvider` context that composes four engine slices (config, navigation, data, interaction). The view system is built on two grid primitives (vertical-grid for time-based layouts, horizontal-grid for date-based layouts) that are shared across all views and test harnesses. The codebase demonstrates strong engineering discipline: a huge unit test suite (995+ tests) with regression pinning against issue numbers, deterministic Playwright E2E tests, a CI pipeline with lint/build/type-check/test gates, and agent-driven code review skills. However, there is some duplication of UI primitives between packages, and the dependency on a custom dayjs wrapper for timezone handling introduces fragility. The library is actively maintained with frequent releases and detailed changelogs.