How scheduling works in Project

Microsoft Office Project uses a powerful scheduling engine to help align your organization's projects and tasks with available resources. Understanding how Project schedules work is a key factor in making intelligent planning decisions.

In this article

The big picture: How is a project scheduled?

How does the project start date affect the schedule?

What are the default settings for calculating the schedule?

How do constraints affect the schedule?

How do deadline dates affect the schedule?

How do calendars affect the schedule?

How do resource assignments drive the schedule?

What information can help me analyze my project's progress?

The big picture: How is a project scheduled?

Project schedules a project from the information that you enter about the following:

  • The overall project.

  • The individual work items (called tasks) required to complete the project.

  • If necessary, the resources needed to complete those tasks.

If anything about your project changes after you create your schedule, you can update the tasks or resources and Project adjusts the schedule for you.

For each task, you might enter one or all of the following:

  • Durations

  • Task dependencies

  • Constraints

Using this information, Project calculates the start date and finish date for each task.

You can enter resources in your project and then assign them to tasks to indicate which resource is responsible for completing each assignment. Not only does this help you plan project staffing, it can also help you to calculate the number of machines needed or the quantity of material to be consumed. If you enter resources, task schedules are further refined according to the following resource information:

  • Work

  • Units

  • Working times entered in calendars

Other elements, such as lead time and lag time, task types, resource availability, and the driving resource, can affect scheduling, so understanding the effects of these elements can help you to maintain and adjust your schedule as needed.

Top of Page

How does the project start date affect the schedule?

If you enter a start date for the project, by default, Project schedules tasks to begin on the project's start date and calculates the project's finish date based on the last task to finish. As you enter more information about tasks, such as task dependencies, durations, and constraints, Project adjusts the schedule to reflect more accurate dates for tasks.

Before and after creating a task dependency

Button image When you create a new project, you first enter the project's start date. When you schedule a project from the start date, all tasks start at the project start date unless you specify otherwise.

Button image With no task dependencies or constraints applied, the project's duration is the same as the duration of the longest task. In other words, the project finish date is the same as the longest task's finish date.

Button image Task dependencies, such as the finish-to-start dependency between the first and second tasks (as shown here), can change the project's finish date.

Nearly all projects should be scheduled from a known start date. Even if you know the date that a project must be completed, scheduling from a start date gives you the maximum flexibility.

However, you might want to schedule from a finish date when:

  • You need to determine when a project must start so that it finishes on a specific required date.

  • You are not sure when your project will begin (for example, you are receiving work from another source that could be delayed).

  • Your project management methodology requires you to schedule from a finish date.

As you work with your project that is scheduled from a finish date, be aware of differences in the way that Project handles some actions:

  • When you enter a task, Project automatically assigns the As Late As Possible (ALAP) constraint to the finish date of the task. You should set other constraints only when necessary.

  • If you drag a Gantt bar to change the finish date of a task, Project automatically assigns a Finish No Later Than (FNLT) constraint.

  • If you change your project to schedule from a finish date and it was previously scheduled from a start date, you will remove all leveling delays and leveling splits from tasks and assignments.

  • If you use automatic leveling to reduce resource overallocations in your project, Project will add a leveling delay after a task rather than before a task.

Top of Page

What are the default settings for calculating the schedule?

Project calculates the duration of tasks based on the definitions of the duration units on the Calendar tab of the Options dialog box (Tools menu). Just like a normal monthly calendar, the year begins in January and each week begins on Sunday or Monday. By default, when Project calculates duration units, one day equals 8 hours, one week equals 40 hours, and one month equals 20 working days. If you enter start and finish dates for tasks and don't enter start and finish times, Project uses 8:00 A.M. as the default start time and 5:00 P.M. as the default end time.

Top of Page

How do constraints affect the schedule?

When you need to control the start or finish date of a task, you can change the constraint on the task. Flexible constraints work with task dependencies to make a task occur as soon or as late as the task dependency will allow. For example, a task with an As Soon As Possible (ASAP) constraint and a finish-to-start dependency will be scheduled as soon as the predecessor task finishes. By default, all tasks in a project that is scheduled from the start date have the ASAP constraint applied. Likewise, by default, all tasks in a project that is scheduled from the finish date have the As Late As Possible (ALAP) constraint applied.

Constraints with moderate scheduling flexibility will restrict a task from starting or finishing before or after a date you choose. For example, a task with a Start No Earlier Than (SNET) constraint for June 15 and a finish-to-start dependency to another task can begin June 15 if its predecessor is finished by June 15 (or later if its predecessor finishes after June 15), but it can't be scheduled before June 15.

Before and after applying a constraint

Button image With the default finish-to-start task relationship and an ASAP constraint applied to these tasks, the successor task (the second one) is scheduled to begin as soon as the predecessor task (the first one) is scheduled to finish.

Button image With a SNET constraint applied, the successor task cannot begin before the constraint date, even if (as shown here) the predecessor task is completed before the constraint date.

Inflexible constraints override any task dependencies by default and restrict a task to a date you choose. For example, a task with a Must Start On (MSO) constraint for September 30 and a finish-to-start dependency to another task will always be scheduled for September 30 no matter whether its predecessor finishes early or late.

If a task that is constrained to a date has a predecessor that finishes too late for the successor to begin on the date specified in the constraint, negative slack can occur.

To review or change the constraint on a task, select the task, click Task Information Button image, and then click the Advanced tab. Constraint information is in the Constraint type and Constraint date boxes.

Top of Page

How do deadline dates affect the schedule?

Deadline dates don't usually affect task scheduling. They are used to indicate a target date you don't want to miss, without requiring you to set a task constraint that could affect scheduling if predecessor tasks change. A task with a deadline is scheduled just like any other task, but when a task finishes after its deadline, Project displays a task indicator notifying you that the task missed its deadline.

Deadline dates can affect the total slack on tasks. If you enter a deadline date before the end of the task's total slack, total slack will be recalculated by using the deadline date rather than the task's late finish date. The task becomes critical if the total slack reaches zero.

You can set deadlines for summary tasks as well as individual tasks. If the summary task's deadline conflicts with any of the subtasks, the deadline indicator signifies a missed deadline among the subtasks.

But deadline dates can affect how tasks are scheduled if you set a deadline date on a task with an As Late As Possible (ALAP) constraint. The task is scheduled to finish on the deadline date, though the task could still finish after its deadline if its predecessors slipped.

To review or change a task deadline, select the task, click Task Information Button image, and then click the Advanced tab. Use the Deadline box.

Top of Page

How do calendars affect the schedule?

Calendars determine the standard working time and nonworking time, such as weekends and holidays, for the project. They are used to determine the resource availability, how resources that are assigned to tasks are scheduled, and how the tasks themselves are scheduled. Project and task calendars are used in scheduling the tasks, and if resources are assigned to tasks, resource calendars are used as well.

The calendars referred to in Project are:

  • Base calendars    These are the foundations for the other types of calendars. You can also choose a base calendar to be the project calendar, and you can apply a base calendar to tasks as a task calendar or as the default hours for a resource calendar. Project provides three base calendars: the Standard, 24-Hours, and Night Shift calendars. You can customize your own base calendar by using any of the base calendars provided.

  • Project calendars    These set the standard working and nonworking times for the project as a whole. If resource calendars or task calendars are not used, tasks are scheduled during the working time on the project calendar by default.

  • Resource calendars    These are based on the Standard calendar by default. You can change working time or nonworking time for specific resources or a set of resources, ensuring that resources are scheduled only when they are available for work. If you have changed working or nonworking time on a resource calendar and the resource is assigned to a task, the task is scheduled during the working time on the resource calendar.

  • Task calendars    These can be used to define working times for tasks outside the working times in the project calendar. When a task calendar is assigned to a task and the resource assigned to the task has different working times in its resource calendar, the task is scheduled for the overlapping working time of the two calendars. But you can set a task option to ignore resource calendars and schedule the task through the resource's nonworking time.

To work with calendars, on the Tools menu, click Change Working Time.

Top of Page

How do resource assignments drive the schedule?

If you don't assign resources to tasks in your project, Project calculates the schedule using durations, task dependencies, constraints, and project and task calendar information. If you do assign resources, the tasks are also scheduled according to resources' calendars and assignment units, providing for more accurate scheduling.

An assignment is the association of a specific task with a specific resource that is responsible for completing the task. More than one resource can be assigned to a task. Work resources, material resources, and cost resources can be assigned to tasks. Unlike work resources, assigning material resources or cost resources to a task does not affect task scheduling.

For example, in your project you have a task named Develop specifications. You also have an engineering resource, Sean. If you assign Sean to the Develop specifications task, the scheduling of this task depends on Sean's resource calendar and assignment units, in addition to task information such as duration, task dependencies, constraints, and calendars.

In addition to scheduling according to task information, after you assign resources to the tasks in your project, Project has resource and assignment information to use in calculating schedule information, including:

  • The amount of work or overtime work the resource is assigned to do, and how that work is distributed over time. Work distribution over time can also be affected by work contours.

  • The number of assignment units for the resource, that is, part-time, full-time, or multiple, on the task.

  • The task type, which affects how a schedule changes if you revise the existing assignment. The three task types are fixed unit, fixed duration, and fixed work.

  • Whether the task is effort-driven. If a task is effort-driven, as resources are added or removed on the assignment, the work remains constant for the task and is redistributed among the resources. For fixed-unit tasks, for example, one result is that if more resources are assigned, a shorter duration is required to complete the task.

  • Resource calendars. Project schedules the assigned resources based on the working and nonworking times indicated on their resource calendars.

To assign resources to tasks, click Assign Resources Assign Resources button image.

Top of Page

What information can help me analyze my project's progress?

Five pieces of task information help you analyze progress as you track tasks in your project: duration, work, start date, finish date, and cost.

Variations of each of these types of fields help you compare and evaluate your progress: planned, scheduled, actual, and remaining.

For example, for one task, there can be fields of information containing planned work, scheduled work, actual work, and remaining work. The contents of these fields might match one another, or they might all be different. Variances between certain fields can also be examined for useful tracking information. For this reason, these fields are referred to as tracking fields.

Field type


Planned or baseline information

Planned information is also known as baseline information. Examples of fields containing baseline information include Baseline Work, Baseline Start, Baseline Cost, and so on.

When you build and refine your project to the point where you are confident that you can start the project, you have a good beginning point, or baseline. If you save baseline task information at that point, at later points throughout the project you can compare your current progress against your initial plan. Saving the baseline is essential for meaningful project tracking and analysis.

To save baseline information, click Tools, point to Tracking, and then click Save Baseline. When you save a baseline, the five key pieces of information (work, cost, duration, start date, and finish date) are saved for each task in the project. Later when you are tracking a particular task, you can quickly see whether you are using more or less work or cost than you had originally planned, or if the task is starting or finishing earlier or later than planned.

The baseline information is used to calculate variances against scheduled information. It is also used in many earned value calculations. You can save up to 11 different baselines. You can also save 11 interim plans, giving you the opportunity to save 11 start and finish dates for tasks.

Scheduled information

Scheduled information is the current, most up-to-date task information. Fields containing scheduled information are Duration, Work, Start, Finish, and Cost. The scheduled Duration, Work, and Cost fields represent the total amount for that task.

When you first begin your project, the scheduled information is similar, if not identical, to your baseline planned information. However, as tasks are completed, you make adjustments and enter actual information. You find that one task needs three more days than first expected. Another task was able to start a day early. Another task incurred an unexpected cost. You find you need to change a constraint on one task and add a task dependency on another. With these adjustments, the scheduled information is recalculated to provide you with the most up-to-date picture of your project.

When you start entering actual information on in-progress tasks, scheduled information takes that into account and recalculates accordingly. For example, scheduled work is calculated as Actual Work + Remaining Work. For completed tasks, scheduled information is the same as actual information.

Actual information

Actual information reflects how the task was finally accomplished. You started with the planned projection of duration, work, cost, and start and finish dates. You enter progress information, or actuals, for tasks, and end up with the real picture of the completion of the task. Actuals tell you how much the task really cost, how many days of work it really took, the actual duration, and the real start and finish dates.

You enter actual information in fields such as Actual Work, Actual Duration, Actual Start, Actual Finish, and Actual Cost. If you enter actual information in one or two fields, the other actual information can be calculated for you. For example, if you enter the Actual Finish date, the Actual Duration, Actual Start, and other fields can be calculated. The same is true if you enter other tracking information, such as percentage complete.

Remaining information

For tasks not yet started or tasks in progress, there exists remaining work, remaining cost, and remaining duration. These fields estimate the amount of time and cost left before the task is complete. Remaining fields are a projection of the future.

For tasks not yet started, the contents of the Remaining Work field are the same as that of the Scheduled Work field. For tasks in progress, remaining work is calculated as Scheduled Work – Actual Work. The same is true for the Remaining Cost and Remaining Duration fields. However, the Remaining Work field can be edited, as can the Actual Work and Scheduled Work fields.

Variance information

If you saved a baseline, then you can take advantage of the calculations in the Variance fields. Examples include Work Variance, Cost Variance, Duration Variance, Start Variance, and Finish Variance.

Your current scheduled information is compared with your original planned information. The Variance field shows the calculated difference between planned and scheduled information. For example, the Work Variance field shows the difference between the Baseline Work and Scheduled Work fields.

Reviewing tracking fields

You can add any field to any sheet view. For example, you might want to insert the Baseline Duration column next to the Scheduled Duration field in the Gantt Chart. On the Insert menu, click Column, and then choose the field you want to show in the view.

You can also apply a table that is already designed with several tracking fields. Examples include the Tracking, Work, Cost, and Variance tables. You can also create your own table that contains the tracking fields you need.

Top of Page

Was this information helpful?

How can we improve it?

How can we improve it?

To protect your privacy, please do not include contact information in your feedback. Review our privacy policy.

Thank you for your feedback!