Primavera P6 Calendars Explained (and Why They Matter)
What Calendars Do in Primavera P6
Calendars in Primavera P6 define the working and non-working time for activities, resources, and the project as a whole. They determine when work can occur, how durations are calculated, and how float is computed. Without calendars, P6 would assume 24/7 availability, which is unrealistic for most projects. Calendars are the backbone of schedule logic—they translate a sequence of activities into realistic dates.
Every activity in P6 is assigned a calendar. That calendar specifies the default working hours (e.g., 8:00 AM to 5:00 PM, Monday to Friday) and holidays. When you assign a duration of 10 days to an activity, P6 uses the activity’s calendar to calculate the finish date by counting only working days. If the calendar has a holiday in that period, the finish date extends accordingly.
Global vs. Resource vs. Activity Calendars
P6 has three levels of calendars: global (project), resource, and activity. Understanding the hierarchy is critical to avoid unexpected date shifts.
Global (Project) Calendar
The global calendar is the default calendar for the entire project. It defines the standard work week and holidays. When you create a new activity, it inherits the project’s default calendar unless you assign a different one. The project calendar is also used for calculating the project’s overall start and finish dates.
Resource Calendars
Resource calendars define the availability of individual resources (people, equipment). A resource might work a different shift or have personal time off. When a resource is assigned to an activity, the activity’s calendar and the resource calendar both affect the schedule. By default, P6 uses the activity calendar for duration calculation, but the resource calendar limits when the resource can work. If the resource is unavailable on a day that the activity calendar says is a working day, the resource will not perform work—this can extend the activity’s duration if the resource is driving the work.
Activity Calendars
Each activity can have its own calendar, overriding the project default. This is useful for activities that have different working patterns—for example, concrete curing that runs 24/7, or testing that only happens on night shifts. The activity calendar determines the activity’s duration and the dates used in scheduling calculations.
Hierarchy Rule: The activity calendar is used for duration and date calculations. The resource calendar is used only to determine when the resource is available. If a resource is assigned to an activity, the resource must be available on days that the activity calendar considers working; otherwise, the resource’s work is shifted to the next available day, potentially extending the activity’s finish.
How Calendars Affect Durations and Float
Calendars directly impact how P6 calculates durations and float. Let’s break it down.
Duration Calculation
When you enter a duration (e.g., 5 days) for an activity, P6 uses the activity’s calendar to determine the finish date. It counts only the working days defined by that calendar. For example, if the activity calendar is a standard 5-day work week with 8-hour days, a 5-day duration starting Monday will finish on Friday. If the calendar includes a holiday on Wednesday, the finish moves to Monday of the next week.
If you assign a resource with a different calendar, the resource’s availability may further constrain the activity. However, the activity’s duration remains based on its own calendar. The resource’s unavailability may cause the resource to work on different days, but the activity’s finish date is still driven by the activity calendar unless you use “Resource Dependent Duration” or “Remaining Duration” settings. By default, the activity calendar is king.
Float Calculation
Float (total float) is the amount of time an activity can be delayed without delaying the project finish date. Float is calculated using the project’s calendar, not the activity’s calendar. This is a common point of confusion. Even if an activity works on a 24/7 calendar, its float is computed based on the project’s default working days. This means that float values can appear inconsistent—an activity with a 24/7 calendar may show float in terms of project working days, which might be misleading.
For example, if the project calendar is 5-day work weeks and an activity on a 7-day calendar has 2 days of float, those 2 days are project calendar days (Monday–Friday), not calendar days. In reality, the activity could be delayed by 2 calendar days (including weekends) without affecting the project finish. Always interpret float relative to the project calendar.
Common Calendar Mistakes
Even experienced schedulers make calendar errors. Here are the most common pitfalls.
Mixing Calendars Without Understanding Hierarchy
Assigning a resource with a different calendar than the activity can cause unexpected resource levelling or extended durations. For instance, if an activity uses a 5-day calendar but the assigned resource uses a 6-day calendar, the resource may be available on Saturdays, but the activity won’t schedule work then because the activity calendar says it’s non-working. The resource’s extra availability is wasted. Conversely, if the resource calendar is more restrictive (e.g., 4-day weeks), the resource may not be able to complete the work within the activity’s duration, leading to a longer finish date.
Ignoring the Project Calendar for Float
Many schedulers assume float is based on the activity calendar. This leads to misinterpretation of schedule health. Always check the project calendar when analysing float. A DCMA 14-point check will flag activities with negative float, but the calendar context is essential.
Using the Wrong Calendar for Holidays
If you update the project calendar but forget to update resource calendars, resources may appear available on holidays. This can cause resource overallocation or unrealistic schedules. Ensure all resource calendars align with the project calendar for common holidays.
Not Using Calendars for Exceptions
Some schedulers avoid creating multiple calendars and instead manually adjust dates. This is error-prone and makes schedule updates painful. Use calendars to model shift work, weather delays, or specialised working patterns. For example, create a “Concrete Curing” calendar with 24/7 working time and no holidays.
Practical Tips for Calendar Management
- Start with a solid project calendar: Define the standard work week and all known holidays before adding activities.
- Create resource calendars for every unique resource pattern: If a resource works a different shift, create a dedicated calendar.
- Assign activity calendars explicitly: Don’t rely on inheritance for critical activities. Audit activity calendars regularly.
- Use the “Calendar” column in activity views: Always display the calendar assigned to each activity for quick verification.
- Run schedule checks: Use tools like Project Assure to scan for calendar inconsistencies, such as activities with no calendar or mismatched resource calendars. Project Assure’s DCMA 14-point check includes calendar-related rules.
Conclusion
Calendars are a fundamental but often misunderstood feature of Primavera P6. They control when work happens, how durations are calculated, and how float is interpreted. By mastering the three calendar types—global, resource, and activity—and avoiding common pitfalls, you can build more realistic and reliable schedules. Always check your calendar assignments and run automated checks to catch errors early. A few minutes spent on calendar hygiene can save hours of rework later.
Run these checks free, in your browser
Free, browser-based Primavera P6 XER schedule analyser — DCMA 14-point, GAO & NASA checks, EVM/S-curve, and forensic baseline-vs-update comparison. Nothing is uploaded; your XER is parsed locally in the browser. 3 free analyses, no card required.
Analyse your XER →Frequently asked questions
What is the difference between a global calendar and an activity calendar in Primavera P6?
The global (project) calendar is the default calendar for the entire project, defining standard working days and holidays. An activity calendar overrides the global calendar for a specific activity, allowing different working patterns (e.g., 24/7 shifts). The activity calendar determines the activity's duration and dates, while the global calendar is used for float calculations and overall project dates.
How do resource calendars affect activity durations?
Resource calendars define when a specific resource is available. When a resource is assigned to an activity, the resource must be available on days that the activity calendar considers working. If the resource is unavailable on a working day (e.g., due to a holiday on the resource calendar), the resource’s work may shift, potentially extending the activity’s finish date. However, the activity’s duration is still based on its own calendar unless you use resource-dependent duration settings.
Why does my float seem wrong when using different calendars?
Float is calculated using the project’s global calendar, not the activity’s calendar. So if an activity uses a 7-day calendar but the project uses a 5-day calendar, float values are expressed in project calendar days. This can make float appear smaller or larger than expected. Always interpret float relative to the project calendar to avoid confusion.
What are common calendar mistakes in Primavera P6?
Common mistakes include: mixing activity and resource calendars without understanding the hierarchy, ignoring the project calendar when analysing float, failing to update resource calendars for holidays, and manually adjusting dates instead of using calendars for exceptions like shift work or weather delays. These errors can lead to unrealistic schedules and misinterpreted float.
Can I use Project Assure to check my calendars?
Yes. Project Assure is a free browser-based tool that analyses Primavera P6 XER files. It includes DCMA 14-point checks that cover calendar-related rules, such as verifying that all activities have a calendar and that resource calendars are consistent. Since the analysis runs locally in your browser, no data is uploaded.