Skip to content

Gantt & Scheduler Feature Plan

This document crossmatches the desired Scheduler, Gantt, and shared planning-platform feature list against the current implementation in packages/enterprise/plugins/gantt.

Status:

  • Existing ✅ - implemented now.
  • Partial ☑️ - foundation exists, but product/API/UX work is still needed.
  • Planned 🚧 - roadmap item.

Built-in Toolbar Excel Export Button

Goal: expose Excel export directly in the packaged Gantt toolbar as an icon button so applications using defineGanttToolbar() do not need a custom command just to export task grid data.

MS Project comparison: Microsoft Project exposes project-to-Excel export as a first-class command. Project for the web places "Export to Excel" in the project menu, and Project desktop exports through File > Export with an Excel workbook target and mapping flow. RevoGrid keeps the command in the toolbar and delegates mapping to the existing Pro Excel export pipeline.

RevoGrid behavior: the built-in toolbar renders an "Export to Excel" icon button by default. Activating it dispatches the existing Pro export-excel event via exportGanttExcel(), using the current Gantt project name as the default sheet name.

API/config: GanttToolbarControls gains export?: boolean for the export group and exportExcel?: boolean for the Excel button. Both default to visible, matching other toolbar command groups.

Interactions: the button is a regular toolbar button with an icon, title, and accessible label. It does not mutate Gantt data and relies on ExportExcelPlugin listeners already installed on the grid to produce the workbook.

Rendering/data model notes: the export command works with current grid data and columns through the Pro Excel export plugin. Timeline image export and MS Project-style field mapping remain separate, planned specializations.

Edge cases: if no Excel export plugin is installed, the event is still dispatched for application-level listeners, but no file is produced by the packaged Pro plugin path.

Tests:

  • Unit: verify the toolbar renders the Excel export button and dispatches the Pro Excel event with Gantt defaults.
  • E2E: not required for this narrow toolbar wiring; full browser export download coverage belongs with the Excel export plugin.

Scheduler

Resource planning for teams, equipment, rooms, vehicles, and operations.

Feature groupFeatureStatusNotes
Timeline viewsResource timeline viewResource planning mode renders resource rows with load bars.
Timeline viewsDay / week / month / custom range viewsBuilt-in timeline levels include day-week, week-month, month-quarter, quarter-year, year-quarter, and multi-year-quarter; custom zoom levels are configurable.
Timeline viewsHorizontal scheduling modeCurrent resource planning and Gantt timeline are horizontal.
Timeline viewsVertical scheduling mode🚧Needs dedicated Scheduler layout.
Resource managementResource scheduling☑️Resources, assignments, capacity, and calendars exist; dedicated events/bookings/jobs model is planned.
Resource managementMulti-resource assignmentMultiple resources can be assigned to a task.
Resource managementResource grouping🚧Resource filtering exists, but grouping UI/API is planned.
Resource managementNested resource trees🚧Needs resource hierarchy model/projection.
Event editingDrag-and-drop event creation☑️Task drag-create exists; Scheduler event creation is planned.
Event editingDrag-and-drop event moving☑️Task bar moving exists; Scheduler event moving is planned.
Event editingEvent resizing☑️Task resizing exists; Scheduler event resizing is planned.
Event editingEvent splitting☑️Task split ranges exist; Scheduler event split UX is planned.
Event editingEvent merging🚧Not implemented.
Event layoutOverlapping event layout🚧Needs Scheduler event layout engine.
Event layoutStack / pack / overlap display modes🚧Needs configurable event display modes.
Editing modesRead-only modegantt.readOnly blocks packaged task, dependency, and assignment mutation services.
Editing modesEditable mode☑️Task editing exists; Scheduler event editing is planned.
CalendarsCustom working hours☑️Calendars support working days, holidays, and hours/day; intraday hours are planned.
CalendarsNon-working time highlightingTimeline can shade non-working time.
CalendarsTimezone supportProject and calendars carry IANA time zones.
RecurrenceRecurring events🚧Not implemented.
RecurrenceEvent exceptions🚧Not implemented.
ValidationEvent validation hooks☑️Cancelable before-change hooks exist for tasks, dependencies, and assignments. Event-specific hooks are planned.
ValidationConflict detection☑️Resource over-allocation and scheduling diagnostics exist; booking conflict rules are planned.
ValidationCapacity warningsResource planning supports capacity and over-allocation display.
ValidationAvailability rules☑️Resource calendars exist; richer availability rules are planned.
ValidationLocked events☑️Gantt tasks support locked; Scheduler event locks remain planned.
RenderingCustom event templates☑️Task renderer hooks exist; Scheduler event renderer API is planned.
RenderingCustom resource rows☑️Resource row projection exists; public custom resource row API is planned.
RenderingCustom timeline headersTimeline zoom/header configuration exists.
RenderingTooltips and popovers☑️Task tooltip hook and Gantt task detail popover model exist; richer Scheduler popovers are planned.
Grid UXInline editingGrid edits update task data.
Grid UXKeyboard navigation☑️RevoGrid foundation exists; Scheduler-specific keyboard workflows are planned.
Grid UXCopy / paste☑️RevoGrid foundation exists; Scheduler-specific behavior is planned.
Grid UXUndo / redoGantt integrates with history snapshots.
Grid UXFiltering and searchTree-aware Gantt search exists.
PerformanceVirtual scrolling for large datasets☑️RevoGrid virtualization exists; Scheduler-specific data windowing is planned.
PerformanceLazy loading by date range🚧Not implemented.
ExportExcel exportSupported through RevoGrid Pro ExportExcelPlugin for grid data. Timeline-image/workbook specialization can be added later.
ExportExcel importSupported through RevoGrid Pro ExportExcelPlugin; Gantt-specific project mapping can be added later.
ExportCSV exportSupported through RevoGrid core ExportFilePlugin when grid exporting is enabled.
ExportPDF export☑️Print-oriented reporting recipe exists; timeline/PDF layout export is not provided by the current grid export plugins.

Gantt

Project planning with task hierarchy, dependencies, milestones, baselines, calendars, resources, and scheduling logic.

Feature groupFeatureStatusNotes
Task modelTask tree / work breakdown structureTasks use parentId and wbsCode.
Task modelSummary tasksSummary task type and parent rollups exist.
Task modelRegular tasksStandard task type exists.
Task modelMilestonesMilestone task type exists.
Task modelCollapsible task groupsTree plugin integration exists.
Task modelParent-child rollupsSchedule and cost rollups exist.
DependenciesFinish-to-StartSupported dependency type.
DependenciesStart-to-StartSupported dependency type.
DependenciesFinish-to-FinishSupported dependency type.
DependenciesStart-to-FinishSupported dependency type.
DependenciesLead and lag timePositive lag and negative lead are supported.
DependenciesDependency validationValidation and diagnostics exist.
DependenciesMove task dependenciesDependency drag/link editing exists.
SchedulingAuto-schedulingDependency-aware recalculation exists.
SchedulingManual schedulingManual tasks preserve authored dates and can warn.
SchedulingForward schedulingProject-start scheduling exists.
SchedulingBackward schedulingProject-finish scheduling exists.
SchedulingTask constraintsStart/finish no-earlier/no-later and must-start/must-finish constraints exist.
SchedulingDeadline markersDeadline fields and indicators exist.
SchedulingDuration calculationCalendar-aware duration logic exists.
SchedulingStart / finish date calculationEngine computes effective dates.
SchedulingTask splittingSplit ranges affect date math and rendering.
Critical pathCritical pathCritical path calculation and highlighting exist.
Critical pathTotal slacktotalSlackDays is projected.
Critical pathFree slack🚧Separate free-slack field is not implemented.
BaselinesBaselinesBaseline snapshots and baseline bars exist.
BaselinesBaseline varianceStart, finish, duration, and progress variance fields exist.
ProgressPercent completeProgress field and editing exist.
ProgressProgress trackingActual dates, remaining duration, and progress-aware scheduling exist.
CalendarsProject calendarPrimary project calendar exists.
CalendarsTask calendarTasks reference calendars.
CalendarsResource calendarResources reference calendars.
CalendarsWorking / non-working daysCalendar working weekdays exist.
CalendarsHolidaysCalendar holidays exist.
ResourcesResource assignmentAssignment model exists.
ResourcesResource workload viewResource planning mode exists.
ResourcesResource utilizationLoad summaries and capacity display exist.
ResourcesOver-allocation warningsResource allocation diagnostics exist.
CostCost fieldsExplicit and calculated costs exist.
CustomizationCustom task fields☑️Rows can carry custom data; formal custom field schema is planned.
CustomizationCustom columns☑️RevoGrid column foundation and packaged Gantt column presets exist; broader custom-column API is planned.
EditingInline grid editingGrid edits patch task fields.
EditingDrag task barsTask bar drag exists.
EditingResize task barsTask bar resize exists.
EditingProgress drag/editProgress interaction exists.
TimelineZoom levelsPreset and custom zoom exist.
TimelineTimeline markersTime ranges, project line, today line, milestone lines, and task markers exist.
TimelineToday lineToday line is supported.
SelectionMulti-selection☑️RevoGrid selection exists; multi-task Gantt operations are planned.
KeyboardKeyboard navigation☑️RevoGrid foundation exists; Gantt-specific shortcuts are planned.
HistoryUndo / redoGantt history snapshots exist.
Import/exportGrid import / exportCSV export is available in RevoGrid core; Excel import/export is available in RevoGrid Pro, with Gantt toolbar action helpers.
Import/exportGantt project import / exportTyped project snapshots include clone/export/parse JSON helpers, REST/GraphQL adapter examples, and a PostgreSQL persistence recipe; broader project-file adapters are planned.
Import/exportMS Project-style compatibility layer🚧🚧.
PerformanceLarge project virtualization☑️RevoGrid virtualization exists; Gantt-specific server/window model is planned.
PerformanceServer-side loading for enterprise datasets🚧Not implemented.

Shared RevoGrid Planning Platform

Built on the same high-performance grid engine and scheduling foundation.

Feature groupFeatureStatusNotes
Data modelTasksTaskEntity.
Data modelEvents🚧Scheduler event entity is planned.
Data modelResourcesResourceEntity.
Data modelAssignmentsAssignmentEntity.
Data modelDependenciesDependencyEntity.
Data modelCalendarsCalendarEntity.
Data modelBaselinesBaselineSnapshot.
Data modelTime rangesTimeline visual ranges exist.
Data modelConstraintsTask constraints exist.
Data modelCustom metadata☑️Tags/notes and row extensibility exist; typed metadata schema is planned.
Data modelCustom field schemas🚧Not implemented.
Data modelTyped data modelsTyped config, entities, events, and projected rows exist.
Data modelFramework-agnostic coreEngine/projection/core are framework-independent TypeScript modules.
Scheduling engineCalendar-aware date calculationImplemented.
Scheduling engineDependency-aware recalculationImplemented.
Scheduling engineForward schedulingImplemented.
Scheduling engineBackward schedulingImplemented.
Scheduling engineManual vs automatic schedulingImplemented.
Scheduling engineConstraint handlingImplemented.
Scheduling engineCritical path calculationImplemented.
Scheduling engineResource conflict detectionImplemented as resource over-allocation diagnostics.
Scheduling engineConfigurable validation rules☑️Policy options and cancelable hooks exist; rule registry is planned.
Scheduling engineTransaction-based updates☑️Mutation services exist; public transaction API is planned.
Scheduling engineBatch recalculationEngine recalculates resolved project snapshots.
Scheduling engineDeterministic scheduling resultsImplemented.
Grid foundationRevoGrid-powered left-side gridGantt projects rows and columns into RevoGrid.
Grid foundationVirtualized rows and columnsRevoGrid foundation.
Grid foundationFrozen columnsRevoGrid/Pro foundation.
Grid foundationColumn groupingRevoGrid foundation.
Grid foundationColumn resizingRevoGrid foundation.
Grid foundationColumn reorderingRevoGrid foundation.
Grid foundationCustom cell renderersRevoGrid templates and Gantt bar hooks.
Grid foundationCustom editors☑️RevoGrid editor foundation exists; Gantt editor forms are planned.
Grid foundationTree dataTree plugin integration.
Grid foundationRow grouping☑️RevoGrid/Pro foundation exists; Gantt-specific row grouping is planned.
Grid foundationSorting☑️RevoGrid foundation exists; scheduler-safe sorting policy is planned.
Grid foundationFilteringGantt search and RevoGrid filtering foundation.
Grid foundationSelectionRevoGrid foundation.
Grid foundationClipboardRevoGrid/Pro foundation.
Grid foundationKeyboard navigationRevoGrid foundation.
Grid foundationThemingGantt SCSS and RevoGrid theming foundation.
Grid foundationPlugin architectureGantt composes feature tools and Pro plugins.
Enterprise performanceVirtual renderingRevoGrid foundation.
Enterprise performanceLarge dataset support☑️Rendering foundation exists; server/window data model is planned.
Enterprise performanceLazy loading🚧Not implemented.
Enterprise performanceDate-range loading🚧Not implemented.
Enterprise performanceViewport-aware loading🚧Not implemented.
Enterprise performanceServer-side data model🚧Not implemented.
Enterprise performanceIncremental updates☑️Local mutation services exist; remote incremental sync is planned.
Enterprise performanceReal-time updates🚧Not implemented.
Enterprise performanceOptimistic updates🚧Not implemented.
Enterprise performanceWebSocket-ready data flow🚧Not implemented.
Enterprise performanceBatched mutations☑️Controlled local mutations exist; explicit batch API is planned.
Enterprise performanceMinimal re-rendering☑️Grid sync update modes exist.
Framework supportReactGantt demos/components exist.
Framework supportVueGantt demos/components exist.
Framework supportAngularGantt demos/components exist.
Framework supportSvelte☑️Svelte usage example exists; packaged wrapper/API docs are planned.
ExtensibilityCustom task rendererTask bar color/content/tooltip hooks.
ExtensibilityCustom event renderer🚧Requires Scheduler event model.
ExtensibilityCustom dependency renderer☑️Dependency layer exists; public renderer hook is planned.
ExtensibilityCustom tooltip rendererTask tooltip hook exists.
ExtensibilityCustom editor forms☑️Task editor form schema and submit normalization helper exist; packaged UI components are planned.
ExtensibilityCustom validation☑️Cancelable before-change events and validation recipe examples exist; validation registry is planned.
ExtensibilityCustom scheduling rules🚧🚧.
ExtensibilityCustom calendarsCalendar entities are configurable.
ExtensibilityCustom export pipeline☑️Gantt Excel row mapping, toolbar export actions, and print recipe exist; full pipeline hooks are planned.
ExtensibilityCustom context menuGantt prepends default actions through RevoGrid Pro ContextMenuPlugin while preserving custom grid.contextMenu items.
ExtensibilityPlugin APIGantt plugin and feature-tool architecture exist.
ExtensibilityEvent lifecycle hooksBefore-change and interaction events exist.
ExtensibilityTyped APITyped config/entities/events exist.
CollaborationOptimistic editing🚧🚧.
CollaborationConflict resolution hooks🚧🚧.
CollaborationChange historyHistory integration exists.
CollaborationAudit log support🚧🚧.
CollaborationUser presence markers🚧🚧.
CollaborationComments on tasks/events🚧🚧.
CollaborationLocking / checkout mode☑️Gantt task locked prevents packaged task mutation paths; broader checkout workflows are planned.
CollaborationRole-based editability☑️Role/permission helpers exist for before-change hooks; packaged policy wiring is planned.
CollaborationRead-only viewsgantt.readOnly blocks packaged task, dependency, and assignment mutations.
CollaborationApproval workflow hooks🚧🚧.
Export and integrationCSV exportRevoGrid core ExportFilePlugin exports visible grid data as CSV.
Export and integrationExcel exportRevoGrid Pro ExportExcelPlugin exports grid data to .xlsx.
Export and integrationExcel importRevoGrid Pro ExportExcelPlugin imports .xlsx/.xls into the grid.
Export and integrationPDF export☑️Print-oriented reporting recipe exists; native PDF export is not implemented by core/Pro/Gantt export plugins.
Export and integrationPNG export🚧Not implemented by core/Pro/Gantt export plugins.
Export and integrationJSON import/exportGantt core exports clone/export/parse helpers for typed project snapshots.
Export and integrationiCalendar support for Scheduler🚧🚧.
Export and integrationMS Project-style import/export layer🚧🚧.
Export and integrationREST API integration☑️Project snapshot REST adapter example exists; production backend templates are planned.
Export and integrationGraphQL integration☑️Project snapshot GraphQL adapter example exists; production backend templates are planned.
Export and integrationServer-side adapter examples☑️REST, GraphQL, and PostgreSQL/Supabase-style examples exist; Firebase and server-window examples are planned.
Export and integrationSupabase / Firebase / PostgreSQL examples☑️PostgreSQL SQL builders and Supabase-style adapter exist; Firebase example is planned.
Export and integrationHeadless scheduling engine mode☑️Engine is framework-independent; public headless API/package is planned.

Current Extra Strengths Beyond The Initial List

AreaFeatureStatus
SchedulingBackward/project-finish scheduling
SchedulingResource leveling modes: off, warn, auto
SchedulingSlack-bound resource leveling
SchedulingProgress-aware remaining-duration scheduling
SchedulingFixed-duration, fixed-work, and fixed-units effort modes
DiagnosticsScheduler warnings projected into row data
DiagnosticsDependency validation summary helper
DiagnosticsResource over-allocation summary helper
DependenciesPredecessor/successor text parser and formatter
TimelineCustom milestone flag lines
TimelineCustom task marker hook
TimelineCustom task bar color/content/tooltip hooks
ToolbarBaseline capture, critical-path toggle, and timeline navigation actions
RenderingRead-only and locked-task indicator metadata
CostAssignment-derived cost and parent cost rollups
HistoryStructural undo/redo for task hierarchy and dependencies
SearchTree-aware search preserving ancestors and descendants

Roadmap Summary

Priority area🚧 work
Scheduler product layerEvent model, booking/job/shift terminology, dedicated views, recurrence, exceptions, vertical mode, event layout modes, Scheduler-specific renderers and validation.
Enterprise dataLazy loading, date-range loading, viewport-aware loading, server-side model, real-time adapters, optimistic updates, WebSocket-ready data flow.
CollaborationPresence, comments, audit logs, role-based editability, locking/check-out, conflict resolution, approval hooks.
Import/exportNative PDF/PNG export, iCalendar, MS Project-style compatibility layer. CSV export and Excel import/export already come from RevoGrid core/Pro; Gantt adds toolbar helpers, Excel row mapping, print recipe, and JSON project snapshot helpers.
ExtensibilityCustom dependency renderer, editor forms, scheduling-rule registry, export pipeline.
IntegrationsFirebase, production server-side templates, headless scheduling engine API/package, packaged Svelte docs/wrapper. REST, GraphQL, and PostgreSQL/Supabase-style examples now exist.