In the MS Project file I am building, some of the tasks depend on environmental conditions – specifically tidal currents being below a certain flow speed. I know precisely the start, finish and duration of every ‘slack water’ period – when the flow speed drops below the critical threshold – but each slack period is different in length and the pattern is irregular. Each slack water period typically lasts between 30 minutes and 2 hours, on an approximately 6-hourly cycle. However, I need to be able to work with specific timings for every slack period: average timings are not accurate enough.

Essentially, if the next task requires the flow speed to be below the critical threshold, and the next slack water period does not start for another 3 hours, then the whole project must wait 3 hours for the slack period to start.

I have had 2 attempts at solving it that have come close, but neither has worked. The attempts are:

1) At the top of the Gantt Table, enter a series of dates/times to represent the start of every ‘Slack Water’ period, essentially a list of milestones. It is possible to manually select one of these milestones for every task that is dependent on slack water. This works fine for the initial schedule: every slack-dependent task only starts when the next slack water period starts, and the gaps that appear in the schedule are accepted. However, the problem starts when the project is live: delays happen, and some of the slack-dependent tasks overshoot the end of their planned slack water periods. In reality the project would wait for the next slack water before those critical tasks can start, but I have not found an automatic way of MS Project re-selecting the next available slack water period. This would amount to MS Project automatically changing certain task dependencies, which I believe is not possible. I believe it’s also not possible to use ‘IF’ logic to determine the timings of tasks (but if it were possible, then perhaps there would be a way of using compound IF statements to select the most appropriate slack-milestone in the Task Dependency column based on the ‘estimated finish’ date/time of its predecessor task).

2) Enter a Resource called ‘Slack Water’, and input the precise times when that resource is available to work, according to the start and finish times of each slack water period. This is on the basis that the Resource Calendar would supersede the Project Calendar for the tasks on which the 'Slack Water' resource is assigned. In principle I thought this should work, until I realised that the Resource Availability information cannot be entered for such short time periods, or for more than one period per day. For this approach to work, I would need to enter 4 short periods of availability per 24 hour cycle, which I now believe is not possible.

Can anyone suggest how either of these approaches could be successfully amended, or to explain an alternative solution within MS Project?

  • Is this really a project, with a deliverable or outcome of some kind, or is it an operational process of some kind? I ask because it doesn't sound like the kind of thing one would normally use MS-Project for. If it is a project I would imagine the timing granularity and constraints would make it an outlier on the kinds of projects the tool was designed to cover, which might explain your difficulties.
    – Marv Mills
    Aug 10, 2016 at 18:31
  • It is for offshore construction projects, in which the deliverable is the successful installation of subsea equipment. Once the equipment is installed, and the vessels and people de-mobilised, then the project is complete. I imagine that this differentiates the situation from an operational process, which might be more of an on-going chain of repeatable events? Given that MS Project allows task durations to be defined in anything greater than 1 minute intervals, it seems odd that wishing to define certain aspects of project timings at a granularity of 0.5 - 2 hours is seen as an outlier.
    – James C
    Aug 11, 2016 at 13:22
  • If there really is no way of making this work in MS Project it will be a real shame, because we have long used the software to plan projects, but now wish to start using it to also track the offshore work once they go live. The desire to define 'slack water periods' as a resource, and then to assign that resource to the slack-water-dependent-task, seems like the obvious way to resolve it. The problem seems to be that the bespoke 'working times' and 'non-working times' cannot be defined in anything other than an integer of days. Is there a workaround, or do I need different software?
    – James C
    Aug 11, 2016 at 13:35
  • You misunderstood slightly- I was not suggesting the functionality for granular resource timings is an outlier, but that this type of project would be on the fringes. I suppose there is not much difference philosophically. It is certainly the first time I have ever come across such a need, but then I work in a different industry. I cannot comment further on the tool suitability as I, unfortunately, am between contracts with no access to MS-Project at the moment!
    – Marv Mills
    Aug 12, 2016 at 13:26

1 Answer 1


James, I would create and apply a specific Task Calendar for these activities.

  1. On the Project Ribbon, click "Change Working Time", then "Create New Calendar."
  2. Give it a name like "Slack Tide," and make it as a copy of the default 24 hour calendar.
  3. Now, still in "Change Working Time," select your new Slack Tide calendar and create an exception for each single day that you need to enter the slack tide periods. That is, give the first exception line a name like "20160815 Slack Tides," and assign the date (same date start and finish). Then click "Details" and assign up to 5 "Working times:" intervals for that date. (5 is the max with this method.) Note that the default is to set nonworking times, so just change the radio button.
  4. After your work time exceptions are all created, just assign your new calendar as the "Task Calendar" for the specific tasks affected. The work will be scheduled accordingly.
  5. If your entire project is scheduled this way, then you could apply your new "Slack Tide" calendar as the background "Working Times" for the Gantt Chart. Then the basis for the working durations is clear.

Good luck, tom

(Edit: You could also apply your new calendar to a resource and achieve the same effect, though I see that as an unneeded step. As described, the timing restrictions seem more a function of the task than the resource.)

  • Excellent, I've tried it on a trial project file and it seemed to work fine - thank you Tom. It should work whenever there are five or fewer tidal cycles per day, which is almost everywhere (only a few notable exceptions).
    – James C
    Aug 22, 2016 at 7:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.