# Schedule a draft campaign

**POST** `/campaigns/{campaignId}/schedule`

Set sendAt to now to dispatch immediately, or supply an RFC 3339 timestamp. If-Match is optional.

Authentication: bearerAuth
Required scopes: `campaign:schedule`
Allowed roles: `owner`, `admin`
Authorization: Schedule a draft campaign.

## Request body

- `application/json`: `ScheduleCampaignRequest` required.

## Responses

- `200`: Campaign scheduled
- `412`: The supplied ETag is stale.
- `default`: Error
