Skip to content

Scheduling Direction

Source code
import { GANTT_ALAP_DEMO } from './gantt-advanced-data';
import { loadAdvancedGanttDemo } from './GanttAdvancedVanillaDemo';
export function load(parentSelector: string) {
return loadAdvancedGanttDemo(parentSelector, GANTT_ALAP_DEMO);
}

Forward scheduling is the default and behaves like Microsoft Project’s ASAP (As Soon As Possible) direction. Automatic tasks are placed as early as their dependencies and constraints allow.

grid.gantt = {
scheduling: {
scheduleFrom: 'project-start',
projectStartDate: '2026-04-06',
},
};

When projectStartDate is set, automatic root tasks start from that anchor unless a dependency or constraint moves them later.

Backward scheduling behaves like Microsoft Project’s ALAP (As Late As Possible) project-finish direction:

grid.gantt = {
scheduling: {
scheduleFrom: 'project-finish',
projectFinishDate: '2026-06-30',
},
};

Automatic tasks without successors are placed as late as possible against projectFinishDate; predecessors are pulled earlier to satisfy outgoing dependencies. If projectFinishDate is omitted, the scheduler uses the latest task finish in the current data.

Use project-finish scheduling for ALAP-style plans:

grid.gantt = {
scheduling: {
scheduleFrom: 'project-finish',
projectFinishDate: '2026-04-30',
},
};
grid.source = [
{
id: 'build',
name: 'Build',
duration: 3,
},
{
id: 'release',
name: 'Release',
duration: 1,
},
];
grid.ganttDependencies = [
{
id: 'build-release',
predecessorTaskId: 'build',
successorTaskId: 'release',
type: 'finish-to-start',
lagDays: 0,
},
];

Expected result: release is placed as late as possible against 2026-04-30; build is pulled earlier so the FS relationship remains valid.

See the Project-finish ALAP demo for a visible backward-scheduled chain anchored to a project finish date.