A script I use for this occasionally:
#!/usr/bin/env ruby
done = Time.now + ARGV[0].to_i
while(true) do
sleep(10)
`say "Time's up!"` if Time.now > done
end
Or the alarm clock version: #!/usr/bin/env ruby
require 'time'
done = Time.parse(ARGV[0])
while(true) do
sleep(10)
`say "Time's up!"` if Time.now > done
end