fma-ui

Event Calendar

A headless-first event calendar: month, week, day, N-day, agenda and resource views, recurring events (structured rules or RRULE strings), time zones, drag to move/resize and drag to create (keyboard users create through showDayAddButton's per-day buttons), i18n with RTL, and a subscribable store (useEventCalendar, useEventCalendarSelector). Compose <EventCalendar> with EventCalendarNav and EventCalendarContent, or build your own parts from the hooks. Events are controlled (events/onEventsChange) or not (defaultEvents); onEventUpdate accepts, rejects or adjusts each drag. The nav, view switcher, date picker and "+N more" popover use the registry's react-aria Button, Tooltip, DropdownMenu, Popover and Calendar.

third-partyRegistry JSON

Installation

  1. 1

    Register the @fma-ui namespace in components.json (once)

    components.json
    {
      "registries": {
        "@fma-ui": "https://ui.fmartinsandre.dev.br/r/{name}.json"
      }
    }
  2. 2

    Add the item

    pnpm dlx shadcn@latest add @fma-ui/event-calendar

    Files land in components/fma-ui/event-calendar/event-calendar-agenda-view.tsx and 13 more; npm and registry dependencies are installed along with them.

Dependencies

npm
cn@^0.4.0lucide-react@^1.52.0react-aria-components@^1.21.1@internationalized/date@^3.12.4