Set the cron job to run every hour in UTC, and your application logic checks if its time to open in the configured time zone.
If youre just gonna run it every hour, you might as well while(1){ check time; do stuff; sleep 1 hour;} now there's one less dependency?
For instance, Nepal uses UTC+05:45, and the time shifted by 15 minutes in 1986 (from UTC+05:30): https://www.timeanddate.com/time/zone/nepal/kathmandu
That said, I think running every 15 minutes handles all currently-observed time zones.