I am creating an e-learning website that allows people to buy Education Courses for other people (college friends etc...). Receivers of these Courses have to sign into the website to complete one tutorial every day for the duration of the course... they cannot complete more than one tutorial each day. If receivers do not complete a tutorial each day, then they immediately fail the course, however the buyer can assign a number of lifelines to the user so they can miss a number of days during the duration of the course.

Receivers will need to choose their timezone so that the site will know the start and end of each specific users day.

Help Required
I need some way of automating the courses and tutorials, to check if tutorials have been completed the previous day and to set up tutorials for the current day... so i have decided that the best way (IMO) is to create a cron script that will run at the very start of each users day.

Considering each user will be from a different timezone, the cron will need to run every hour, on the hour (24 times a day at ##:00:01) however each time it runs, it will only need to query the courses who's day starts on the current hour that the script is running (current server hour)

So considering the cron will be running at the very start of each users day, it can check the status of yesterdays tutorial and prepare the tutorial for the current day...

I have tried to illustrate this in the image below... do you think this will work effectively... thanks in advance for your help...