Skip to main content

Prerequisites

  • Access to the Polarion server file system (to place the CSV file)
  • Access to Administration > Configuration Properties

Step 1: Prepare the CSV File

Create a semicolon-delimited CSV file with the following column order:
ColumnDescriptionExample
PROJECT_IDPolarion project IDMyProject
USER_IDPolarion user IDjsmith
YEARCalendar year2025
STARTStart day of year (1-366)60
ENDEnd day of year (1-366)90
CAPACITYWorking hours per day8
Each row defines a capacity period for one user. Set CAPACITY to 0 for non-working periods.
The START and END columns use day-of-year numbers (1 = January 1, 365 = December 31). You can calculate these from dates in a spreadsheet before exporting.

Step 2: Upload the CSV File

Place the file at the following path on the Polarion server:
/.polarion/nextedy/resource-capacity.csv
This is the fixed path that the Gantt reads from. The file must be accessible to the Polarion server process.

Step 3: Enable CSV Calendar Loading

Add the following property under Administration > Configuration Properties:
nextedy.gantt.loadResourcesFromCsv=true
This tells the Gantt to use the CSV file as the calendar source instead of team assignment work items.
When the CSV file is being parsed for the first time, the Gantt widget displays a message: “CSV User Calendar is loading, it may take few minutes…”. This is expected behavior during the initial load.

Step 4: Enable Working Calendars in the Widget

Open the Gantt widget parameters and navigate to Working Calendars:
  1. Set Use Working Calendar to Yes
  2. Set Load User Calendars to Yes
diagram For improved performance on repeated page loads, enable server-side caching:
nextedy.gantt.workingCalendar.useCache=true
The cache persists between page loads. After updating the CSV file, clear the cache to load the new data.
After replacing the CSV file, you must clear the calendar cache for changes to take effect. Use the server-side cache clearing job or the admin API endpoint.

CSV File Example

MyProject;jsmith;2025;1;120;8
MyProject;jsmith;2025;121;125;0
MyProject;jsmith;2025;126;365;8
MyProject;mdoe;2025;1;365;6
In this example:
  • jsmith works 8 hours per day, except days 121-125 (a vacation week with 0 hours)
  • mdoe works 6 hours per day all year

Verify

You should now see grey allocation markers in the resource view on days where the CSV defines zero capacity for a user. Days with reduced hours display the correct capacity values in the resource markers.

See Also

KB ArticlesSupport TicketsSource Code
  • prod-gantt-src/com.nextedy.polarion.gantt.client/cypress/e2e/working-calendars/csv-calendar.cy.ts
  • prod-gantt-src/com.nextedy.polarion.gantt/src/com/nextedy/polarion/gantt/model/impl/CsvCalendarFactory.java
  • prod-gantt-src/com.nextedy.polarion.gantt/src/com/nextedy/polarion/gantt/widget/GanttWidgetRenderer.java
  • prod-gantt-src/com.nextedy.polarion.gantt/src/com/nextedy/polarion/gantt/model/impl/WorkingCalendarConfigStore.java
  • prod-gantt-src/com.nextedy.polarion.gantt/src/com/nextedy/polarion/gantt/model/impl/ExtendedCalendarFactory.java