on $*:TEXT:/^!event ([^ ]+) (.+)$/Si:#events:{ if ($nick($chan,$nick,ho)) { var %time = $regml(1), %event = $regml(2) if (!$regex(%time,/^([0-9]{1,2}):([0-9]{2})$/S)) .notice $nick Invalid time format - must be : elseif ($gettok(%time,1,58) !isnum 0-23) || ($gettok(%time,2,58) !isnum 0-59) .notice $nick Invalid time. else { set %event.name %event set %event.time %time .timer 1 $calc(($ctime($asctime(mmmm d yyyy) %time) - 12600) - $ctime) start.countdown .notice $nick Countdown will begin in $+($duration($calc(($ctime($asctime(mmmm d yyyy) %time) - 12600) - $ctime)),.) } } } alias -l start.countdown { .timerdisplay 5 300 display.event msg #events The event $qt(%event.name) will start in 30 minutes. } alias -l display.event { msg #events The event $qt(%event.name) will start in $calc(($timer(display).reps + 1) * 5) minutes. if ($timer(display).reps == 0) .timer5mins 4 60 last5mins } alias -l last5mins { msg #events The event $qt(%event.name) will start in $calc($timer(5mins).reps) $iif($timer(5mins).reps == 0,minute.,minutes.) if ($timer(5mins).reps == 0) .timer 1 60 event.start } alias -l event.start { The event $qt(%event.name) is now starting! unset %event.???? }