code: def schedule_hourly():
      
  
      if not config.get('ENABLE_SCHEDULED_EMAIL_REPORTS'):
          logging.info('Scheduled email reports not enabled in config')
          return
  
      resolution = config.get('EMAIL_REPORTS_CRON_RESOLUTION', 0) * 60
  
      # Get the top of the hour
      start_at = datetime.now(tzlocal()).replace(microsecond=0, second=0, minute=0)
      stop_at = start_at + timedelta(seconds=3600)
      schedule_window(ScheduleType.dashboard.value, start_at, stop_at, resolution)
      schedule_window(ScheduleType.slice.value, start_at, stop_at, resolution)
docs: Celery beat job meant to be invoked hourly