I just used a flat text file with lines in the format of "DAY:HH:MM", so for example, "FRI:5:45" for Friday at 5:45 AM. The program ran as in infinite loop, sleeping 45 seconds at a time, then running through and comparing the times in the configuration file to the current time. If it found a match it would jump into playback mode.
In this mode, a file was selected (hardcoded) and the volume reduced to zero. It would also unlink the file ~/.alarm if it existed. The playback loop would then begin, incrementing the volume slowly until either ~/.alarm was created or the volume was at 100% for a full minute. The program would then reset the volumn to a normal level, stop play, and reenter the main loop.
I had an icon on my desktop that ran "touch ~/.alarm", so all that I had to do was turn on the monitor and click on it.