OGE logoOGE

Scheduler

The only Angular-native scheduler: day, work-week, week and month views over a framework-free layout kernel (transitive-overlap columns, lane packing, "+N more" overflow), an all-day strip, drag-move and edge-resize with mid-gesture Escape-cancel, an anchored appointment popup and a form-based editing dialog built on @oge-ui/forms. Dates are plain local Dates — no date library, no adapter — and every string, aria labels included, lives in the messages config. No WAI-ARIA APG scheduler pattern exists, so the widget composes the calendar-grid pattern: a role="grid" body with roving-tabindex cells and a second tab stop of appointment chips with keyboard move/resize.

@oge-ui/scheduler is a commercial package — free for evaluation and development, with no watermark and no runtime license checks. See licensing for the terms.

day/week/month drag & resize all-day strip form editing keyboard access

Getting started

One element, a working scheduler. Drag a chip to move it (Escape cancels mid-drag), pull its edges to resize, drag over empty cells to create a range, double-click or press Enter on a cell for the form dialog, single-click a chip for the summary popup — and right-click a chip or cell for the built-in menu (edit, delete, new appointment). The toolbar title opens a date-navigator calendar.

week view all-day strip drag & resize Escape-cancel
Sunday, August 2, 2026
Monday, August 3, 2026
Tuesday, August 4, 2026
Wednesday, August 5, 2026
Thursday, August 6, 2026
Friday, August 7, 2026
Saturday, August 8, 2026

Field mapping

Any item shape binds through the *Expr inputs — field names, dotted paths or getter functions. String dates parse as local wall time and write back in the same storage shape after edits.

startDateExpr dotted paths string dates
Sunday, August 2, 2026
Monday, August 3, 2026
Tuesday, August 4, 2026
Wednesday, August 5, 2026
Thursday, August 6, 2026
Friday, August 7, 2026
Saturday, August 8, 2026

Editing pipeline

Every mutation runs a cancelable -ing event before the store changes; the past-tense event fires only for applied changes. This demo vetoes weekend appointments and asks before deleting; resizing is disabled.

appointmentAdding cancel allow flags
Sunday, August 2, 2026
Monday, August 3, 2026
Tuesday, August 4, 2026
Wednesday, August 5, 2026
Thursday, August 6, 2026
Friday, August 7, 2026
Saturday, August 8, 2026

Planner ergonomics

The work-week view drops the weekend, workHours shades off-hours cells, shadeUntilCurrentTime dims elapsed time, scrollTime opens the grid at a sensible hour, min/max clamp navigation and snapDuration refines the drag raster. readOnly switches the whole widget to display-only.

workWeek workHours min/max scrollTime snapDuration
Monday, August 3, 2026
Tuesday, August 4, 2026
Wednesday, August 5, 2026
Thursday, August 6, 2026
Friday, August 7, 2026

Teams, recurrence & timeline

Recurring series expand into occurrences in every view — editing or deleting one asks "this appointment or the entire series?" (recurrenceEditMode). resources drive the editor's assignment selects, default colors and the timeline rows (groups); the agenda view lists the coming days and reminderTriggered fires at the reminder lead time.

recurrence resources timeline agenda reminders
Ada
Grace
Unassigned

Views

views takes plain names or option objects with per-view hour windows and slot rasters. The month view packs appointments into lanes and folds the overflow into a "+N more" button that drills into the day view.

views options per-view hours maxAppointmentsPerCell
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday

Appointment template

*ogeAppointmentTemplate replaces the chip content while the colored surface, gestures and keyboard semantics stay with the component. ogeCellTemplate and ogeDateHeaderTemplate exist for the grid surfaces.

*ogeAppointmentTemplate
Thursday, August 6, 2026

Configuration & i18n

Every user-facing string, aria labels included, lives in OgeSchedulerMessages — provide once with provideOgeSchedulerConfig() or override per instance with [messages]. locale drives every Intl format.

provideOgeSchedulerConfig messages locale
Montag, 3. August 2026
Dienstag, 4. August 2026
Mittwoch, 5. August 2026
Donnerstag, 6. August 2026
Freitag, 7. August 2026
Samstag, 8. August 2026
Sonntag, 9. August 2026