What is a schedule?
A schedule is a cron-based trigger attached to a context. When it fires, Matcher launches a reconciliation run for that context using its active rules and sources.
| Field | Type | Description |
|---|---|---|
id | UUID | Unique identifier for the schedule |
contextId | UUID | Context this schedule belongs to |
cronExpression | String | Cron expression defining the frequency (e.g. 0 0 * * * for daily at midnight) |
enabled | Boolean | Whether the schedule is active |
lastRunAt | Timestamp | Last successful run time (RFC 3339) |
nextRunAt | Timestamp | Next scheduled run time (RFC 3339) |
createdAt / updatedAt | Timestamp | Creation and last-update timestamps (RFC 3339) |
Schedule lifecycle
Schedules support a full CRUD lifecycle under
/v1/contexts/{contextId}/schedules.
| Action | Method & path |
|---|---|
| Create schedule | POST /v1/contexts/{contextId}/schedules |
| List schedules | GET /v1/contexts/{contextId}/schedules |
| Retrieve schedule | GET /v1/contexts/{contextId}/schedules/{scheduleId} |
| Update schedule | PATCH /v1/contexts/{contextId}/schedules/{scheduleId} |
| Delete schedule | DELETE /v1/contexts/{contextId}/schedules/{scheduleId} |
Creating a schedule
Provide a
cronExpression; enabled defaults to active when omitted.
cURL
Cron expression defining the run frequency (1–100 chars)
Whether the schedule is active immediately
id, nextRunAt, and timestamps. Listing schedules (GET) returns every schedule for the context, enabled and disabled alike.
Pausing vs. deleting a schedule
When you need to stop a recurring reconciliation, you have two options — and the choice matters. Disable the schedule to pause automatic runs while keeping its configuration and history. Re-enabling later is a single call, with no need to recreate it. Update the cron expression, toggle
enabled, or both (omitted fields are left unchanged):
cURL
DELETE .../schedules/{scheduleId}) only when the cadence is gone for good — deletion is permanent. To simply take a break, disable instead.
Best practices
Align cadence with source availability
Align cadence with source availability
Schedule runs to fire after all sources for the context have delivered their data for the period. Running before ingestion completes produces avoidable exceptions.
Prefer disabling over deleting
Prefer disabling over deleting
When pausing a reconciliation cadence, disable the schedule so history and configuration are preserved and re-enabling is a single call.
Use explicit cron expressions
Use explicit cron expressions
Keep cron expressions readable and documented (e.g.
0 0 * * * = daily at 00:00). Verify the timezone assumptions for your deployment before relying on a schedule for SLA-sensitive runs.Next steps
Contexts and Sources
Configure the contexts and sources a schedule reconciles.
Generating Reports
Review the results produced by scheduled runs.

