Runs a program on a schedule — every Tuesday and Thursday at 06:00, say. A program can prepare the system first, then carry out its main action, and hold other modes off while it runs.
Calendar is in field testing. It is available on field-test firmware and is not yet included in release firmware. If Calendar is not offered when you add a control mode, the controller is running a release build.

While a program runs, its tile shows the step, the time left in it, and the output.
| Part | What it does | Limit |
|---|---|---|
| Schedule | When the program starts | — |
| Before steps | Preparation that runs first, in order | Up to 3 |
| Action | The main thing the program does, for a set time | 1 |
| Lockouts | Modes or outputs held off while the program runs | Up to 3 |
| Interlocks | Conditions that stop the program running | Up to 8 |
Example — ORP boost. Tuesdays and Thursdays at 06:00: open the bleed valve until conductivity falls below 1000 µS/cm or 30 minutes pass, whichever is first; feed acid; then hold ORP at 600 mV on the oxidizer pump for an hour. The regular bleed and inhibitor modes are locked out for the whole program, and the bleed stays locked for an hour afterwards.
| Repeats | Choose |
|---|---|
| Daily | Up to four start times a day |
| Weekly | Which days of the week, and a start time |
| Monthly | A day of the month (or the last day), or a pattern such as the first Monday or the last weekday — and a start time |
Monthly patterns can target a named day, any day, a weekday (Monday to Friday), or a weekend day, with first to fourth or last.
Times are the controller’s local time. A schedule starts when it is saved and repeats indefinitely.
Each step drives an output, or waits, until it is done — after a set time, a sensor reading, or whichever of the two comes first.
| Type | Does | Typically done when |
|---|---|---|
| Pre-bleed | Opens the bleed | Conductivity falls below a value, or a time passes |
| Dispersant | Feeds a bio-dispersant | A time passes |
| Acid feed | Feeds acid | pH reaches a value, or a time passes |
| Delay | Waits, driving nothing | A time passes |
| Step | Runs any output | A time, a reading, or both |
A step can also have a start delay: it waits that long before driving its output — for example, to let a dispersant circulate before feeding.
| Action | Does |
|---|---|
| Timed output | Runs an output for the set time. No sensor. |
| Modify Mode | Runs an existing Setpoint Control mode at a different setpoint for the set time, then returns it to normal. Offered only when such a mode exists. |
| + Setpoint Ctrl | Runs a temporary setpoint loop for the set time, with its own sensor, output, target, and differential. Nothing is left running afterwards. |
Modify Mode reuses everything about the existing mode — its sensor, output, and sampling — and only changes its target. Use it to push ORP higher for an hour without building a second loop.
A lockout names a control mode or an output that must stay off while the program runs. A Trailing time extends the hold after the program ends — keeping a bleed shut for an hour after a biocide feed, so the chemical is not blown down before it has done its job.
Timer and volume modes can also be told to pause during any calendar program, using a calendar-event interlock on those modes.
A program names other modes (its action, its lockouts) and devices (its outputs and sensors). The controller keeps those references straight (upcoming firmware):
| You | The program |
|---|---|
| Rename a mode it uses | Follows the new name |
| Delete a mode it runs | Is blocked — Blocked: no mode to run — until you choose a new one. The delete confirmation counts the programs that need a new target. |
| Delete a mode a lockout holds | The lockout is removed if it held nothing else |
| Remove a device it uses | The slot is cleared and the program blocked until you choose a new device. A lockout that held only that device is removed. The removal dialog counts both. |
Each change raises Config Changed (531). A device’s Used by list shows its calendar uses — Calendar output, Calendar sensor, Calendar lockout — beside its control modes.
A program driving an output that an interlock blocks puts the output in its configured safe state.
A held event runs off schedule. An event blocked at 06:00 because a flow switch shows no flow runs when flow returns — perhaps hours later. That is deliberate: the treatment still needs delivering.