Project Scheduling couldn’t take place without a P6 Calendar making them fundamental to the Oracle Primavera P6 system. Every calculation using dates needs a Calendar to work. In many ways, the Calendar is one of the most fundamentally important part of Oracle Primavera P6.
Problems with the dates calculated in a P6 Schedule or availability profiles are often traced back to the Calendars used and long-held misconceptions about them.
This post will explore Calendars in Oracle Primavera P6 and provide some tips about setting them up and using them with your projects and resources.
What Is A Calendar In Primavera P6?
The Calendars in Primavera P6 are used for date calculations and can also be used to specify how many minutes in the Time Periods of Day, Week, Month or Year. See my previous blog How Long Is a Primavera P6 Day, Week, Month or Year? post which is about setting the durations of Time Periods.
A Minute is the smallest duration handled by a Calendar and therefore all Durations in P6 are stored as integers representing whole Minutes. It is useful to keep this in mind when working in P6.
Calendars are used to define when work can take place for activities and resource assignments and how much resource is available. They contain non-working days such as weekends and holidays as well as the hours and minutes in a day when work can take place or a resource is available.
Calendars are assigned to Activities and Resources where they are used for scheduling activities and leveling resources.
Date calculations in P6 make use of a Calendar. Given a starting date, P6 may add a number of minutes to it, skipping over the non-working time to end up at an end date. This is not an easy calculation. I know because I maintain a code library called Workpattern written in a language called Ruby which is used for the same kinds of calculations.
A typical Calendar in the UK might have Saturday and Sunday as non-working and 7.5 hours for each of the weekdays from Monday to Friday. It will also have the Bank Holidays such as Christmas Day and Easter set to non-working days.
This Calendar can be used by Primavera P6 to accurately calculate the start and finish of activities so a two-day activity starting on Friday morning will finish at the end of the following Monday rather than Saturday.
The Difference Between Global, Resource And Project Calendars
There are three kinds of Calendars in P6: Global; Resource and Project. Internally, they are all the same, the main difference is where they can be used.
- A Global Calendar can be assigned to any resource or activity in the P6 database
- A Project Calendar is associated with a specific P6 Project and can only be assigned to activities in that P6 Project
- A Resource Calendar can only be assigned to resources. They come in two flavours Personal Resource Calendars and Shared Resource Calendars
This means an activity can be assigned either a Global Calendar or a Project Calendar and a resource can be assigned either a Global Calendar or a Resource Calendar.
How Project And Resource Calendars Can Be Changed Without Accessing Them
All types of Calendars are always created based on an existing Global Calendar. In the case of Project and Resource Calendars, they default to inheriting changes made to the Calendar they were created from.
Did that surprise you? It surprises most people when I tell them. This is often the reason why an activity is not starting and finishing as expected. The Global Calendar has been updated to change a working day into a non-working day or vice versa.
The person with access to change the Global Calendar probably doesn’t have access to your Calendar so someone without access to your Calendar can effectively change it. That doesn’t sound good does it? Thankfully, it doesn’t have to be as bad as it first appears.
The good news is the link can be broken by setting the Inherit holidays and exceptions from Global Calendar to <None> and you then have complete control of your Calendar – assuming you are the only person who can edit it.
What Are The Changes That Can Be Inherited From A Global Calendar?
It will only allow exceptions to be inherited from the Global Calendar if that particular day has not been changed in your Project or Resource Calendar. Changes to the Workweek are not inherited and neither are Time Periods.
As can be seen from the screenshot, changes are clearly marked by the earth icon so there is little chance of not knowing once the Calendar is opened for modifying.
An inheritance from a Global Calendar can be useful when the corporate organization can use it to set statutory holidays as and when they become known. Certainly, in the UK the 5th June 2012 was added as an additional statutory holiday. Adding it once and it being inherited by many would have saved others the trouble.
Understanding the relationship between your Calendar and the Global calendar it is linked to in a well-managed database would lead me to think the link is OK to be kept.
Sadly, my most frequent advice is to break the link your Resource and Project Calendars have with any Global Calendars because the P6 system is not being managed well.
The only reason to keep it in is if you trust the Administrators to keep strong control on the Global Calendar and also inform users when they make changes. That will lead to fewer surprises and in most cases, no surprises.
Personal And Shared Resource Calendars
Both Personal and Shared Resource Calendars can be assigned to any number of Resources, but that isn’t the intent. A Personal Resource Calendar is really meant to be associated with a single Resource linked to a P6 user.
Oracle Primavera P6 can link a P6 user with a P6 Resource. A Personal Resource Calendar can be created and assigned to that Resource and the P6 User can update their own availability. They can maintain their non-working time such as vacation, training, conferences and the morning at the Dentist.
This is a situation where linking a Personal Resource Calendar to a Global Calendar that holds statutory holidays would be desirable.
Official P6 demonstrations often show how Roles can be used for planning projects and then real Resources can be assigned as the start date gets nearer. Having Personal Resource Calendars properly maintained and attached to Resources represented an individual who could be staffed against a Role sounds like the way to go.
Unfortunately, it isn’t much use unless all the Resources have access to P6 and it is unlikely to be the case in the large enterprise organizations that tend to buy P6.
Shared Resource Calendars are available to be managed centrally and assigned to many Resources. This makes them no different from Global Calendars except for their ability to inherit exceptions from a Global Calendar.
I would suggest organizations think long and hard about using any Resource Calendars. They need to come up with a compelling reason why a Global Calendar can’t do the job just as well. The Global Calendar is assigned to the activity and if people are working on that activity, why would they be working at a different set of times? Surely the normal working hours of a company determines what goes in a Global Calendar.
The only reason to have any Shared Resource Calendars is if they need to be different to their linked Global Calendar and also need changes added to that Global Calendar.
Should I Use A Global Or Project Calendar On My Activities?
I believe Global Calendars should be used for the most part and Project Calendars should be used for project-specific working patterns such as an offshore supplier working at different times to your own company.
If more than one project is using the same supplier, then turn it into a Global Calendar and allow all projects to be consistent. The Global Calendar can be used on their Resources too.
I recently read an article about the scheduling review checklist of the Naval Facilities Engineering Command (NAVFAC) specifying the use of Project Calendars. The article highlighted problems with importing XER files from a supplier database into the client’s database and it polluting the Global Calendar.
The answer to that is to stop importing XER files into your Production database rather than use Project Calendars. It will be the subject of another post.
Whats In A Name?
Assigning the wrong Calendar to an Activity or Resource can lead to activities having the wrong durations or Resources the wrong availability. Giving the Calendar a good name can help avoid such problems. All too often the name of a Calendar is ambiguous and without a naming convention, P6 users are left without any help to select the right Calendar.
I always establish a Calendar naming convention and it is always based on the same naming convention albeit adapted for the particular client.
My naming convention assumes there is someone who owns the content of a Calendar. The global owner of the P6 system is one owner. Their Calendars are meant for everyone. Other owners could be a department who requires a special Calendar that others would not need.
The Calendar name shall indicate the owner of the Calendar as well as the content. I try and keep the owner down to three characters such as “GBL” for global ownership and “FIN” for finance.
The Calendar name takes the format of:
<Owner> <Hours per Day>/<Days per Week><Day Range>>[<Additional Info>]
- <Owner> – will be set to “GBL” where it is meant to be used by anyone in the database. This includes the continuous 24 hours 7 day a week Calendar, which I always define. All other calendar names shall start with the letters representing their owner.
- <Hours per Day> – will be set to the number of working hours in a normal day.
- <Days per Week> – will be set to the number of working days in a normal week.
- <Day Range> – will use the abbreviations below to indicate which particular days are worked separated by a hyphen for the range. So Monday to Friday would appear as “M-F”.
- M – Monday
- T – Tuesday
- W – Wednesday
- Th- Thursday
- F – Friday
- Sa – Saturday
- Su – Sunday
- <Additional Information> – is optional and can be used to further clarify what the Calendar Contains such as “UK Holidays”
Here are some possible Calendar names:
- GBL 7.5/5 M-F ENG Holidays – This is a 7.5 hour per day for 5 days of the week and includes holidays in England meant for scheduling work in England and Wales.
- GBL 7.5/5 M-F SCO Holidays – This is a 7.5 hour per day for 5 days of the week and includes holidays in Scotland meant for scheduling work in Scotland.
- GIT 8/7 M-Su Offshore – This Calendar is owned by Global IT and is used to schedule work for support and maintenance staff working offshore in another country.
Off By One Error
Earlier I said P6 Durations are stored as minutes and P6 dates are accurate to the nearest minute. This is true, but a Calendar can only be defined down to half hour slots. They are used to define when work takes place and when resources are available to do that work.
This means the Data Date for Time Scheduling should only ever have minutes of 00 or 30. When the Data Date is set to 26-Sep-2016 08:01 on a Calendar that works from 08:00 in the morning until 16:00. The first 1 Day (8 Hour) Activity ends up finishing on the following day.
Every activity can end up finishing a day later than expected and people receiving P6 reports can lose confidence as a result. In reality, they are just off by 1 minute, finishing at 08:01 the following day instead of 16:00 on the same day.
I’ve called this Off by One Error but it really depends on how many minutes past the 00 or 30 the Data date is.
Which Calendar Is Being Used
The dates and times associated with an activity are always based on the Calendar assigned to the Activity. Resource Assignments make use of the same Calendar as the activity unless the Activity Type is set to Resource Dependent. In that situation, the Resource Assignment is calculated using the Calendar assigned to the Resource.
The dates on Resource Assignments are reflected in the dates of the activity. When the Activity Type is Resource Dependent and resources are assigned, the dates on the activity are driven by the Calendars on the Resource Assignments, which may be different Calendars.
There is some complexity here that deserves a post of its own. For the time being, it is worth noting an Activity Type of Resource Dependent is rare so the complexity is correspondingly rarely needed to be understood.
About Barrie Callender
For 30 years, Barrie has worked exclusively in the Project Management industry. He has considerable experience, knowledge and skills implementing enterprise project management systems across many industries. His experience in fulfilling numerous roles includes, mentoring, training, workshops, project support, process and tool implementations, working through a PMO right up to full-blown Change Management Programs. He has in-depth knowledge of Primavera P6, Microsoft Project, Deltek Cobra, Oracle Projects. He is a member of the APM Thames Valley Branch and, both the Governance SIG and the Planning, Monitoring & Control SIG.