A Angular 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 Angular 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 Angular scheduler package, import the standalone SchedulerComponent, and bind your events — the sample on the right is complete. Every feature after that is a single input: resources, businessHours, dataSource.
Modern Angular. A standalone, OnPush component built on signals — no NgModule, zoneless-ready, typed end to end.
Prefer a schematic? ng add @coreui/angular-scheduler installs the packages and wires the stylesheet into your angular.json for you.
Every change arrives through the eventChange output with a revert callback. Full setup in the installation docs.
npm install @coreui/angular-scheduler @coreui/scheduler
import { Component } from '@angular/core' import { SchedulerComponent } from '@coreui/angular-scheduler' @Component({ selector: 'app-planner', imports: [SchedulerComponent], template: ` <c-scheduler view="week" timeZone="Europe/Warsaw" [events]="events" (eventChange)="onEventChange($event)" /> `, }) export class PlannerComponent { events = [ { id: 'standup', title: 'Standup', start: '2026-09-07T09:00', end: '2026-09-07T09:15', rrule: 'FREQ=DAILY' }, ] }
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 Angular scheduler ships one edition: every feature below is in the single licence, documented, and TypeScript-typed.
| Feature | What you get | Angular 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 Angular 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 Angular edition is a thin rendering layer over it, so behavior can't drift between frameworks.
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.
| A team using two frameworks | CoreUI Scheduler | Per-framework vendors | React-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, confirm — Enter 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 semantics —
role="grid"with row and column counts and indexes across the time grid, month, and timeline views; a focus-trapped,aria-modaledit 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 for Angular component library it pairs with.
Current Angular (v22) with a standalone, OnPush component built on signal inputs and outputs — no NgModule required, zoneless-ready, and compiled in partial-Ivy mode for the Angular linker.
Yes. The component guards every browser API on the server path, so it renders under SSR and hydrates cleanly — the docs site itself prerenders it on every build.
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.
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.
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.
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
The vanilla core — ES modules or a UMD bundle, no framework and no build step required.
A native <CScheduler> component — hooks-friendly, React 19-ready, at home in Next.js.
A Vue 3 component built for the Composition API, typed end to end.
One scheduler, four editions — features, live demo, and pricing on a single page.
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.
- 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