The scheduler reads this config and simply keeps all days+hours that have a scheduled “1” in the memory. The “0” are not needed
Examples
Monday, 11:46 → there is a “1” for hour “11” in the config → rate limit on
Saturday, 20:53 → there is nothing in the memory config → rate limit off
GUI
have 1 checkbox for each day/hour plus some conditional css if the checkbox is clicked e.g. has green background.
The UI looks good, but I don’t think we’ll store 0’s and 1’s in the config, as the format is not self explanatory, and not easily understandable by humans, so I’d probably stick with an array of time ranges when it’s on.
which means that if checkbox is checked, the following element after it is colored.
It works without extra Javascript
So we only need to come up with a simple (human readable?) way to store which day/hour is scheduled and a helper script the builds above table (= e.g. loops through all days/hours)