Open source · MIT · shadcn native · v0.4.0

The open-source
scheduling grid.

One React component. Drag-and-drop shifts. 200+ staff. Zero paywalls. Built on shadcn/ui so it looks like the rest of your product.

shadcn-scheduler — Live DemoOpen full demo
0 domain presets|0 view types|0+ staff virtualized|MIT license|100% TypeScript

Built for production

Everything a real scheduler needs

Not a toy demo. Not a stripped-down calendar. A full scheduling engine with the flexibility of shadcn.

2D Free Drag

Blocks lift out of their row and follow your cursor freely. Drop anywhere — across rows, days, views.

Virtual Rendering

200+ staff with zero jank. TanStack virtualizer renders only visible rows at 60fps.

Right-click & Bulk Actions

Context menu with Edit, Copy, Cut, Delete. Rubber-band select multiple blocks and bulk move, publish or delete.

7 View Types

Day, Week, Month, Year, List, Timeline, Kanban. Multi-level zoom headers. Each view fully interactive.

Kanban Board View

Week grid with accordion category rows, compact shift cards, hover popover, and one-click drill-down to Day timeline.

Recurring Shifts

Daily, weekly, monthly recurrence with RRULE-compatible rules. Edit single occurrence or all future.

Dependencies & Markers

SVG arrows connect related shifts. Draggable vertical markers for deadlines and milestones.

Get running fast

Up and running in minutes

Already on shadcn/ui? The scheduler uses your existing CSS variables and Tailwind setup. No new design system. No configuration files. Just install and render.

01

Install the package

npm install @sushill/shadcn-scheduler
02

Import the component

import { Scheduler } from '@sushill/shadcn-scheduler'
03

Drop it in your page

<Scheduler categories={...} employees={...} shifts={...} />
import { Scheduler } from '@sushill/shadcn-scheduler'

export default function App() {
  const [shifts, setShifts] = useState([])
  
  return (
    <div className="h-[600px]">
      <Scheduler
        categories={categories}
        employees={employees}
        shifts={shifts}
        onShiftsChange={setShifts}
        initialView="week"
      />
    </div>
  )
}
Free forever · No paywalls · No seat licenses

Scheduling software shouldn't cost a fortune

Most scheduling components ask for hundreds of dollars per month or lock key features behind enterprise plans. shadcn-scheduler is MIT licensed, open source, and free to use in any project — commercial or otherwise.

MIT Licensed

Use it in commercial products. Modify it. Ship it. No attribution required.

No seat fees

Works for 5 employees or 5,000. The license doesn't change based on your team size.

Community owned

Open source on GitHub. File issues, send PRs, shape the roadmap.

Ready to ship?

MIT licensed. No lock-in. Works with your existing shadcn setup today.