> ## Documentation Index
> Fetch the complete documentation index at: https://learn.nextedy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Set Up a Basic Gantt Chart

> This tutorial guides you through creating a Work Items Nextedy GANTT chart from scratch in your Polarion project.

export const LastReviewed = ({date}) => {
  if (!date) return null;
  const formatted = new Date(`${date}T00:00:00Z`).toLocaleDateString("en-US", {
    year: "numeric",
    month: "long",
    day: "numeric",
    timeZone: "UTC"
  });
  return <p className="mt-10 text-sm text-gray-400 dark:text-zinc-500 not-prose">
      Last reviewed on {formatted}
    </p>;
};

## What You Will Achieve

After completing this tutorial, you will have:

* A Polarion Info Page with a Work Items Gantt widget
* Filtered work items displayed as task bars on the Gantt chart
* Parent-child hierarchy showing grouped work items
* Dependency roles configured for linking tasks

<Frame>
  <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/1.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=3caa78f0051038776e397b4264351e94" alt="Finished Work Items Gantt chart showing E-Library template tasks as bars next to the Table view" width="1541" height="573" data-path="gantt/images/48001218351/1.png" />
</Frame>

## Prerequisites

* [Gantt installed](/gantt/getting-started/installation) on your Polarion server
* A Polarion project with existing work items (or use the E-Library template)
* Edit permissions on the project's Documents & Pages

<Tip>
  If you are evaluating Gantt, consider starting with the [demo project](/gantt/getting-started/demo-project) first. It provides a pre-configured Gantt chart you can explore immediately.
</Tip>

This tutorial follows a project created from the **E-Library** template, so you can repeat each step and reach the same result. Start by creating a new project and selecting the E-Library template from the template list.

<Frame>
  <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/2.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=8f3ee0e18704a096d032d86e040b9a98" alt="Polarion new project creation wizard" width="1048" height="652" data-path="gantt/images/48001218351/2.png" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/3.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=bf41cd5dff6b00bc19d75b09f4cb1dbf" alt="Selecting the E-Library template from the Polarion project template list" width="1049" height="359" data-path="gantt/images/48001218351/3.png" />
</Frame>

<Steps>
  <Step title="Create an Info Page">
    1. Open your Polarion project
    2. Navigate to **Documents & Pages**
    3. Select a space (for example, **Default Space**)
    4. Click **Expand Tools** in the upper toolbar
    5. Click the **Gear** button and select **Create New**
    6. Choose **Info or LiveReport Page**
    7. Enter a title (for example, "Project Nextedy Gantt") and click **Create**

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/4.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=126ecfc3437e2a1350b33ed1a3de9bc2" alt="Default Space selected in Documents & Pages with Expand Tools in the upper toolbar" width="1403" height="760" data-path="gantt/images/48001218351/4.png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/5.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=2d949a7099ade259e6a931bcbe46ccac" alt="Gear button menu with Create New option in the page toolbar" width="569" height="304" data-path="gantt/images/48001218351/5.png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/6.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=0b96e34c31d09422ace9324502d9ccbb" alt="Create New dialog with Info Page selected as the page type" width="952" height="643" data-path="gantt/images/48001218351/6.png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/7.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=17eec93649575a6cabfa2294fc27be31" alt="Info Page title entry field with the Name (ID) generated automatically" width="420" height="313" data-path="gantt/images/48001218351/7.png" />
    </Frame>

    You should see an empty page with the widget picker available on the right side.

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/8.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=e43499ebe3b30c784d3d3323f0ec2e78" alt="Empty Info Page GANTT1 added to the Default Space with the Widgets panel on the right" width="1600" height="759" data-path="gantt/images/48001218351/8.png" />
    </Frame>
  </Step>

  <Step title="Add the Work Items Gantt Widget">
    In the widget picker on the right side of the page:

    1. Expand the **Work Items** category
    2. Select **Gantt (Work Items)**
    3. The widget loads onto your page, displaying all work items in the project

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/9.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=5577e856d2c7eeb27bcec17944d13cf6" alt="Gantt (Work Items) widget loaded with all work items from the E-Library template" width="1393" height="707" data-path="gantt/images/48001218351/9.png" />
    </Frame>

    <Note title="Two Widget Types">
      Polarion shows two Gantt widgets: **Gantt (Work Items)** under the Work Items category displays individual work items. **Gantt (Plans)** under the Plans category displays Polarion Plans. For this tutorial, use the Work Items variant.
    </Note>
  </Step>

  <Step title="Filter Work Items by Type">
    By default, the Gantt loads all work items in the project. To show specific types:

    1. Open the widget parameters (click the **Edit** button on the page, then the widget gear icon)
    2. In the **Query** section, click the **+** button to add a filter
    3. Select **Type** from the filter options
    4. Choose the work item types you want to display (for example, **Epic** and **Release**)
    5. Click **Apply**

    <Frame />

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/11.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=1539bec5abea1240bae3d58d88417f83" alt="Adding a new Query filter with the + button and selecting Type to filter work items" width="554" height="355" data-path="gantt/images/48001218351/11.png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/12.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=98c63e5555bbf79ba57c78a6cdedfb0c" alt="Choosing Epic and Release work item types in the Query filter before clicking Apply" width="1191" height="484" data-path="gantt/images/48001218351/12.png" />
    </Frame>

    You should see only the selected work item types displayed as task bars on the Gantt chart.
  </Step>

  <Step title="Enable Maximize Gantt View">
    To use the Gantt chart in full-page mode:

    1. In the widget parameters, scroll to the **Advanced** section
    2. Set **Maximize Gantt View** to **Yes**
    3. Click **Apply**

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/13.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=fac5343cc56f74c69ff6dff1e32501dc" alt="Maximize Gantt View set to Yes in the Advanced section of the widget parameters" width="296" height="78" data-path="gantt/images/48001218351/13.png" />
    </Frame>

    The Gantt chart now fills the entire page area, giving you maximum working space.
  </Step>

  <Step title="Configure Parent-Child Hierarchy">
    The hierarchy of items on the Gantt chart is derived from work item link roles.

    1. In the widget parameters, find **Parent Role**
    2. Click **Select** and add the relevant link role (for example, `has_parent`) from the left list to the right
    3. Set **Load Children** to `1` to display one level of child items
    4. Click **Apply**

    With **Load Children** set to `1` but no parent role configured yet, the chart does not change -- the hierarchy is driven by the parent role.

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/14.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=faf69e4fefb845b9f2b8ffa426e4d3f3" alt="Load Children set to 1 with no visible change because no parent role is configured yet" width="291" height="68" data-path="gantt/images/48001218351/14.png" />
    </Frame>

    Select the parent role that links the items (for example, `has_parent`, which goes from Epic to User Story) and move it from the left list to the right.

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/15.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=988806430515928cc2c9f500170da826" alt="Selecting the has parent role and moving it from the left list to the right in the Parent Role picker" width="1205" height="511" data-path="gantt/images/48001218351/15.png" />
    </Frame>

    You should see child work items nested beneath their parents in the Gantt chart. Setting **Load Children** back to `0` hides the hierarchy again.

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/16.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=2c31f4eb92739083eddb05302939251e" alt="User Stories displayed as children nested under their Epic work items in the Gantt chart" width="1276" height="503" data-path="gantt/images/48001218351/16.png" />
    </Frame>

    If you need deeper hierarchy (for example, Epic > User Story > Task), increase **Load Children** to `2` and add additional parent roles (for example, `implements`).

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/17.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=c853b5aecfa94c764d3f6f7807d422b9" alt="Two levels of parent-child hierarchy loaded: Epic, User Story, and Task" width="1243" height="540" data-path="gantt/images/48001218351/17.png" />
    </Frame>

    | Load Children | Result                                          |
    | ------------- | ----------------------------------------------- |
    | `0`           | Only top-level items, no hierarchy              |
    | `1`           | One level of children (e.g., Epic > User Story) |
    | `2`           | Two levels (e.g., Epic > User Story > Task)     |
  </Step>

  <Step title="Configure Dependency Links">
    Dependency links are derived from work item link roles, just like parent-child relationships.

    1. In the widget parameters, find **Dependency Role**
    2. Click **Select** and add the dependency link role (for example, `depends_on`)
    3. Click **Apply**

    You should see dependency arrows drawn between linked work items on the Gantt chart. The first selected dependency role is used when creating new dependency links by dragging between task bars.

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/18.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=9cda7e305f68e2b34ef165d82858299a" alt="Adding the depends on link role to the Dependency Role parameter from the list" width="402" height="321" data-path="gantt/images/48001218351/18.png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/19.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=f47fb2fe906a6217d6976bfce57d68f5" alt="The depends on dependency role selected in the Gantt widget parameters" width="1141" height="225" data-path="gantt/images/48001218351/19.png" />
    </Frame>

    You can also control how items are created by setting the **Parent Mode** and representation mode per type -- for example, allowing an Epic to have a parent only of the same Epic type, while a User Story (representation mode **Item**) can have an Epic as its parent.

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/E5md2k2_IvgOAoTX/images/SCR-20260629-lhh.png?fit=max&auto=format&n=E5md2k2_IvgOAoTX&q=85&s=f960dbf6047e8d4a3fc242360b1a72d3" alt="SCR 20260629 Lhh" title="SCR 20260629 Lhh" className="mx-auto" style={{ width:"67%" }} width="1288" height="776" data-path="images/SCR-20260629-lhh.png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/20.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=3ed79775bc3ad12af113e24c77fc5dc6" alt="Parent Mode and representation mode configured per work item type for Epic and User Story" width="449" height="359" data-path="gantt/images/48001218351/20.png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/DDjWgCW2DWY5biNv/gantt/diagrams/getting-started/setup-basic-gantt/diagram-1.svg?fit=max&auto=format&n=DDjWgCW2DWY5biNv&q=85&s=748f89fd60fda08911cbad19640f63e3" alt="diagram" style={{ maxWidth: "900px", width: "100%" }} width="900" height="60" data-path="gantt/diagrams/getting-started/setup-basic-gantt/diagram-1.svg" />
    </Frame>
  </Step>

  <Step title="Save the Page">
    Before saving, note that the start date fields are Gantt settings rather than work item fields. Until you schedule the tasks, every item starts on **Today**. 

    Click the **Save** button on the Polarion page toolbar to persist your widget configuration.

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/23.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=84accab883dabd9566c536d4e7aae342" alt="Saving the configured Gantt page with the Save icon in the upper-left of the screen" width="266" height="106" data-path="gantt/images/48001218351/23.png" />
    </Frame>

    <Warning title="Save Both Levels">
      Widget parameter changes require saving the page in Edit mode. If you navigate away without saving, your configuration changes are lost.
    </Warning>

    With the configuration saved, you can make the Gantt look organized by scheduling the tasks. Click the **Edit** button to start.

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/24.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=f1bcbda33d8cb2831a64e5fd2232909b" alt="Clicking the Edit button to begin scheduling tasks on the saved Gantt chart" width="639" height="362" data-path="gantt/images/48001218351/24.png" />
    </Frame>

    At this point every item is still unscheduled, which you can confirm by hovering over each one.

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/25.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=277765a3c649a596bd8b76c42d476c6b" alt="Unscheduled items shown when hovering over each task in the Gantt chart" width="748" height="375" data-path="gantt/images/48001218351/25.png" />
    </Frame>

    As you drag scheduled tasks into the past, the parent bar moves with them because it has a derived schedule that always spans all of its children.

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/26.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=926ab17e7414fc9b6d6be89dca760430" alt="Parent bar moving left to cover its children because of its derived schedule" width="1525" height="405" data-path="gantt/images/48001218351/26.png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/27.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=b30bcecdc0f39260c124184824dbf4fa" alt="Derived parent schedule spanning the full range of its scheduled child tasks" width="1375" height="491" data-path="gantt/images/48001218351/27.png" />
    </Frame>

    By default each task is scheduled for 10 days. Use the small white dots on either side of a task bar to drag it longer or shorter.

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/28.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=e03ffd417f132c98c27d8a9267e987bc" alt="White drag handles on both sides of a task bar used to change its duration" width="515" height="241" data-path="gantt/images/48001218351/28.png" />
    </Frame>

    Change the duration of the first task to 5 days by dragging the white dots, repeat for the remaining tasks, then save.

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/29.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=cde87aa3e82d89797f1f8a1c5a5833d3" alt="Tasks with adjusted durations after dragging the handles and saving the changes" width="1551" height="426" data-path="gantt/images/48001218351/29.png" />
    </Frame>

    To order the tasks from the nearest start date to the latest, open **Nextedy Gantt Widget Parameters > Sort by** and change it from **ID** to **gantt\_start**, then apply and save.

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/30.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=54a87dabab36662f710c0bccd8c5a967" alt="Tasks sorted from earliest to latest start date after setting Sort by to gantt_start" width="1549" height="574" data-path="gantt/images/48001218351/30.png" />
    </Frame>

    Increasing **Load Children** from `1` to `2` loads the Tasks again, revealing a red-dotted background on some of them.

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/31.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=f6593e04b8f6946f5d286d62427d3f2c" alt="Red-dotted background reappearing on tasks after loading the deeper child level" width="1316" height="279" data-path="gantt/images/48001218351/31.png" />
    </Frame>

    The red-dotted background marks unscheduled tasks with dependency links; hovering shows a "Dependency constraint violation" message where a link runs from the end of one task to the start of others.

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/32.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=d5a1621c70b5b9cd6e8a880c393945e8" alt="Dependency constraint violation shown on unscheduled tasks linked by dependencies" width="698" height="245" data-path="gantt/images/48001218351/32.png" />
    </Frame>

    Schedule the tasks so the first one ends before the dependent tasks start, which resolves the violations and keeps your team aware of task dependencies.

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/DW7SPQWol8VdzZS9/gantt/images/48001218351/33.png?fit=max&auto=format&n=DW7SPQWol8VdzZS9&q=85&s=894cccc0ce246372a96bf7b604036110" alt="Dependent tasks rescheduled so the controlling task ends before they start, resolving the violations" width="667" height="236" data-path="gantt/images/48001218351/33.png" />
    </Frame>
  </Step>
</Steps>

## Key Widget Parameters Summary

| Parameter               | Purpose                         | Example Value     |
| ----------------------- | ------------------------------- | ----------------- |
| **Query / Type**        | Filter which work items appear  | `Epic`, `Release` |
| **Parent Role**         | Define parent-child hierarchy   | `has_parent`      |
| **Load Children**       | Depth of child loading          | `1` or `2`        |
| **Dependency Role**     | Define dependency relationships | `depends_on`      |
| **Maximize Gantt View** | Full-page display               | `Yes`             |

## Next Steps

* [Set Up a Plans Gantt Chart](/gantt/getting-started/setup-plans-gantt) -- display Polarion Plans as top-level Gantt items
* [Create Your First Dependency Link](/gantt/getting-started/first-dependency) -- learn to create dependencies interactively
* [View Resource Allocation](/gantt/getting-started/first-resource-view) -- enable the resource view to track team workload
* [Explore the Demo Project](/gantt/getting-started/demo-project) -- see a fully configured example

<LastReviewed date="2026-07-07" />
