replace the timer line with something like:
.timer $+($calc($asctime(HH) + $3),:00) 1 1 .msg $chan $2 on $iif($4,$4,$nick) has expired
That executes the timer at the time specified by taking the current hour ($asctime(HH) - 24hr format), adding the number of hours, and appending the :00. I think that's what you wanted.