Dense calendar planning
Month view handles all-day spans, timed summaries, continuation markers, per-day overflow, more popovers, range selection, and custom day cells.
A compound scheduling system for Vue applications. Month, week, day, agenda, year, timeline, resource grouping, availability, recurrence, international calendars, and fully replaceable UI parts in one package.
A real Vue Scheduler running in the page. Switch between launch planning, field dispatch, appointment booking, and a localized calendar to see the same compound structure handle different scheduling products.
Start with a compact month grid, a full timed week, a year planner, agenda rows, or horizontal timelines. The view changes, while event data, UI parts, overlays, selection, drag, and resize stay on the same contract.
Month view handles all-day spans, timed summaries, continuation markers, per-day overflow, more popovers, range selection, and custom day cells.
Day and week views support business hours, all-day rows, working-day filters, overlapping timed events, current-time indicators, drag, resize, and horizontal scroll on small screens.
Timeline day, week, month, and year views keep headers, event spans, and long ranges readable with horizontal scrolling and optional virtualized ranges.
Agenda view groups events by date with customizable date headers. Year view renders twelve mini-months with indicators, disabled dates, today, selected, and range states.
Resource views are not a separate component. The same Scheduler handles flat resources, nested groups, date grouping, horizontal resource columns, adaptive selectors, and timeline lanes.
Parent resources can collapse into aggregate rows. Child resources keep their event colors, availability, blocked intervals, and natural row height.
Group by date when capacity needs to be compared inside each day, or use resource-first layouts when each lane owns the full visible range.
Adaptive grouping switches large resource grids into a contained selector. Parent selections keep grouped columns, leaf selections focus one resource.
Create, edit, move, resize, select, inspect, and export schedules. The event model stays plain JavaScript dates while the UI adds the interaction layer your product needs.
Use PrimeOne event parts for month, timed, all-day, timeline, and agenda events, or replace each surface independently through compound child outlets.
Quick info, hover popovers, context menus, and month more-popovers are explicit parts. Keep the interaction behavior and swap the visual body.
Show appointment slots as overlays, grid cells, or indicators. Block time ranges and prevent creates or drops into unavailable periods.
Recurring events expand into the visible range while the source event keeps its RRULE, exceptions, and recurrence identity.
Scheduler is built from explicit parts. Start with PrimeOne UI pieces, then replace only the toolbar, event cards, month cells, resource rows, overlays, or scoped view surfaces that your product needs.
Use Root, Header, Content, Popover, QuickInfo, MorePopover, ContextMenu, and child outlets directly in your template. The page structure stays readable.
Declare global event UI, then override only Scheduler.Month, Scheduler.Week, Scheduler.ResourceTimeline, or Scheduler.DateMonth when a view needs custom UI.
PrimeOne UI parts can read the context provided by Header, Event, Overlay, Resource, Selection, Category, and Agenda header outlets.
Public data-slot values and state attributes let teams theme or test the scheduler without relying on private DOM depth or generated class order.
Localize the display layer without changing event storage. JavaScript Date values stay stable while the UI renders alternate calendars, numbering systems, time formats, timezones, and right-to-left layouts.
Month, year, day, week, agenda, timeline, and grouped views can render alternate calendar labels while event values stay in JavaScript Date form.
Render events in the user timezone or the business timezone. Cross-midnight labels and popover summaries follow the same display configuration.
RTL affects layout, scroll math, timeline movement, keyboard direction, and overlay placement, not only text alignment.
Scheduler is designed for the operational edges that usually appear after launch: responsive scroll ownership, virtualization, accessibility, print, import/export, and controlled state.
Narrow screens keep readable day and resource columns by giving the calendar its own horizontal and vertical scroll surfaces.
Timeline virtualization, fixed or auto row heights, visible-range rendering, and grouped-resource sizing keep large schedules responsive.
Keep machine-safe fields for CSV, ICS, and backend payloads while showing localized labels in the UI. Print uses the same calendar display configuration.
Scheduler provides ARIA relationships, keyboard activation, overlay dismissal, selected and disabled states, and labels that custom UI can preserve.
Drive view, date, events, resources, filters, and selection from parent state. Scheduler emits payloads for validation, persistence, undo, and backend sync.
Install the Vue package, import the Scheduler styles and PrimeOne UI parts, then assemble the views and workflows your product needs.