z-cal
A Temporal-first calendar for React and the DOM

Month, week, day, list, and resource views with drag, resize, and selection. Small, typed, and framework-agnostic at the core.

🕰️

Temporal dates

Every date the library hands you is a Temporal value. Time zones, durations, and comparisons are correct by construction, with a polyfill only where the runtime lacks it.

🧩

Views you import

Day grid, time grid, list, resource time grid, and resource timeline are plugins. Only the views you register ship in your bundle.

⚛️

React and vanilla

A typed React adapter with content slots and a headless controller hook, or the same instance API from plain DOM code.

🖱️

Interaction built in

Drag to move, resize, select ranges, and navigate by keyboard or swipe. Your app owns the data and persists what the callbacks report.

🔄

Event sources

Static arrays, async functions, and JSON feeds merge into one calendar, refetched for the visible range with loading state you can render.

🎨

Themeable

Light and dark schemes, CSS tokens for colors and spacing, and slots for custom event and day-cell content.