Sometimes, we need to have an IObservable subscription run at a specific time. Imagine having to synchronize events across servers in different geographical areas and time zones. You might also need to read data from a queue while preserving the order in which the events occur. Another example would be to perform some kind of I/O task that could take some time to complete. Schedulers come in very handy in these situations.