npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@oge-ui/scheduler

v0.13.0

Published

Signal-based Angular scheduler / event calendar: day, week and month views, all-day strip, pure-kernel overlap layout, drag & resize with Escape-cancel, appointment popup and form editing — the only Angular-native scheduler. Source-available commercial li

Readme

@oge-ui/scheduler

Commercial package. Unlike the rest of the OGE UI suite (MIT), the scheduler is source-available commercial software: free for evaluation, development and testing — a paid license is required for production use. No watermark, no runtime license checks. See LICENSE and ogeui.com/license.

The only Angular-native scheduler / event calendar: signal-based <oge-scheduler> with day, week and month views, an all-day strip, a pure framework-free layout kernel (overlap columns, lane packing, "+N more" overflow), drag-move / resize with Escape-cancel, an anchored appointment popup and a form-based appointment editor.

Unlike @oge-ui/bpmn (deliberately self-contained), this package is a consumer of the MIT suite by design: the appointment popup comes from @oge-ui/overlay, the editors from @oge-ui/inputs and the appointment form from @oge-ui/forms — that composition is the selling point, so the dependencies are taken instead of rebuilt.

Views & data

  • 'day' | 'week' | 'workWeek' | 'month' | 'agenda' | 'timelineDay' | 'timelineWeek' | 'year' views with [(currentDate)] / [(currentView)], per-view hour-window and slot-duration overrides, hiddenWeekDays, min/max navigation bounds and a toolbar date-navigator calendar (embeds @oge-ui/inputs' OgeCalendar)
  • Planner ergonomics: workHours off-hours shading, weekend shading, shadeUntilCurrentTime, scrollTime/scrollTo(date), snapDuration and a readOnly display-only shorthand
  • Binds plain arrays or any @oge-ui/core DataSource (OData, custom); field mapping via startDateExpr / endDateExpr / textExpr / allDayExpr / colorExpr / … (dotted paths or getter functions); string-dated stores round-trip without changing their storage shape
  • Deterministic overlap layout: transitive-overlap clusters with greedy column assignment (day/week), shared lane packing for the all-day strip and month rows, per-day "+N more" overflow counts
  • Recurring appointments (documented RFC 5545 subset: FREQ DAILY/WEEKLY/MONTHLY/YEARLY, INTERVAL, COUNT ⊕ UNTIL, BYDAY, BYMONTHDAY, BYMONTH, WKST) expand into occurrences in every view; the editor carries a recurrence section, and edits/deletes ask "this appointment or the series?" (recurrenceEditMode) — occurrence scope detaches via EXDATE
  • Resources: editor select fields, color-by-resource (useColorAsDefault), timeline rows and day/week resource columns grouped by groups (grouped drags reassign the resource); reminders via reminderExpr + the reminderTriggered event; a Year overview with busy-day dots drills into the day view

Editing

  • Click-to-create, drag-to-create range selection, drag-move and edge resize with slot snapping, a 3px movement threshold and mid-gesture Escape-cancel; context-menu events with full payloads
  • Built-in right-click menu: edit/delete on chips (recurrence scope respected) and a prefilled "new appointment" on empty cells — labels in messages.menu, allow* flags respected
  • Anchored appointment popup (edit / delete, with location line) and a modal appointment form (@oge-ui/forms — subject, location, start/end, all-day, color, notes) with an editorShowing hook for custom fields; toolbar "new appointment" button (showAddButton)
  • Cancelable appointmentAdding / appointmentUpdating / appointmentDeleting events (sync or Promise-based)

Accessibility (honest limits)

No WAI-ARIA APG pattern covers a scheduler; the widget composes the calendar-grid pattern instead: the view body is a role="grid" with roving tabindex and arrow/Page/Home/End navigation, appointments form a second tab stop of role="button" chips with keyboard move/resize (Ctrl+Arrow, Ctrl+Shift+Up/Down) and polite live-region announcements. All strings, including every aria label, live in OgeSchedulerMessages (provideOgeSchedulerConfig).

Dates are Intl-only local wall time (house rule: no date library, no DateAdapter, no TZ database) — RRULE UNTIL=…Z stamps are therefore read as local wall time; that limit is documented rather than half-supported.

Docs: ogeui.com/components/scheduler · AI reference: llms.txt