Well, since this is the Blynk forum, we do tend to refer to Blynk methods
You could look at the Time Input widget… Which does exactly that, takes your schedule settings from the App and sends them to the MCU device to do all the timing and action… And it (the MCU) will continue to process based on those once received settings until you either reboot it (and resync the last settings from server or eeprom, etc.) or you send a new set of timing schedules from the App.
Set up a few of them, one for each “zone”
And a bit more info on how it works…