Это может быть проблемой:
calendar.set(Calendar.HOUR, 9);
Это установка «часа утра или дня» - делайте, если вы уже днем, он установит его на 9 вечера.Я думаю, вы хотите:
calendar.set(Calendar.HOUR_OF_DAY, 9);
Возможно, это не объясняет вашу проблему, но, безусловно, одну вещь, которую нужно исправить.Обратите внимание, что это будет в тот же день - поэтому, если вы сделаете это после 9 утра, оно не сработает.
(Вам, вероятно, следует также установить поле секунд на 0).