Schedule Endpoints
The schedule endpoints manage recurring query execution, including creation, updates, pause/resume, manual triggering, and execution history. Served by QueryScheduleController at /v1/schedules.
Endpoints
| Method | Endpoint | Description |
|---|---|---|
| POST | /v1/schedules | Create scheduled query |
| GET | /v1/schedules | List schedules (paginated) |
| GET | /v1/schedules/:scheduleId | Get schedule details |
| PUT | /v1/schedules/:scheduleId | Update schedule |
| DELETE | /v1/schedules/:scheduleId | Delete schedule |
| POST | /v1/schedules/:scheduleId/pause | Pause schedule |
| POST | /v1/schedules/:scheduleId/resume | Resume schedule |
| POST | /v1/schedules/:scheduleId/trigger | Trigger immediate execution |
| GET | /v1/schedules/:scheduleId/executions | Get execution history |
POST /v1/schedules
Creates a new scheduled query.
Headers: X-Tenant-ID, X-User-ID (required)
{
"name": "Daily Revenue Summary",
"description": "Aggregates daily revenue by region",
"sql": "SELECT region, SUM(amount) as revenue FROM orders WHERE date = CURRENT_DATE - INTERVAL '1' DAY GROUP BY region",
"scheduleType": "CRON",
"cronExpression": "0 6 * * *",
"timezone": "UTC",
"catalog": "delta",
"schema": "public",
"notifyOnFailure": true,
"maxRetries": 3
}Schedule Types
| Type | Description | Configuration |
|---|---|---|
CRON | Standard cron expression | cronExpression field |
INTERVAL | Fixed interval between runs | intervalMinutes field |
DAILY | Once per day at specified time | runAtTime field |
WEEKLY | Once per week on specified day | runAtDay and runAtTime fields |
Schedule States
| State | Description |
|---|---|
ACTIVE | Schedule is running on its configured interval |
PAUSED | Schedule is temporarily disabled |
DISABLED | Schedule has been auto-disabled (e.g., too many failures) |
Execution History
GET /v1/schedules/:scheduleId/executionsReturns execution statistics:
{
"scheduleId": "uuid",
"scheduleName": "Daily Revenue Summary",
"executionCount": 30,
"successCount": 28,
"failureCount": 2,
"consecutiveFailures": 0,
"lastExecutedAt": "2026-02-12T06:00:00Z",
"lastExecutionStatus": "COMPLETED",
"nextScheduledAt": "2026-02-13T06:00:00Z"
}Manual Trigger
POST /v1/schedules/:scheduleId/triggerImmediately executes the scheduled query regardless of its schedule. Does not affect the next scheduled execution time.