wp_schedule_event daily at specific time

The internal WordPress cron is dependent upon site visitors to fire, unlike linux or unix cron which is fired at specific times. Generally speaking, if you have regular and frequent visitors to your website WordPress cron will run your defined task. But if you don’t have that traffic WordPress doesn’t fire the events.

If your hosting environment is linux/unix based and you have appropriate access you can call the WordPress cron consistently and at specified times via the system or user cron tasks.

A Google search on “using cron to run wordpress cron” will return a number of FAQs and step by step instructions for setting this up. Your own hosting provider may even have complete instructions.

A fairly good example can be found at HostGater.