One data grid for JavaScript, React, Vue & Angular. Sorting, filtering, virtualization, pinning, and CSV export included. Early access $199 $349 → [Get it now]

A JavaScript scheduler that feels
like a real application.

Drag to reschedule, resize to adjust, click to edit, switch views — every interaction below runs on the same core your JavaScript app ships. No mockups, no video: this is the scheduler itself.

A live @coreui/scheduler instance running on this page · open the full-page demo →

From npm install
to a working scheduler.

Install the package, load the stylesheet, and pass an element and your events — the sample on the right is complete and runnable. Every feature after that is a single option: resources, businessHours, dataSource.

No build step required. The UMD bundle registers coreui.Scheduler on the global namespace, so a script tag is enough — or import the ES module in any bundler.

Dates are plain ISO strings and every change arrives through a namespaced DOM event with a revert callback. Full setup in the installation docs.

Terminal
npm install @coreui/scheduler
scheduler.js
import { Scheduler } from '@coreui/scheduler'
import '@coreui/scheduler/dist/css/scheduler.css'

const element = document.getElementById('scheduler')

new Scheduler(element, {
  view: 'week',
  timeZone: 'Europe/Warsaw',
  events: [
    { id: 'standup', title: 'Standup',
      start: '2026-09-07T09:00', end: '2026-09-07T09:15',
      rrule: 'FREQ=DAILY' },
  ],
})

element.addEventListener('eventChange.coreui.scheduler', (event) => {
  // persist to your API; call event.revert() if it rejects
})

No premium tier.
Everything is included.

Established schedulers keep resource views and timelines in their paid enterprise plans, or split recurrence and lazy loading into a premium SKU. The CoreUI JavaScript scheduler ships one edition: every feature below is in the single licence, documented, and TypeScript-typed.

FeatureWhat you getJavaScript edition
Day & week views Time-grid views with a configurable visible-hours window, overlap layout, and midnight-crossing continuation. ✓ Included
Month view A week-aligned month grid with spanning multi-day bars, per-day chips, and +N more overflow. ✓ Included
Agenda view A chronological list grouped by day over a rolling window — empty days hidden. ✓ Included
Resource view One column per room, person, or machine, virtualized past a dozen resources. ✓ Included
Timeline view Resources as rows across a continuous multi-day axis, overlaps stacked into sub-lanes. ✓ Included
Drag & drop Move and resize with snapping, a live ghost preview, Escape to cancel, and long-press drag on touch. ✓ Included
Recurrence Raw RFC 5545 RRULE strings with exception dates and windowed, DST-safe expansion. ✓ Included
Event creation Drag across empty slots — or create entirely from the keyboard. ✓ Included
Business hours Shade non-working time and days; optionally reject operations outside them. ✓ Included
Overlap control Reject colliding drops, resizes, and creations — scoped per resource. ✓ Included
Remote data Per-range loading and persistence with automatic revert when the server rejects a change. ✓ Included
Keyboard & accessibility A keyboard equivalent for every drag operation, live-region announcements, ARIA grid semantics. ✓ Included
Localization Intl date formatting, overridable labels, and seven ready-made language packs. ✓ Included
Styling & theming Every visual knob is a CSS variable resolving through CoreUI semantic tokens — dark mode included. ✓ Included

Every row links to its documentation page with runnable JavaScript examples. The full option, event, and method reference lives in the API docs.

One engine.
Four thin bindings.

All scheduling logic — the time model, recurrence expansion, event layout, and the interaction state machine — lives in a framework-free TypeScript core. The JavaScript edition is a thin rendering layer over it, so behavior can't drift between frameworks.

<1 ms
Median layout time for 1,000 events across 50 resources — measured in the core's benchmark suite on every change.
~66 KB
The minified JavaScript bundle, gzipped — with the Temporal date engine, RRULE recurrence engine, and virtualization included.
tested
One shared Playwright suite drives the same behavioral specs against every edition on every commit.

Recurrence keeps wall-clock time across daylight-saving transitions in any IANA zone, occurrences in the spring-forward gap shift with it, and durations stay real elapsed time — verified by a dedicated DST test pack. How expansion works is documented in the recurrence docs.

Buy one scheduler.
Get all four editions.

MUI X Scheduler is React-only and keeps recurrence in its premium plan; FullCalendar sells resource views and timelines as a separate premium licence. One CoreUI Scheduler licence covers the JavaScript core and the React, Vue, and Angular editions — every view and every feature included, with identical markup and one shared stylesheet.

JavaScript
React Logo
React
Vue
Angular
A team using two frameworksCoreUI SchedulerPer-framework vendorsReact-only vendors
Frameworks covered JavaScript, React, Vue & Angular One product per framework React only
Resource views & timeline Included Often a separate premium licence Timeline in the premium plan
Recurring events Included, RFC 5545 Varies by product Premium plan
Licences to buy One — $199 per developer early access ($349 after launch) One per framework, per developer One — plus a second vendor for the other framework

Drag & drop
without the mouse.

WCAG 2.2's dragging-movements criterion requires a single-pointer alternative for every drag. In the CoreUI Scheduler the keyboard path is not an alternative bolted on afterwards — it drives the exact same interaction machine as the pointer, and the full no-mouse scenario runs in CI on every build.

  • Grab, move, confirmEnter grabs an event, ←→↑↓ move it by snap step or day, Enter confirms, Escape cancels — pointer drags included
  • Create from the keyboard — a roving-tabindex slot grid: anchor a selection with Enter, extend with arrows, confirm to create
  • Announced operations — grabbing, moving, resizing, creating, deleting, cancelling, and rejected drops all speak through a polite live region, in your language
  • Grid semanticsrole="grid" with row and column counts and indexes across the time grid, month, and timeline views; a focus-trapped, aria-modal edit dialog
  • Documented limits — the accessibility docs state exactly what ships today and what is planned, instead of a vague "accessible" checkbox

Built by a team
you already depend on.

CoreUI has shipped open-source and commercial UI components since 2013: more than 43,000 GitHub repositories depend on coreui/coreui, and the libraries see roughly 490,000 npm downloads a week. The Scheduler is built and supported by the same team — alongside the CoreUI component library it pairs with.

Do I need a build step or a framework?

No. The UMD bundle registers coreui.Scheduler on the global namespace, so a stylesheet link and a script tag are enough — the same pattern as CoreUI's other vanilla components. ES modules are included for bundler users, and everything is TypeScript-typed.

How big is the bundle?

About 66 KB minified and gzipped — including the Temporal date engine, the RRULE recurrence engine, and resource virtualization. There is no separate date library to install or ship.

What does "early access" mean?

CoreUI Scheduler is at version 0.1.0 — stable enough to build on today, but not yet 1.0. You get every edition and every feature right now, plus all upcoming features and fixes as they land. Until 1.0, expect occasional small breaking changes, always documented in the changelog with migration notes. In return, early access is the lowest price the Scheduler will ever have.

How does recurrence handle time zones and DST?

Events carry raw RFC 5545 RRULE strings, and occurrences are expanded only for the visible range. Each occurrence keeps the series' wall-clock time across daylight-saving transitions in the scheduler's IANA time zone — an occurrence falling into the spring-forward gap shifts with it, and durations stay real elapsed time. A dedicated DST test pack runs in CI.

Is drag & drop accessible?

Yes — every drag operation has a keyboard equivalent driving the same interaction machine: grab with Enter, move with arrows, confirm with Enter, cancel with Escape. Operations are announced through a live region, and the no-mouse create → move → resize → delete scenario runs in CI on every build, satisfying WCAG 2.2 dragging movements.

Does it work with my backend?

Hand the scheduler a dataSource and it loads events for the visible range as users navigate, and persists every drag, resize, edit, and delete to your API — reverting automatically when the server rejects a change.

  • 0.1.0-rc.0Current early-access release — every feature on this page is shipped and documented.
  • 1.0.0On the road to 1.0, occasional small breaking changes land with migration notes in the changelog.

Page last updated August 12, 2026

One license. Every framework.

Buy once and build with the JavaScript core and the React, Vue, and Angular editions — no per-framework lock-in. Get early access at the lowest price the Scheduler will ever have.

Early access
CoreUI Scheduler
One license · JavaScript, React, Vue & Angular
$349 $199 per developer
Early access price — increases to $349 after launch.
Get early access — $199Explore the JavaScript documentation first →
  • All four editions — JavaScript, React, Vue, and Angular under one license
  • Unlimited projects — build unlimited commercial and personal apps, no per-project fees
  • Every feature — six views, recurrence, resources, drag & drop, remote data, and the timeline included
  • TypeScript definitions — full typings for events, options, and change payloads
  • Documentation & examples — a dedicated docs site per framework with runnable examples
  • Updates & support — one year of updates and email support
Version 0.1.0-rc.0 today — early access. Expect frequent updates and occasional small breaking changes on the road to 1.0, always documented with migration notes.