Scheduled tasks the agent runs on a cron schedule. Use when a user asks for something recurring ("every morning", "daily", "weekly"), when creating or updating jobs, or when debugging the job scheduler.
69
86%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Recurring jobs are scheduled tasks the agent executes automatically on a cron schedule. Jobs live as resource files under jobs/ with YAML frontmatter for scheduling metadata.
manage-jobs tool (action: "create") to write a job file at jobs/<name>.mdrunAgentLoopJobs can use connected remote MCPs with the same server-side OAuth lifecycle as
interactive chat. When creating a job that needs an MCP, bind the exact
advertised mcp__<server>__<tool> names through mcpTools. The scheduler
resolves only that allowlist under the job's persisted user/org request
context; it never stores or exposes OAuth tokens, URLs, or arbitrary proxy
targets. A revoked connector or missing tool fails the run clearly instead of
silently widening access.
Use an app-owned bounded import/upsert action for writes. Keep provider-specific
response mapping, provenance, deduplication, and write policy in the app rather
than in core. For example, a job can read meeting notes from any connected MCP
and pass normalized action items to an app's idempotent import action.
| Tool | Action | Purpose |
|---|---|---|
manage-jobs | create | Create a recurring job (name, cron schedule, instructions) |
manage-jobs | list | List all jobs and their status |
manage-jobs | update | Update schedule, instructions, or toggle enabled |
Users can see and manage jobs without the agent on the Agent page's Jobs tab
(/agent#jobs, AgentJobsTab in packages/core/src/client/agent-page/):
recurring jobs (personal and organization scope) with pause/resume/delete and
run status, plus automations (personal-only today). Backed by the scoped
list/manage actions in packages/core/src/jobs/actions/ — direct users there
instead of describing job files when they just want to view or toggle jobs.
| File | Purpose |
|---|---|
packages/core/src/jobs/cron.ts | Cron parsing (nextOccurrence, isValidCron, describeCron) |
packages/core/src/jobs/scheduler.ts | Job execution engine (processRecurringJobs) |
packages/core/src/jobs/tools.ts | Agent tool (manage-jobs with create/list/update actions) |
actions — How tools and actions workdelegate-to-agent — How jobs invoke the agent loopc1ee18b
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.