Sure. Just read the clock with an idle handler, which runs continuously when
you are not actually running some other handler. This, I assume is the case
most of the time.
So, if you had a field named "timeData" with a list of times and a handler
associated with those times, like:
12:00 AM doThis
12:30 PM doThat
Then you could (untested, just for the idea...)
on idle
get fld "timeData
repeat with y = 1 to the number of lines of it
if the short time = word 1 of line y of it then
wait 61seconds
do last word of line y of it
end if
end repeat
end idle
Believe me, there are about 53 ways to do the same thing, and 9 ways to shorten
even this script.
You may want to change the time format, depending on how accurate you need to
be. Note that using the short time gives a one minute window where the handler
might be invoked. That's why I waited a whole minute before executing, so that
only one doWhatEver would be executed at that time. However short your handler
is, it would be 12:01 the next time the idle handler checked.
Keep asking if you need more...
>> Stay informed about: Automatic timing