Timeout callbacks can be registered to be called at a specific time, e.g., to do some checks or evaluations. The callback is only called, if the main program is in the system idle loop, e.g., waits for any kind of events. Else it is delayed until the program enters the idle loop again.