After upgrading my Debian system to Buster, I was more than a little annoyed to discover that the alarm clock applet I used no longer works. I looked around for other GUI based alarm clocks for linux that would both compile (ha!) and were fully-featured enough for what I need: multiple alarms, being able to shut off SOME of them, and able to play music and/or run my daily briefing script.
I didn’t find squat. So, following my basic principles, I wrote a bash/cron based alarm clock script that has the configurability and functions I need.
Please be aware that it’s not pretty; I literally threw this together in an hour after work. But what it does is discover what time it’s being run at, and then uses a case statement in order to determine what actions to execute. Through recording PIDs, it’s also able to have two switches that will kill the music (but not the briefing) or to kill all the instances of mplayer that have been launched by the alarm clock.