Code:
alias check.idle {
  var %nicks = $nick($chan,0)
  while (%nicks) {
    if ($nick($chan,%nicks).idle >= 1800) { 
     mode $chan +v $nick($chan,%nicks)
    }
    dec %nicks
  }
}


Untested, that should voice anyone with an idle greater than or equal to 30 minutes.