Microsoft Project – Calendars
By: Collin Quiring
This is an attempt to help clarify the differences between calendar interactions in Microsoft Project. While there are very helpful “how to” files on www.microsoft.com/project on calendars I am often asked to explain how they are used and how they affect the timing of a schedule.
In Project 2007 there are four calendars. Those are listed here with a quick definition.
Base Calendar: standard working and non-working times. It is the default calendar that is used if no other ones are specified.
Project Calendar: the calendar that the project uses. This can be viewed as “when work can happen” and is representative of the available times for the work to be done. For example, if a company only works certain days or set hours then that should be represented here, as should a company that works a 24 hour schedule. It is representative of when the company is working – when a scheduled item on this schedule COULD be worked on – based on the other calendars is when the task will ACTUALLY be worked on.
Resource Calendar: the calendar that the resource uses. This is used so that resource groups can be scheduled similarly and so that individuals can have their vacations or other scheduled “non-scheduling” times accounted for. As an example, if a certain department always has a Tuesday morning meeting from 10-12 every week, you can enter that into their resource calendar so that you don’t expect scheduled work to happen during that time.
Task Calendar: the calendar that the task uses. This can be used to schedule a task during non-regular-working hours or if it can only happen during a certain time. For example, if taking down the email servers, it is probably best to force that to happen during the evening or weekend rather than during peak working hours.
Now, what does that mean and how does it work in reality?
Here is how a schedule works in Microsoft Project when you schedule a task. You enter a task and lets say you give it “1 Day” duration. The system will look at these calendars to determine when that 1 day actually will fall to be able to schedule the task. At a high level, this means that the system looks to see what calendars might affect the ability of that task to begin or end at a certain time.
Think of it from this perspective:
First, when the system tries to schedule the task, it is going to try and determine what the available working hours are for the entire schedule – by using the project calendar. The project calendar is set up by you with the regular working hours for you organization. But, for the moment, let’s assume that you do not modify the standard project calendar from the default working times of Monday through Friday, 8-5, with an hour lunch. So, if the project calendar is based on the standard default calendar then the system will schedule the task between 8-5 on a Monday through Friday.
Then, the system will check the resource calendar (if it exists) to determine what working hours the resource works. Normally, you add resources to a standard default resource calendar that you create and then you modify each resource according to their unique schedule (vacation, departmental hours, etc). Let’s assume for the moment that we have a “normal” resource that works from 8-5, Monday through Friday with an hour lunch. So, the system will have reviewed the project calendar and now the resource calendar and will have determined that this task can happen between the hours of 8-5, Monday through Friday.
Third, the system will look at the task calendar (if it exists) and determine when the task can be done. This is the calendar that you set up to determine when a specific task can be done. Again, if not using a specific calendar the default calendar will be used.
In this example, on a brand new task that we have just added it will be put into the schedule starting at 8 am on the next day (Monday through Friday). I am ignoring predecessors and other factors affecting this specific task – we are just looking at hour calendars work.
Now, a way to view this in a chart and to use a more difficult, real world example:
Our first example used Monday through Friday and 8-5 for each calendar so the task was scheduled for 1 day according to this chart:
Project Calendar Resource Calendar Task Calendar Scheduled
M-F M-F M-F Next available M-F
8-5 8-5 8-5 Between 8-5
So, what if we have a situation where we work 24 hours a day (three shifts), seven days a week and our schedule could be worked on by somebody, on any one of those shifts during any day? Well, we have to set up our project calendar to represent the 24/7 aspect – this allows work to be scheduled any time in that 24 hour, 7 day window. But, we have to have three resource calendars – one for each shift – and we have to assign each resource to a calendar. This will let the system determine when each resource is available. And, as before, if we set one up, we will have to determine the hour(s) that the specific task can be worked on. For purposes of this example, let’s leave the task calendar as open to anytime. And, for purposes of this example, let’s say that our resource is on a calendar that is Tuesday through Saturday from 11 pm to 8 am with an hour break.
This would look like this:
Project Calendar Resource Calendar Task Calendar Scheduled
Any day T-Sa Any Day Next available T-Sa
24 hour 11pm – 8am 24 hour Between 11p-8a
This time, the system scheduled the task to fall between Tuesday through Saturday and 11 pm to 8 am. Why? It did this because this was the next available time that the task could be worked on – the project calendar said that it could be worked on anytime, but the resource doesn’t work anytime – they work between certain hours on certain days. So, the system used the most restrictive time – when the resource was available.
In the example above, without any outside influence (predecessors, etc) if we were to enter this into the schedule Monday morning at 8 am (when we work) then this task would be automatically scheduled by the system to occur the next night (Tuesday) at 11 pm.
Now, let’s add one more level of complexity. What if the resource had this Tuesday and Wednesday off as a vacation day? The system would move the task to start on Thursday at 11 pm.
So, the next time that you schedule a task and it appears that it is starting at an odd time, take a look at your calendars and see what might be affecting the task.