on *:text:.schedule*:#:{
if !$3 { .msg $nick Usage: .schedule [length] [start time] }
else {
inc %schedule
set $+(%,schedule.start,%schedule) $ctime($date $$3-)
if $($+(%,schedule.start,%schedule),2) < $ctime { inc $+(%,schedule.start,%schedule) 86400 }
set $+(%,schedule.end,%schedule) $calc($($+(%,schedule.start,%schedule),2) + $duration($2))
}
var %a = 1, %b = %schedule
while %a < %b {
if $($+(%,schedule.start,%schedule),2) isnum $+($($+(%,schedule.start,%a),2),-,$($+(%,schedule.end,%a),2)) {
.msg $nick Sorry but your requested schedule time conflicts with a previous schedule
unset $+(%,schedule.*,%schedule)
dec %schedule
halt
}
inc %a
}
}