I would use a similar approach as the above, with a couple of minor changes.
1) Have your "i.Alarm_is_Set" variable use 1/-1 as its on/off values. (I use "i." to specify an integer variable). This makes it simple to issue a "$i.Alarm_is_Set *= -1" which will flip back and forth between the off and on state.
2) Using the above, you can now have your IR command just run that 1 line program and you have your ability to use the key to flip back and forth between the states. If you want to do more than that, such as the suggestion to have the lamp in your bedroom blink to confirm which state you are in, change the variable to be a state variable. Add a program (or programs) that trigger on the value change to perform the actions you want.
3) Using the variable also makes it easy to do things like start the coffee machine up 15 min before your alarm is set to go off, or turn on the instant hot-water appliance to be ready for your shower.