Create a schedule
create_scheduleSet up a recurring render: a cron expression, a template, and where each document goes. Use this instead of render_pdf when the user wants a document produced repeatedly on a calendar — a weekly report, a monthly invoice run — so nothing has to stay running. Delivery channel is 'email' or 'whatsapp' (recipients required) or 'download' (stored only; retrieve later with list_renders). The cron is evaluated in the given IANA timezone, and how often it may fire is plan-gated: at least 60 minutes apart on Free, 15 on Starter, 5 on Pro and above — a tighter expression is rejected with a validation error naming the limit. Every firing spends one render from the monthly quota, so a frequent schedule can exhaust a small plan on its own. Returns the created schedule including its id and next_run_at.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | Template data, used verbatim on every firing. Defaults to {}. | |
| name | Yes | Human label for this schedule, shown in the dashboard. | |
| channel | Yes | Where each rendered document goes. 'download' just stores it (find it later with list_renders); 'email' and 'whatsapp' require recipients. | |
| enabled | No | Defaults to true. Create it disabled to set it up now and start it later. | |
| options | No | Render options passed straight through to the render, in the nested /v1/render shape, e.g. { format: 'letter', margin: { top: '20mm' } }. | |
| schedule | Yes | Standard 5-field cron expression, e.g. '0 9 * * 1' for 09:00 every Monday. Rejected with a validation error if it fires more often than the plan's minimum interval. | |
| template | Yes | Template slug or UUID rendered on every firing. Same values render_pdf accepts. | |
| timezone | No | IANA timezone the cron expression is evaluated in, e.g. 'Asia/Dubai'. Defaults to UTC. | |
| recipients | No | Email addresses or phone numbers, matching the channel. Required and non-empty for email and whatsapp; ignored for download. |