# SaveCaptureSchedule

> Save a capture cadence for a surface (platform axis) or a campaign; plan tier limits apply. Write access, capture toolset, MCP tool save_capture_schedule.

> **Warning:**
> This operation removes or replaces something. MCP clients see it with `destructiveHint` set, and an agent should tell you what it will change and wait for your yes.

**Access:** [Write](https://developer.missin.co.uk/get-started/authentication.md#access-levels)

## Variables

| Variable | Type | Required | Accepts | Description |
|---|---|---|---|---|
| `axis` | `String!` | yes |  | "platform" or "campaign". |
| `intervalMinutes` | `Int!` | yes | 32-bit integer | Requested spacing. Snapped up onto the 15-minute grid, then to the plan's floor. |
| `maxCaptures` | `Int` | no | 32-bit integer | How many captures before the row completes; null runs until turned off. |
| `slotMinutes` | `Int!` | yes | 32-bit integer | Anchor offset within the interval, in minutes. |
| `subjectId` | `String!` | yes |  | Surface key on the platform axis; the campaign's id on the campaign axis. |
| `until` | `String` | no |  | An ISO instant the run stops at, whichever of it and the count comes first. Null runs on the count alone. |
| `updatedBy` | `String` | no |  |  |

## Call it

```bash curl
curl https://api.missin.co.uk/graphql/v1 \
  -H "Authorization: Bearer $MISSIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"operationName":"SaveCaptureSchedule","variables":{"axis":"…","intervalMinutes":20,"slotMinutes":20,"subjectId":"…"},"extensions":{"persistedQuery":{"version":1,"sha256Hash":"36538b16af4037239b5ff099e580c02ecb69b05edf2247b518a68f250fc3fdf0"}}}'
```

## Document

```graphql
mutation SaveCaptureSchedule($axis: String!, $intervalMinutes: Int!, $maxCaptures: Int, $slotMinutes: Int!, $subjectId: String!, $until: String, $updatedBy: String) { __typename saveCaptureSchedule( input: {axis: $axis, subjectId: $subjectId, intervalMinutes: $intervalMinutes, slotMinutes: $slotMinutes, maxCaptures: $maxCaptures, until: $until, updatedBy: $updatedBy} ) { __typename intervalMinutes maxCaptures until userErrors { __typename code field message } } }
```

Source: https://developer.missin.co.uk/reference/capture/save-capture-schedule
