if you only want to call the server once per day I would recommend you look at solutions outside of the context of RX - that is, still use an observable as the return type on the retrofit call but build in logic elsewhere to make sure you only make that call once a day. Alternatively, you could set up the okhttp caching logic to work such that the cache expires after 24 hours - however, it's worth noting that this will (likely?) fail if your process is terminated over the course of the day (which it almost certainly will be).