I don't have my code handy, but here's a basic description of mine (I'm on the wrong PC to get to the code right now)...
I have all the outputs showing for my 10 sprinkler zones showing in the outputs so I can turn on individual zones at will...
When I went to program the zones, at first I set it so that at 1:00 hour before sunrise, turn on zone 1 for 10 mins. Then another rule for When Zone 1 turns off, turn on Zone 2 for 10 mins. Then when Zone 2 turns off, turn on Zone 3 for 10 mins (etc, etc...) I
Problem was, that meant if I manually turned on Zone 2, the rest of the zones would follow whether I wanted them to or not... To get around that, I set up a Task to "Water Front Yard" - which would turn on an unused output (lets use 100 as an example)...
Whenever 1 hour before sunrise, active task "Water Front Yard".
Water Front Yard's code includes "Turn on output 100 for 1 hour. And - Turn on Zone 1 for 10 mins.
Next - Whenever Zone 1 (output 18 or something like that) turns off AND output 100 is on, turn on Zone 2 for 10 mins.
keep that going through each zone - then when Zone 5 turns off, it also turns off Output 100.
This lets me manually control zones as desired - and allows sequence to automatically occur when the task goes off.
one note - I picked either a non-optimal time or I'm not running my zones long enough - my grass is still the worst on the block... but that's not the Elk's fault - it's my own.