Set or change how often a live table refreshes
reschedule_tableSets a live table's refresh schedule, or replaces the one it has, without starting a run or fetching anything. A table that went live on its first run has NO schedule yet (get_table shows schedule null, the chat shows "No refresh schedule"): this is the tool that gives it one. When the table's recipe cannot refresh yet, the schedule is HELD rather than applied and the answer carries schedule null: report that, and do not call again. It is also the way to change a cadence without the demote and promote that would reset the table and buy a catch-up refresh. State exactly one of cron (five fields, evaluated in UTC) or interval_seconds (the interval counts from now). rationale records why, kept verbatim beside the schedule. lock: true freezes the schedule so the platform stops adjusting it to the source; leave it out to let it keep learning from there. Pass expected_version from get_table so a table that moved in between is refused rather than overwritten. Example: {"table_id": "…", "cron": "15 6 * * *", "rationale": "The agency publishes the previous day by 06:00 UTC."}. Returns {table_id, dataset_id, promotion_status, schedule, version, dashboard_url}. Only a table that is not live is refused (demoted or never built); a live table with no schedule is exactly what this sets. A schedule that fires more often than the table allows is refused with the floor named. A recorded schedule refreshes a table only where its recipe can refresh — read get_table before saying it does.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cron | No | ||
| lock | No | ||
| table_id | Yes | ||
| timezone | No | ||
| rationale | No | ||
| expected_version | No | ||
| interval_seconds | No |