---
title: "Bulk Approve Schedules"
method: POST
path: "/warehouse/schedules/bulk-approve"
tags: ["WAREHOUSE_SCHEDULE"]
---

# Bulk Approve Schedules

`POST /warehouse/schedules/bulk-approve`

Approve pending schedules in a date range, reporting skipped conflicts.

Successor of /approve-recommendations: conflicted schedules (e.g. inside
an approved Blocked window) are skipped and returned with user-readable
conflict details instead of being silently approved.

## Headers

- `x-tenant` string, required

## Request body

- ApplyRecommendedEventsRequest
  - `warehouse_name` string, required
  - `instance_id` string, required
  - `start_time` string, date-time, required
  - `end_time` string, date-time, required

## Response `200`

Successful Response

- BulkApprovalResponse
  - `approved` AppSchemasWarehouseSchedulesScheduleResponse[], required
    - `schedule_id` integer, required
    - `warehouse_name` string, required
    - `configuration` WarehouseConfig, required
      - `warehouse_size` 'X-Small' | 'Small' | 'Medium' | 'Large' | 'X-Large' | '2X-Large' | '3X-Large' | '4X-Large' | '5X-Large' | '6X-Large'
      - `enable_query_acceleration` boolean, nullable
    - `start_time` string, date-time, required
    - `end_time` string, date-time, required
    - `schedule_type` 'recommendation' | 'manual' | 'block' | 'auto_resize' | 'backoff', required
    - `status` 'pending' | 'approved' | 'rejected', required
    - `reason` string, required
    - `created_by` integer, required
    - `created_at` string, date-time, required
    - `updated_by` integer, nullable
    - `updated_at` string, date-time, nullable
    - `recurrence_pattern` unknown
    - `series_id` integer, nullable
    - `resize_mode` 'dynamic' | 'scheduled'
  - `skipped` SkippedScheduleResponse[], required
    - `schedule_id` integer, required
    - `schedule_type` 'recommendation' | 'manual' | 'block' | 'auto_resize' | 'backoff', required
    - `start_time` string, date-time, required
    - `end_time` string, date-time, required
    - `conflicts` ScheduleConflictInfo[], required
      - `conflict_type` string, required
      - `conflicting_schedule_id` integer, nullable
      - `conflicting_schedule_type` string, nullable
      - `conflicting_start_time` string, date-time, nullable
      - `conflicting_end_time` string, date-time, nullable
      - `message` string, required

## Other responses

- `400` — Invalid request data
- `403` — Not authorized
- `404` — Schedule not found
- `422` — Validation Error

---

[API](https://skmtc.net/myaltimate/apis/fastapi.md) · [All operations](https://skmtc.net/myaltimate/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/myaltimate/fastapi/versions/50769cbf05d5/schema)
