Я думаю, что может быть проще, если вы установите таймер каждую, скажем, минуту, и этот таймер может проверять системные часы, когда желаемое время меньше или равно системному времени, вы можете просто выполнить действия (вэтот пример с ошибкой не более 1 минуты)
Вы можете улучшить ее, сделав интервал таймера dinamyc, например, если вы проверите время и осталось еще полчаса, вы можете установить интервал на 15 минутВ следующий раз вы уменьшите его до 5 минут и т. д., пока вы не проверяете время раз в секунду, например.
HTH