GNU Emacs Lisp Reference Manual
You can set up a timer to call a function at a specified future time.
Absolute times may be specified in a wide variety of formats; The form
hour:min:sec timezone month/day/year, where all fields are numbers, works;
the format that current-time-string returns is also allowed.
To specify a relative time, use numbers followed by units. For example:
1 min
1 min 5 sec
1 min 2 sec 3 hour 4 day 5 week 6 fortnight 7 month 8 year
If time is an integer, that specifies a relative time measured in seconds.
The argument repeat specifies how often to repeat the call. If
repeat is nil, there are no repetitions; function is
called just once, at time. If repeat is an integer, it
specifies a repetition period measured in seconds. In any case, repeat
has no effect on when first call takes place---time specifies
that.
The function run-at-time returns a timer value that identifies
the particular scheduled future action. You can use this value to call
cancel-timer.
run-at-time. This cancels the effect of
that call to run-at-time; the arrival of the specified time will
not cause anything special to happen.