I think I'd share my approach for simple parental controls. Since the API does not support this yet my approach is script based.
I have a named group (NoGameNoTube). I have specific devices assigned to that group (I use DHCP reservations so there is no volatility). I have several domains (wildcards, regex, or plain) prohibited or allowed and assigned to the named group. I do not block everything for that group so that the devices still think they are online.
From a script I enable or disable the domain list. A crontab entry calls the script with the respective option. The list can also be dis- or enabled via the web interface.
#!/bin/bash
# call this script with 'scriptname school' or 'scriptname playtime'
# warning: you may break your database
if [[ "$1" == "school" ]]; then
sudo sqlite3 /etc/pihole/gravity.db "update 'group' set 'enabled' = 1 where name = 'NoGameNoTube';"
/usr/local/bin/pihole restartdns reload-lists >/dev/null
fi
if [[ "$1" == "playtime" ]]; then
sudo sqlite3 /etc/pihole/gravity.db "update 'group' set 'enabled' = 0 where name = 'NoGameNoTube';"
/usr/local/bin/pihole restartdns reload-lists >/dev/null
fi