This article demonstrates automatically refreshing dashboards using apex scheduled job that you can plan to run at specific times.
It uses a custom setting to store the dashboard Ids then a scheduled job to get all dashboard Ids from the custom setting and refresh the dashboard at specific time or multiple times a day.