Getting Started with the Kendo UI for Angular Gantt

This guide provides the information you need to start using the Kendo UI for Angular Gantt—it includes instructions about the recommended installation approach, the code for running the project, and links to additional resources.

As of version 17.0.0, Angular makes standalone component enabled by default. If you use NgModules, refer to these articles:

The standalone components in Angular streamline development by removing the need for NgModules, reducing complexity, and enhancing component reuse and modularity. This approach simplifies dependency management, making applications more maintainable and scalable.

ninja-iconThe Installation is part of Kendo UI for Angular, a professional grade UI library with 110+ components for building modern and feature-rich applications. To try it out sign up for a free 30-day trial.Start Free Trial

After the completion of this guide, you will be able to achieve an end result as demonstrated in the following example.

Change Theme
Theme
Loading ...

Setting Up Your Angular Project

Before you start with the installation of any Kendo UI for Angular control, ensure that you have a running Angular project. The prerequisites to accomplish the installation of the components are always the same regardless of the Kendo UI for Angular package you want to use, and are fully described in the section on setting up your Angular project.

Installing the Component

The following command demonstrates an efficient, automated method for adding packages using the Angular CLI through the ng-add command. This approach saves time and effort by executing a series of commands in a single step, which otherwise need to be run individually. Refer to the Manual Setup for more details.

To add the Kendo UI for Angular Gantt package:

  1. Run the following command:

    sh
    ng add @progress/kendo-angular-gantt

    As a result, the ng-add command will perform the following actions:

    • Add the @progress/kendo-angular-gantt package as a dependency to the package.json file.
    • Add all required peer dependencies to the package.json file.
    • Register the Kendo UI Default theme in the angular.json file.
    • Trigger npm install to install the theme and all peer packages that are added.
  2. Import the KENDO_GANTT utility array in your standalone component to enable the entire feature set of the Gantt:

    The utility array is available starting from v16.6.0. If you use an older version of the package, please follow the approach from the Using Kendo Angular Components with NgModules article.

    ts
    import { Component } from '@angular/core';
    import { KENDO_GANTT } from '@progress/kendo-angular-gantt';
    
    @Component({
        standalone: true,
        selector: 'my-app',
        imports: [KENDO_GANTT]
    })

Using the Component

  1. After successfully installing the Gantt package and importing its module, add the following code in the app.component.html file:

    html
    <kendo-gantt
            [style.height.px]="500"
            [kendoGanttHierarchyBinding]="data"
            childrenField="subtasks"
            [dependencies]="dependencies"
        >
        <kendo-gantt-column
            field="title"
            title="Task"
            [width]="200"
            [expandable]="true"
        ></kendo-gantt-column>
        <kendo-gantt-column
            field="start"
            title="Start"
            format="dd-MMM-yyyy"
            [width]="120"
        ></kendo-gantt-column>
        <kendo-gantt-column
            field="end"
            title="End"
            format="dd-MMM-yyyy"
            [width]="120"
        ></kendo-gantt-column>
        <kendo-gantt-timeline-day-view></kendo-gantt-timeline-day-view>
        <kendo-gantt-timeline-week-view></kendo-gantt-timeline-week-view>
        <kendo-gantt-timeline-month-view></kendo-gantt-timeline-month-view>
    </kendo-gantt>
  2. Bind the kendoGanttHierarchyBinding directive to an array of data items representing the Gantt tasks by adding the following code in the app.component.ts file:

    ts
    public data: Task[] = [{
        id: 7, title: 'Validation and R&D', start: new Date('2014-06-02T00:00:00.000Z'),
        end: new Date('2014-06-19T00:00:00.000Z'), completionRatio: 0.45708333333333334,
        subtasks: [
            { id: 18, title: 'Project Kickoff', start: new Date('2014-06-02T00:00:00.000Z'),
                end: new Date('2014-06-02T00:00:00.000Z'), completionRatio: 0.23 },
            { id: 11, title: 'Research', start: new Date('2014-06-02T00:00:00.000Z'),
                end: new Date('2014-06-07T00:00:00.000Z'), completionRatio: 0.5766666666666667,
                subtasks: [
                    { id: 19, title: 'Validation', start: new Date('2014-06-02T00:00:00.000Z'),
                        end: new Date('2014-06-04T00:00:00.000Z'), completionRatio: 0.25 },
                    { id: 39, title: 'Specification', start: new Date('2014-06-04T00:00:00.000Z'),
                        end: new Date('2014-06-07T00:00:00.000Z'), completionRatio: 0.66 }]
            }, { id: 13, title: 'Implementation', start: new Date('2014-06-08T00:00:00.000Z'),
                end: new Date('2014-06-19T00:00:00.000Z'), completionRatio: 0.77,
                subtasks: [
                    { id: 24, title: 'Prototype', start: new Date('2014-06-08T00:00:00.000Z'),
                        end: new Date('2014-06-14T00:00:00.000Z'), completionRatio: 0.77 },
                    { id: 29, title: 'UI and Interaction', start: new Date('2014-06-14T00:00:00.000Z'),
                        end: new Date('2014-06-19T00:00:00.000Z'), completionRatio: 0.6 }]
            }, { id: 17, title: 'Release', start: new Date('2014-06-19T00:00:00.000Z'),
                end: new Date('2014-06-19T00:00:00.000Z'), completionRatio: 0 }]
    }];
  3. Bind the dependencies input to an array of task dependencies by adding the following code in the app.component.ts file:

    ts
    public dependencies: GanttDependency[] = [
        { id: 528, fromId: 18, toId: 19, type: DependencyType.FS },
        { id: 529, fromId: 19, toId: 39, type: DependencyType.FS },
        { id: 535, fromId: 24, toId: 29, type: DependencyType.FS },
        { id: 551, fromId: 13, toId: 29, type: DependencyType.FF },
        { id: 777, fromId: 7, toId: 11, type: DependencyType.SF },
        { id: 556, fromId: 39, toId: 24, type: DependencyType.FS },
        { id: 546, fromId: 29, toId: 17, type: DependencyType.FS },
    ];
  4. Build and serve the application by running the following command in the root folder.

    sh
    ng serve
  5. Point your browser to http://localhost:4200 to see the Kendo UI for Angular Gantt component on the page.

Activating Your License Key

As of December 2020, using any of the UI components from the Kendo UI for Angular library requires either a commercial license key or an active trial license key. If your application does not contain a Kendo UI license file, activate your license key.

Next Steps

Learning Resources