Why Working Calendars Matter
Consider a task estimated at 5 working days starting on a Thursday. Without a working calendar, the Gantt schedules it to end on Monday (5 calendar days later, including the weekend). With a working calendar that defines a standard Monday-Friday work week, the Gantt skips Saturday and Sunday, correctly scheduling the task to end on the following Wednesday. Working calendars also affect the resource view. When a user is on vacation, their calendar marks those days as non-working, and the resource view reflects zero available capacity for that period. This prevents the Gantt from showing misleading workload data.Three-Level Calendar Cascade
The Gantt resolves working calendars through a three-level cascade, where each level adds specificity:- Global calendar — The base calendar defining standard working hours for the organization (typically Monday-Friday, 8 hours per day). Enabled via the
Use Working Calendar(wCal_GLOBAL) parameter. - User calendars — Per-user overrides loaded from Polarion calendar work items. Each user can have different working days, hours, and exceptions. Enabled via
Load User Calendars(wCal_USER), which depends onUse Working Calendarbeing active. - Team assignments — Capacity percentages from team assignment work items that further reduce a user’s effective availability. Enabled via
Load Team Assignments(wCal_ASSIGNMENTS), which depends onLoad User Calendarsbeing active.
Calendar Work Item Types
Working calendars are defined using four Polarion work item types in a dedicated calendar project:| Work item type | Purpose | Effect |
|---|---|---|
| Calendar | Defines regular working hours per weekday | Sets the base schedule (e.g., Mon 08:00-16:00) |
| Time Off | Marks date ranges as non-working | Removes days from scheduling (holidays, vacations) |
| Time On | Overrides Time Off for specific users | Adds working days back (e.g., user works during a public holiday) |
| Tweak | Adjusts working hours for a date range | Changes daily hours without changing working/non-working status |
Calendar Inheritance
A user calendar can inherit base hours from a global calendar via theinherits from work item link role. The user calendar then only needs to specify the days that differ from the global schedule. For example, if the global calendar defines 8-hour workdays Monday through Friday, a user calendar that inherits from it only needs to specify that Wednesdays are off for that user.
The resolution order for each day is: base (inherited) calendar > regular weekday hours > tweaks > exceptions (Time Off / Time On). This means Time On overrides Time Off, and tweaks adjust hours within an already-working day.
Weekday Hour Format
Each calendar work item has seven weekday fields (Monday through Sunday). The format isHH:mm,HH:mm to specify work start and end times. Use - to mark a day as explicitly non-working. Leave the field empty to inherit from the parent calendar.
Connecting Calendars to Projects
Working calendars live in a dedicated Polarion project. To connect this calendar project to a scheduling project, two administration properties must be set:nextedy.gantt.workitemCalendar.projectId— The project ID of the calendar projectnextedy.gantt.workitemCalendar.globalID— The work item ID of the calendar that serves as the global (company-wide) calendar
Calendar Caching and Performance
ThePrevious Years to Load and Next Years to Load parameters control how many years of calendar data are pre-computed. More years means more working-day data is available for long-range views, but at the cost of increased startup time and memory usage. For most use cases, 1-2 years in each direction is sufficient.
The Cache Working Calendars (UseCache) parameter enables server-side caching of computed calendar data. When enabled, repeated Gantt loads reuse cached data instead of recomputing calendars from work items. After making changes to calendar work items, the cache must be cleared using the toolbar button or the scheduled cache-clearing job.
The administration property
nextedy.gantt.calendarHolder specifies a Polarion user ID whose calendar work item is used as the global working calendar. This is an alternative to workitemCalendar.globalID for organization-wide calendar configuration.How Calendars Affect the Gantt
When calendars are enabled, several Gantt behaviors change:- Duration calculations skip non-working days — a 5-day task avoids weekends and holidays
- Off-day cell highlighting marks non-working days with a visual background in the timeline
- Resource view cells show grey for unavailable days
- Auto-scheduling respects calendar boundaries when propagating dates
- Resource load calculations use actual available hours per user instead of a flat 8 hours
Related Topics
- Resource Load Calculation Modes — How calendars influence workload calculations
- Capacity Modifiers and Team Capacity — How team assignments layer on top of calendars
- Auto-Scheduling and Dependency Propagation — How calendars affect dependency-driven scheduling
Sources
Sources
KB Articles
- Work Item Calendar
- How to load User calendars into Gantt
- Use WI Calendar for other project for Resource Load management
prod-gantt-src/com.nextedy.polarion.gantt/src/com/nextedy/polarion/gantt/projectCalendar/WorkingCalendar.javaprod-gantt-src/com.nextedy.polarion.gantt/src/com/nextedy/polarion/gantt/model/impl/CalendarBuilder.javaprod-gantt-src/com.nextedy.polarion.gantt.client/cypress/e2e/working-calendars/csv-calendar.cy.tsprod-gantt-src/com.nextedy.polarion.gantt.client/src/js/default.jsonprod-gantt-src/com.nextedy.polarion.gantt.client/src/js/markers.js