I evolved this service over several months and since June it's in a state where I can show it to the public.
The service is built on Google App Engine - an interesting experience on how the restrictions of the platform make you focus on the scalability of your app.
Edit: wanted to add details as this might be interesting to HN.
The challenge was to be able to get the emails and the associated timezones AND know what the time it is right now in that particular time zone. Then, I would have to email those records that would match the time, all this in 30 seconds.
I ended up using MapReduce for this. Still have a haunting feeling there's an easier way for it...
So every hour I create a task that runs MapReduce that then cycles through the emails and checks the timezones and times in them.
My understanding is that Mapreduce creates sub tasks that basically make it possible to run all emails in 30 second chunks. We will see how this works as the number of emails grows.
I've noticed that occasionally all of my Task API is consumed by the Mapreduce library trying to start tasks.
The daily exercise is set by another task, once a day, and is then passed along into MapReduce.
Feedback welcome.
Edit 2: removed the <a> around the link.