Skip to main content

Schedule

Legacy v1 time-based trigger or recurring cadence. In the SmoothTiger/SmoothRiver v2 direction, processkit no longer presents Schedule as a first-class shipped entity surface. Use Binding(type=time-window) with conditions.recurrence_rule for the durable contract; an external runner still performs execution.

ID prefixSCHED (legacy v1)
State machinenone
MCP servernone
Skillschedule-management (legacy authoring guidance)

v2 replacement

Use the binding-management server's create_time_window path for time windows. pk-doctor's v2_contracts check requires Binding(type=time-window) records to include conditions.recurrence_rule.

Fields

Required

FieldTypeDescription
namestringKebab-case identifier
descriptionstringHuman-readable summary
cadenceenumdaily · weekly · monthly · quarterly · adhoc · custom

Optional

FieldTypeDescription
cronstringStandard cron expression for machine scheduling
timezonestringIANA timezone name (e.g. Europe/Berlin)
triggersobject[]What this schedule fires (processes, reminders, events)
activebooleanfalse = suspended (default: true)
last_rundatetimeAdvisory — set by whoever runs the schedule
next_rundatetimeAdvisory — set by runner

Example

---
apiVersion: processkit.projectious.work/v1
kind: Schedule
metadata:
id: SCHED-20260411_0915-CalmGlen-weekly-standup
created: '2026-04-11T09:15:00Z'
spec:
name: weekly-standup
description: Fire the standup-context skill every Monday morning.
cadence: weekly
cron: "0 9 * * 1"
timezone: Europe/London
triggers:
- kind: skill
skill: standup-context
active: true
---

Notes

  • Legacy v1 Schedule records are documentation for migration only. In v2, an external runner reads Binding(type=time-window) records and fires the target at the right time.
  • last_run and next_run are advisory fields set by the runner — not enforced by processkit on legacy records.
  • Scope a recurring cadence by binding the governed WorkItem, Artifact, or Scope through type: time-window; do not create new schedule-scope Bindings.