First: is the requirement to turn off wifi or to prevent traffic flowing? If it’s the latter, easiest for daytime and lunch time is to create a firewall rule using the time attribute. Would reduce the issue to the holidays.
If I were to script this, I would have everything in a single script to prevent clashes in the script choreography or out of sync versions between schedules, assume the default is ‘wifi off’, create a function to calculate day of the week from today’s date, variables for the wifi on windows on regular weekdays and have the script run every hour (or whatever is the lowest resolution you need from your schedule). Finally add an array with the holiday dates which just skips turning on the wifi on weekdays using an if clause in your main function. Only maintenance would be an annual editing of the holiday array to update the non-regular holidays.
Option B would be to use a build factory on your local machine (e.g. linux bash script or piece of Python code) which will generate a schedule for you in the correct syntax into an .rsc file, which you then import from command line. Would save you from having to run the script every hour or so at the expense of having a very long list. The annual cleanup or change of schedule may be bothersome if you’re having additional schedules. Could fix that by including tags in the comments attribute and create a second additional script which will auto cleanup all schedule entries with those tags after which you can import a revised schedule.
Whatever you do, I would NOT recommend adding multiple schedule lines and try to have them work together consistently. Nightmare to maintain, prone to bugs.
While the reasons behind your requirement are beyond me and I don’t think anyone on this forum is going to script it for you (as with any script help will offered), I’d look into an IFTTT app on your phone with geofencing and the API to tackle this. Much more dynamic if you have a day off, decide to drink all night with friends, are sick etc as I’m sure the static nature will drive you into insanity along the line.
What you have now is the easiest solution. Scheduler can only run at specific times anyway. Other than that, IFTTT maybe, but I don’t know what you would trigger, IFTTT does not send SMS as far as I know.
Why would you need to turn off WiFi? It does not use power when inactive and it does not transmit either. Telecom towers would be of more concern if this is your reason.
You use the GPS on your phone to detect where you are and the data connection to trigger your router to turn on you WiFi as soon as you’re (near) home, e.g. through running a curl script which talks to the MT API. This is quite a common pattern in home automation for home presence functionality, for instance to automate lighting and what not. Advantage is that it’s more dynamic if you deviate from your own schedule.
Obviously this needs some consideration to implement in a secure manner, i.e. without leaving your API exposed to the entire internet. VPN could help here. Alternatively use a reverse proxy or an MQTT broker with OwnTracks on your phone to which you subscribe and event handler (MQTT launcher or something more substantial such as Home Assistant) and further abstract your logic.
All depends how far you want to go. Still don’t understand the requirement though.
It’s not quite what i wanna - it’s work around solutions … then i need to do this on all wi-fi devices and even more buy some android phone cause i don’t have it
i will stick to my temporary schedule solutions (t-solutions last very long, he he)
Of course when you want a solution like the graphic one shown above you can write a script that is scheduled
every hour and examines an array variable you put into that script (7x24 characters for every hour in the week)
and enables/disables the WiFi according to the element of the array corresponding to current day and time(hour).
This is certainly possible in the scripting language of RouterOS, but when it is your first scripting project
on RouterOS it will be a tough one to start with… and even more so when you have no general programming
experience in other comparable languages (PHP, Perl, Python, etc).
Of course, when you manage to get it working, the more satisfying it will be.