Keep Global Calendars to Yourself!

Stop the Proliferation of Global Calendars – a Step-by-Step Guide

Many construction project specifications state that Global Calendars and Global Activity Codes (Global Activity Codes will be discussed in a separate article) are not to be included in the Project Schedule. The reason is that the Owner or Agency wants to control the number of Global Calendars in their P6 Schedule Network.

Imagine a large agency such as a State Department of Transportation that receives Project schedules from scores of Contractors. If the Global Calendars are not properly managed, the Department can easily wind up with literally hundreds of Global Calendars of which many may not be easily attributable to a source Project or Contractor. Also, imported Global Calendars probably do not have a typical convention structure or time configuration which may inadvertently be used as the source of another Project Calendar. Additionally, existing Global Calendars could be overwritten if Global Calendars are imported with the same Calendar name.

In general, Global Calendars are intended to be used only for creating Project or Resource Calendars. Therefore, Global Calendars should never be transferred from one party to another.

For those submitting Project Schedules to other parties, the submitter should make sure that Global Calendars are not included in the export file (typically the .XER file). Submitting Global Calendars to other parties not only populates other P6 Users with superfluous Global Calendars but is bad form and should be avoided.

For those who receive Project Schedule from other parties, the recipient should make sure that the import file (typically the .XER file) does not contain Global Calendar. Otherwise, before long, the recipient’s Global Calendar list will contain scores of unrecognized, duplicate and unassigned Global Calendars.

At this point, you may consider attempting to purge and delete unused Global Calendars. However, this task can be more difficult than what may appear at first.

The following step-by-step procedure provides a guideline for cleaning up the Global Calendars List.

1. Create a Global Calendar naming convention that clearly distinguishes your Global Calendars from all other Global Calendars.

In the illustration below, the 8 highlighted Global Calendars names are preceded by a “*” then coded by “GC” prefix and a unique 2 digit number.

The “*” prefix helps to make sure that when sorting by Calendar Name, the Global Calendars to keep are sorted to the top of the grouping. The “GC” prefix identifies the Calendar as a Global Calendar.

Using this type of convention allows P6 Users to easily spot authentic Global Calendar usage within a P6 Project and to identify those Global Calendars that are candidates for deletion. In addition, clearly identified Global Calendars facilitates stepping through the remaining checks & procedures.

2. Create a Global Calendar naming convention that clearly distinguishes other Global Calendars, from Project and Resource Calendars. These Global Calendars are candidates for deletion.

In the illustration below, note that the other listed Global Calendar names are preceded by a “GC” then coded with a unique 2 digit number and continue with a Calendar Name.

3. Attempt to remove all Global Calendars that are candidates for deletion.

Starting with the first Global Calendar candidate for deletion, click on the Delete button shown above.

Case 1: Confirmation with “Are you sure…” window.

If the confirmation window appears above and you are sure the Global Calendar can be deleted, the select “Yes” and proceed to the next Global Calendar candidate for deletion.

Case 2: Error Message appears – Calendar [Calendar Name] cannot be deleted because it is used by activities in other projects.

If the error message window above appears above, then click OK. Proceed through the next steps to be able to delete the selected Global Calendar.

Click on the Used By… command button to display the Projects and/or Resources that are using the selected Global Calendar.

For each listed Project ID, open the Project ID, then filter the Project to display all activities.

If the Project ID is not listed in the EPS nodes, then the Project ID is embedded as Baseline in one of the Projects residing at the EPS Level. This may be a time consuming effort is the EPS Level Project ID is not immediately known. Once found, restore the Project ID, then follow the Steps above to remove Global Calendars embedded in a Baseline Project.

Next, Group and Sort the activity list by Calendar with the Indent Checkbox selected as shown below.

Next, collapse the list so that all the activities are not shown as shown below:

Collapse the activity list so that only the Groups appear. In the illustration below, the activities are collapsed. Note that Project Activity ST03 – 6 Day Standard Workweek, is indented under “*GC-06 – 6 Day Standard – no Holidays”.

If a Calendar Level 2 exists, then the Project contains Project Calendars that are inheriting from Global Calendars. Follow Step 5 to change the Inherited Global Calendar setting to <none>.

Continue assigning re-activities from a Global Calendar to a Project Calendar. If a Project Calendar does not exist for the activity, then create a new Project Calendar from a Global Calendar (making sure that inheritance is set to <none>. Complete this process until all activities are assigned to a Project Calendar.

Next Group by Resource, then follow Step 7 to assign Resource Calendar to the Resources used in the Project. Complete this process until all activities are assigned to Resources that are assigned to a Resource Calendar.

Finally, close the Project then delete the unwanted Global Calendar. Continue this process until all unwanted Global Calendar candidates are deleted. The remaining Global Calendars are valid and should remaining in the Project Network.

4. Unassign all remaining valid Global Calendars.

Next, for each valid Global Calendar attempt to the delete the specific Calendar. Since the Default Global Calendar cannot be deleted, temporarily assign another Global Calendar as the Default. If the confirmation textbox appears to delete the Calendar, select No, then continue to the next Global Calendar.

If P6 cannot delete the selected Global Calendar, then follow the instructions found in Step 3, Case 2 above.

Continue this process until all valid Global Calendars are not assigned to P6 Projects.

The next steps below ensure that exported Project files do not contain any Global Calendars. Even though Projects do not contain activities or resources assigned to Global Calendars, you can still wind up with Global Calendars contained in the export Project file.

5. Ensure that no Project Calendars are inheriting from Global Calendars.

When a Project Calendar is created from a Global Calendar, the Project Calendar automatically inherits its properties from the selected Global Calendar. In the sample below, the Project Calendar “PC-01 – 7 Day WrkWk – No Holidays” is inheriting from the Global Calendar “*GC-01 – 7 Day WrkWk – No Holidays ”.

Left this way, the inherited Global Calendar is automatically brought in when an .XER file is created.

For each Project Calendar ensure that the Project Calendars are not inheriting from a Global Calendar by selecting the Modify… command button as shown below.

Next scroll through the Global Calendar list, then select <none> from the pull-down menu as shown below.

To prevent a Global Calendar from making its way into the .XER as a result of Inheritance,  set all Project Calendar’s inheritance to “<none>”. In the illustration above, the pull-down menu is expanded to display the “<none>” option from the list of Global Calendars.

6. Ensure that Projects do not Default to a Global Calendar.

Every Project has an assigned Default Calendar. The setting for the Default Calendar for a Project can be seen in the Project’s Default Page in the Project’s Detail window as shown below.

When a new Project is created from scratch, P6’s designated Default Project Calendar is automatically assigned as the Default Calendar for the Project. When a Project has a Global Calendar as the Default Project Calendar, then that Global Calendar will be saved in the exported .XER file.  

To prevent a Global Calendar from making its way into the .XER as a result of Default Calendar settings, first, open the Project, then select a Project Calendar as the Default Calendar.

7. Ensure that Resources assigned to activities do not have a Calendar Profile referencing to a Global Calendar.

All Resources are assigned a Calendar which can be viewed in the Details ->Profile selection window. When a new Resource is created from scratch, P6’s designated Default Project Global Calendar is automatically assigned as the Default Calendar for the Resource. In the illustration below, the Carpenter resource Calendar Profile is assigned to a Global Calendar.

Resources can either be assigned to a Personal Calendar or be assigned to a previously created Shared Resource Calendar.

To prevent a Global Calendar from making its way into the .XER file, all Resources that are assigned to the Project’s activities must be assigned to either a Shared Resource Calendar or a Personal Calendar. Furthermore, whether a Shared Resource or Personal Calendar is used, the assigned Calendar must not be inheriting from a Global Calendar (See Step 5 above).

8. Final QA/QC .XER visual inspection.

Checking an .XER for Global Calendars is easy. Simply open the file using a text editor such as Notepad then scroll down to the Calendar Table (%T) section as shown below: 

Below that line, now look for a Record line starting with (%R). Reading to the right, the 7th field, which displays the Record value for field name (%F) “clndr_type” is displayed. The three possible Record values for the Field “clndr_type” (Calendar Type) is:

  1. CA_Base: Identifying a Global Calendar;
  2. CA_Project: Identifying a Project Calendar;
  3. CA_Rsrc: Identifying a Resource Calendar.

If “CA_Base” exists as a Calendar Type, then a Global Calendar exist for the Project contained in the .XER File.

If you submit schedules in .XER format and “CA_Base” is contained in the .XER file, then go back and follow the steps above to remove any reference to a Global Calendar.

If you receive schedules in .XER format and “CA_Base” is contained in the .XER file, then return the .XER file to the submitting party for correction.

Keeping a “Lean & Mean” Global Calendar list helps stop the proliferation of redundant and superfluous Global Calendars.

Copyright ©2019 FoxQuest Systems, Inc. – All Rights Reserved

Activities with No Finish Side Successors

The Precedence Diagram Method (PDM) of defining relationships between activities is a powerful tool. Often, however, Schedulers, sometimes unknowingly, misuse the options available when defining relationships between activities.

In the illustration below, Activity “E” is assigned to “B” as a predecessor with relationship Finish-to-Start (FS) and is assigned to “F” with relationship Start-to-Start (SS).

Since “F” has a predecessor and a successor activity, it does not violate the “No Open Ends” rule. In fact, running the P6 Global filters, “Activities without Predecessors” and “Activities without Successors” will display no results.

However, since “E” is related to its only successor, “F” using SS, “E” does not effectively contribute to the CPM network. In fact, when “E’s” status is updated to “In Progress”, it essentially behaves like an “open ended” activity yet still complies with the “No Open Ends” rule.

Unfortunately, in P6, there is no Filter that can be constructed to check for “no finish side successors”. However, Zümmer checks this anomaly with Report #14 – “Activities With No Finish Side Successor”.

The converse to this issue is “Activities with No Start Side Predecessors”

Copyright ©2019 FoxQuest Systems, Inc. – All Rights Reserved