/timer does have a [time] parameter which allows you set a specific time for the timer to start running. So for instance
/timer 15:59 1 30 echo -a moo would mean that mIRC waited until 15:59 and then started the timer, so after another 30 seconds it echoed 'moo' to the active window. Using this and some $asctime calculations you can make a timer to go off every hour within a second of the specified time. I
think you wanted it to go off every hour at xx:59:30, so that's what I did here:
alias hourly {
if ($1 == off) {
timerhourly off
halt
}
var %hours = $asctime(HH)
timerhourly $+($iif($regex($asctime(nn:ss),/^59:[2-5][0-9]$/),$iif(%hours == 23,00,$calc(%hours + 1)),%hours),:59) 1 30 hourly
if ($1 != on) {
####commands here####
}
}
Just use
/hourly on to start the timer and
/hourly off to stop it. I haven't fully tested the alias but it should work fine. There might also be an easier way to do this, I haven't even looked at most of /timer's switches.