Once you have drawn out an activity network the next step is to work out the earliest and latest possible times for each event. This will let you find the minimum time necessary for the tasks to be completed taking activity precedence into account.
In order to make the identification of earliest and latest times easier, they are often put into a pair of boxes. The left box will be the earliest time and the right box will be the latest time. When working out the earliest times for each event you must start at the first event and assign an earliest time of 0. Work through each event in turn. Add the duration of the activity to the earliest time of the start event to get the earliest time of the end event. If there is more than one way of arriving at the end event then take the largest value for the earliest time.
Once you have gone through the entire network assigning earliest times you can begin to work out the latest times. This is done by starting at the last event and working backwards though the network. To start the process let the latest time of the last event be equal to the earliest time of that event. By subtracting the duration of an activity from the event that it ends at you will be able to find the latest time for the start event for that activity. If there is more than one way to arrive at a start event then take the smallest value for the latest time.
By looking at the earliest and latest times for the last event you will see that they are not the same for all events – some events have slack like B, which may start any time between 2 and 3 without delaying the whole project.