Recently I had a discussion with a colleague about resource calendars, and that was the inspiration for this week's post. This week I'm also rolling out the feature-focused format of what the feature is, why you should use it, and of course how to use it.
Let's begin with a few basics. In the vocabulary of Microsoft Project, work occurs only when a resource is assigned to a task. When that work can occur is controlled by several things, including:
- The project's overall working time as defined by the project calendar. The project calendar defines the general working and nonworking days (and hours) of the project plan--in other words, when tasks can be scheduled to occur. The default project calendar is itself initially derived from what's called the Standard base calendar (with working times of 8:00 AM to 5:00 PM Monday through Friday, with a lunch hour off each weekday). Every project plan (that is, .MPP file) can have a unique project calendar if you wish.
- The resource calendar, which controls working and nonworking times per individual resource. As with the project calendar, you get a resource calendar per resource whether you ever intend to customize it or not. Each resource's resource calendar is initially an exact copy of the project calendar.
- A task calendar. Unlike the project and resource calendars, you have to explicitly create a calendar for a given task. Otherwise, tasks are scheduled within the working time definitions of the project calendar and the resource calendars of any resources assigned to the task.
If you stack up all the calendars, you can begin to see when work can occur:
Of the three calendars, the project calendar is the simplest to understand--just think of it as when the project is "open for business" for any scheduled work to occur. To that, you can overlay the specific resource's working time exceptions from the project calendar, and if need be, create a task calendar that limits when just one specific task can be scheduled.
Lots of Project users go with the default project calendar and don't need to customize it. However you may frequently need to make adjustments to resource calendars. Two common needs include:
- A resource will be unavailable to work on a specific date or time that is within the working time as defined by the project calendar. For example, "Toby will be out at a conference next Friday, January 27."
- A resource has an other-than full-time, 40-hours per week working schedule. For example, "Jun works part-time and has Mondays and Fridays off."
The first example is a one-time exception for Toby's resource calendar. If Toby has any work scheduled on Friday January 27, setting that day as a nonworking day in his resource calendar will cause Project to push forward Toby's assignments into the future. If Toby is the only resource assigned to a task on Friday, the net effect is Project will split the task so no work is scheduled on it that Friday.
The second example is an ongoing situation that should affect the scheduling of Jun's work indefinitely.
Recall that the initial resource calendars Project creates for all resources initially exactly match the project calendar. If you never customize resource calendars, you're not really getting any benefit from this feature. By customizing resource calendars, you can more precisely model when resources really are going to be available to do work on their assigned tasks. This produces some good results for you and the resources:
- The resources won't be scheduled to do work when they are not available to work. People tend to appreciate that.
- You get a more realistic schedule model that accounts for not only how much work is required, but when that work can be performed by the assigned resources. This will help you avoid the "but it pencils out this way" problem of creating overly simplistic schedules that don't account for that all-too-human attribute of variability.
Both the project and resource calendars use the same interface for customizations: the Project tab, Properties group, Change Working Time command. For that matter, you'd use this same command to edit a calendar you'd then associate with a task--a task calendar.
To begin, first I'll enter a one-time working time exception for a resource. Our resource Toby Nixon will be out at a conference next Friday, January 27. Checking our initial Project plan, we see that Toby does currently have an assignment (on task 12) that includes January 27.
Tip Click the screenshot image for a larger view.
I visit the Change Working Time dialog box, and (this is the really important step), in the For calendar box I select Toby Nixon.
Now that I have the right resource name selected, I'm ready to enter the working time exception. In the lower part of the dialog box on the Exceptions tab I enter the details:
Note that the duration of task 12 is still only 2 days, but it now extends from Thursday through the following Monday. That's because Toby's planned work on Friday the 27th has been pushed out to the next available working day--Monday the 30th. The Gantt bar for the task doesn't reveal this detail, but one reliable way I can see the level of detail I want is to switch to a usage view. Here's Toby's assignment details for task 12 in the Task Usage view:
In this view, we can more clearly see that for task 12 Toby has 8 hours of work scheduled for Thursday, none for Friday (due to his resource calendar exception), and the remaining 8 hours now scheduled for Monday.
Next week I'll cover the how-to details of making recurring resource calendar adjustments.
Hands-on with Project Step by Step
To read more about this blog entry's subjects in the two most recent editions of Tim Johnson's and my Project Step by Step books, see the following cross-references.
Customizing resource calendars
- Project 2010 Step by Step: "Adjusting Working Time for Individual Resources," pg.63.
- Project 2007 Step by Step: "Adjusting Working Time for Individual Resources," pg.70.