/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:
Code:
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.


Spelling mistakes, grammatical errors, and stupid comments are intentional.