Well, if I should work again on this, I would use this PHP package made by one friend: https://github.com/Samffy/recurrence
We’ve benchmark it, and with “simple RRULE”, it’s blazing fast and could be done on the fly.
Otherwise, with microservice, I would definitly consider using a Golang microservice to process this timeinterval do retrieve result very fast. IMHO we can now only process results and won’t need anymore to store them.