Comparison
How calendar-tsx differs from FullCalendar and Schedule-X.
FullCalendar and Schedule-X render a finished calendar UI that you configure. calendar-tsx computes the layout and gives you unstyled parts to render it, so you write more markup and own every pixel. Pick it when the calendar has to match your design system, or when you want Temporal values end to end. Pick one of the others when a ready-made calendar with a toolbar, popovers and modals is what you need. calendar-tsx is experimental: its API can change in any release.
Checked against FullCalendar v7.1.3 and Schedule-X 4.9.1 on 2026-10-24. Both projects change; follow the linked sources for current details.
โ supported ยท ๐ paid plan ยท โ not supported ยท โ not documented
At a glance
| calendar-tsx | FullCalendar | Schedule-X | |
|---|---|---|---|
| License | โ MIT, every package | MIT core; resources and timelines need ๐ Premium | MIT core; resources and interactions need ๐ Premium |
| Rendering | Headless model plus unstyled parts | Renders its own DOM | Renders its own UI with Preact |
| Frameworks | React, Solid; the core works anywhere | React, Vue, Angular, Preact, Web Component, Salesforce LWC, vanilla JS | React, Vue, Angular, Svelte, Preact, vanilla JS |
| Dates in the API | Temporal in and out | JS Date in and out; Temporal only inside (docs) | Temporal PlainDate and ZonedDateTime (docs) |
Views
| calendar-tsx | FullCalendar | Schedule-X | |
|---|---|---|---|
| Month, week, day | โ Yes | โ Yes | โ Yes |
| List or agenda | โ Yes, any duration from a day to a year | โ Yes | โ List, week agenda and month agenda |
| Multi-month and year | โ Yes, day grids by months, quarter or year | โ Multi-month stack and grid | โ Year grid |
| Timeline | โ Yes, day to year periods | ๐ Premium | ๐ Premium, hourly and daily |
| Resource columns | โ Yes, in time grids, day grids and lists; rows in timelines | ๐ Premium | ๐ Premium, time grid |
| Nested resources | โ
parentId hierarchy; expandable timeline rows | ๐ Premium | ๐ Premium |
| Custom views | โ Your own layout features, in any framework | โ Yes; React and Preact views can be components | โ Preact only |
Interactions
| calendar-tsx | FullCalendar | Schedule-X | |
|---|---|---|---|
| Drag and drop, resize | โ Yes, opt-in features | โ Yes | ๐ Premium |
| Range selection | โ Yes | โ Yes | ๐ Premium, the Draw plugin creates events by dragging |
| Drag in from outside | โ Yes, with relocation policies | โ
Yes, Draggable | ๐ Premium, drag to create |
| Between calendars | โ Yes, event transfers | โ
Yes, eventLeave and eventReceive | โ Not documented |
| Touch | โ Hold to start, with auto-scroll | โ Long press | โ Not documented |
| Validation | โ Constraints, business hours, overlap rules | โ Constraint, overlap and allow callbacks for events and selections | โ
onBeforeEventUpdate, for the Premium drag and resize |
The calendar-tsx features report proposals and never change your events: you apply them. See selection and event editing and external drops and transfers.
Data and time
| calendar-tsx | FullCalendar | Schedule-X | |
|---|---|---|---|
| Time zones | โ Any IANA zone; events are converted to it and laid out there | โ
local, UTC or an IANA zone; returned dates support only local and UTC (docs) | โ
IANA zone, UTC by default |
| Recurrence | โ
Daily and weekly in the core; full RRULE in @calendar-tsx/rrule | โ
Simple built-in rules; @fullcalendar/rrule plugin | โ
Partial RRULE in @schedule-x/event-recurrence |
| Background events | โ Yes, including timelines | โ Yes | โ Yes, with RRULE |
| Business hours | โ Background layers, per resource, inverse or weekly | โ
businessHours, per resource | โ Not documented; dayBoundaries limits visible hours |
Styling and rendering
| calendar-tsx | FullCalendar | Schedule-X | |
|---|---|---|---|
| Default look | None; optional CSS themes | Five stock themes with dark mode | Default theme, an unofficial shadcn theme, isDark |
| Design systems | Themes that read shadcn/ui and Material UI variables, Tailwind, or your own CSS | Class-name props, shadcn, MUI and Bootstrap integrations | --sx-color-* CSS variables |
| Event content | You render every part | *Content hooks per framework | Custom components per slot, _customContent |
| Toolbar, popovers | You build them; parts emit the data | Built in | Built-in header and event modal; interactive modal and sidebar are Premium |
| Server rendering | Yes, with a seeded initialNow | Yes, in React | Next.js needs 'use client' |
See themes and server rendering.
Moving from FullCalendar
See migrating from FullCalendar for option, event and callback mappings.