An improved version of this article is included in my free e-book, MS Project Hacks. Download the book and a sample MS Project file demonstrating the techniques shown here.
Last week, I showed how to add non-working days to your project calendar, so MS Project would take them into account when automatically scheduling tasks. This is an incredibly powerful feature, as it allows you to focus on the duration of a task and its predecessors and successors, without getting tied up in dates. Of course, there are occasions where you want to schedule tasks to be performed on dates that would otherwise be non-working days. A common example would be a cut-over weekend, where you schedule certain tasks for a Saturday or Sunday. The challenge is to make them working days for the tasks of interest, while ensuring that other tasks aren’t shifted in time. The solution is a custom calendar, applied to only certain tasks.
As with adding holidays to the calendar, the version of Microsoft Project you are using makes a difference in navigation. In Project 2007, under the Tools menu, select Change Working Time. In Project 2010, on the Project tab, select Change Working Time. Click the Create New Calendar button, and Click the Make a copy of radio button. Select the Standard calendar from the pull-down list, and then give the new calendar a name. In this case, I named it Cutover Weekend. Then click OK. At this point, you can add the dates you want to mark as exceptions to the working calendar. Enter the Name, Start, and Finish dates. Then click the Details button. Click the Working Times radio button. The default working hours will appear; change them only if necessary.
Click OK to return to the Gantt chart view. Then navigate to the task you want to schedule for that weekend. Bring up the Task Information dialog box by double-clicking on the task, or right-click and select Task Information. Click on the Advanced tab, and select your custom calendar. Click OK and repeat for any other tasks you want to apply this calendar to.
Now your task can be scheduled for a weekend, without impacting the tasks around it. See the example below: Task 8 follows the predecessor to the Cutover task, Preparation. As you would normally expect, it starts on the next working day, Monday, November 18. Task 9 follows the Cutover task, also beginning on Monday, November 18.
As you can see, assigning a custom calendar in this way isolates the effect to just the tasks to which the calendar applies. In addition to this example, you can also apply the same approach to situations where a portion of the project team will be unavailable during the normal work week. One potential application would be for when certain members of the team will be occupied in other activities, such as year-end financial processing.
This simple technique will allow you to create your project schedule around your team’s availability, while still correctly handling exceptions. If you have any questions or other possible uses for custom calendars, please leave a comment below.