Here is a clock Timer based approach for an exercise routine,
using deadline variables for each next event ...
Clock1.Timer controls everything, by checking for expired deadlines and rescheduling them after initiating their events.
For a lot of similar components, you can use lists of the component blocks with generic (Any component) blocks to reduce your block count.






