Traditionally, process designers distinguish between two categories of task durations: contingent and non-contingent. The duration of contingent tasks can only be observed by the controlling agent, the process manager, but not controlled. The duration of non-contingent tasks, instead, is fully under the control of the controlling agent – from the start of the task, until it terminates. In many applications we found, nevertheless, a third category, which we call semi-contingent. A semi-contingent task duration is controllable by the agent, but only until the task starts. We characterize and formally define this additional category of duration. We propose a novel procedure based on constraint propagation to check the dynamic controllability of processes featuring contingent, non-contingent and semi-contingent durations. We formally prove that this procedure is sound and complete, and experimentally show its feasibility.