The above (Jaroslav Kucera answer) will not work as intended because on the second invocation the commands will spawn new screen sessions with same names as the previous ones.
If you want to have always the same screen sessions for the same scripts then I would do it a bit more trickier.
I would run those sessions at @reboot cron with scripts that make a constant loop like
#!/bin/bash
while true; do
if [ -f /tmp/script1_enabled ]; then
script1_function_or_command
rm /tmp/script1_enabled
fi
sleep 60;
done
Which would run each minute checking for the presence of named file in /tmp - if it exists then run the command, otherwise wait another minute.
The second part would be cron commands that create those files each day - working like a boolean flag to initiate the script invocation.
After the script is done the file would be removed. That way you can keep same sessions for your scripts, and still run it in intervals of your liking.
If the 60 second delay in the loop is too much for you (there is no way to precisely run the script at given time with this method as the sleep will be executed in unpredictable time), then you can set up inotifywait watches and execute scripts as soon as the file is created.
the cron would look like :
@reboot screen -dmS script1 /usr/local/bin/script1_watcher
@reboot screen -dmS script2 /usr/local/bin/script2_watcher
0 0 * * * touch /tmp/script1_enabled
15 */4 * * * touch /tmp/script2_enabled