Scheduling code to run inside the JVM is a common task in my experience. The number of different implementations we had for this problem was on par with the number of services we had. Also, they were all built on top of Akka’s Scheduler which means they would not fit well in a pure program, require an actor system, are hard to test and the tests are painfully slow. Eliminating these problems was the main motivator for our new open source library. After the first ideas had been implemented and used in production, we have come across ZIO Schedule, which inspired a major rework. It also made us realize that this can not only be used for scheduling jobs, but also to schedule retries. This talk presents how the ideas of ZIO Schedule were implemented using the type classes from cats-effect, and how this library can be used.