> ## Documentation Index
> Fetch the complete documentation index at: https://docs.clipping.cc/llms.txt
> Use this file to discover all available pages before exploring further.

# Agendar execuções recorrentes

> Processe conteúdo novo automaticamente numa cadência.

Um **schedule** roda um dos workflows de um reporter numa cadência sobre um
conjunto de coleções. Vídeos novos nessas coleções são sincronizados e
processados automaticamente — sem disparo manual.

## 1. Crie o schedule

```bash theme={null}
curl -X POST https://api.clipping.cc/v1/reporters/rep_123/schedules \
  -H "Authorization: Bearer ck_live_…" -H "Content-Type: application/json" \
  -d '{
        "name": "Digest diário de IA",
        "workflow_id": "wf_123",
        "interval_hours": 24,
        "collection_ids": ["col_123"],
        "enabled": true,
        "max_videos_per_channel": 5,
        "max_age_hours": 48
      }'
```

| Campo                    | Significado                                            |
| ------------------------ | ------------------------------------------------------ |
| `workflow_id`            | Qual workflow rodar (obrigatório).                     |
| `interval_hours`         | De quanto em quanto tempo o schedule fica "due".       |
| `collection_ids`         | Coleções cujos canais são sincronizados + processados. |
| `max_videos_per_channel` | Teto por canal por rodada.                             |
| `max_age_hours`          | Ignora vídeos mais velhos que isso.                    |
| `enabled`                | Liga/desliga sem deletar.                              |

## 2. Rode agora (opcional)

Não quer esperar a cadência? Dispare na hora — é [assíncrono](/pt/async-operations):

```bash theme={null}
curl -X POST https://api.clipping.cc/v1/reporters/rep_123/schedules/sch_123/run \
  -H "Authorization: Bearer ck_live_…"
```

```json theme={null}
{ "status": "dispatched", "schedule_id": "sch_123" }
```

<Note>
  Só uma rodada por schedule executa por vez — disparar uma segunda enquanto uma
  roda é no-op (não processa em dobro).
</Note>

## 3. Reveja as rodadas

```bash theme={null}
# rodadas recentes do reporter
curl "https://api.clipping.cc/v1/reporters/rep_123/schedule/runs?limit=20" \
  -H "Authorization: Bearer ck_live_…"

# uma rodada, com eventos por item enriquecidos
curl "https://api.clipping.cc/v1/reporters/rep_123/schedule/runs/42" \
  -H "Authorization: Bearer ck_live_…"
```

Cada rodada agendada também cria [executions](/pt/async-operations) que você lista
com `GET /v1/reporters/{id}/executions`.

## Gerenciar coleções de um schedule

Anexe ou desanexe coleções sem recriar o schedule:

```bash theme={null}
curl -X POST https://api.clipping.cc/v1/reporters/rep_123/schedules/sch_123/collections \
  -H "Authorization: Bearer ck_live_…" -H "Content-Type: application/json" \
  -d '{ "collection_id": "col_456" }'
```
