To complement the “Run Every” option, I recommend you allow the user to set Multiple Start Times for each program. Multiple start times allows the user to run the program several times each day at times of his/her choosing. I recommend you allow at least 6 start times per program, per day. For example, the user could run the program early in the morning and then twice during the hot afternoon at specific times, but not at equal intervals. This is common on other/traditional controllers and much more flexible than the interval approach. And if you allow both, there is no trade-off.
Have you considered this feature?