Skip to content

Guide · Agent skill

How to use the Scheduling Routines agent skill (routines)

Updated · written with AI from the project's own documentation and checked against our catalogue data

The routines skill teaches an AI agent to set up recurring tasks that run on a timer, such as every morning at 08:00, without you being present. This guide explains what the skill does, how to install it, how to ask for routines in plain language, and what limits apply to unattended runs. By the end you will know how to test a routine once, read its output, and schedule it only after you confirm.

Scheduling Routinesgoogle/adk-recipes · Apache-2.0

Quick start

  1. 1Download and install the skill. Download the ZIP from this page and unzip it into ~/.claude/skills/ or a project's .claude/skills/ folder, or upload it under Settings → Capabilities → Skills in the Claude apps.
  2. 2Describe the recurring task. Ask the agent for a recurring unattended task and include every detail it needs, since the routine cannot see your chat or files.
  3. 3Declare only the secrets required. List the exact secret environment variable names the task needs, checking the 'Available secret env vars' line, and leave out anything else.
  4. 4Dry-run the task once. Have the agent run the test action with the same name and read the returned output, fixing the task or secrets until the run works.
  5. 5Confirm the schedule. When the create call returns awaiting_user_response, review the cron schedule and task, then confirm so the routine is scheduled.
  6. 6Check or cancel later. Use list to see scheduled routines and cancel with the routine's id, or type /routines and /routines remove <id>, when you no longer need one.

What the routines skill makes the agent do

A routine is a recurring task that runs unattended on a cron schedule. Each run happens in a fresh sandbox that is separate from your workspace, and it only receives the secret credentials you declare for it. Typical uses are a daily summary of some data, or a weekly job that updates dependencies and opens a pull request.

The skill is not a reminder tool. A routine cannot ask you questions mid-run, so a plain 'remind me at 9pm' request is the wrong fit.

How to install the routines skill

Download the ZIP file from this page. Unzip it into ~/.claude/skills/ to make it available to all your projects, or into a project's .claude/skills/ folder to limit it to that project.

If you use the Claude apps instead, open Settings, go to Capabilities, then Skills, and upload the ZIP there.

  • Personal install: unzip into ~/.claude/skills/
  • Project install: unzip into the project's .claude/skills/ folder
  • Claude apps: Settings → Capabilities → Skills, then upload the ZIP

How to trigger the skill with natural requests

You do not need special syntax. Describe a recurring task that should run without you, or ask to test a routine first. The skill's description covers recurring unattended tasks such as pulling data, opening a pull request, or posting a digest, and testing or dry-running a routine.

Include everything the task needs in the request. The routine has no memory of your chat and no access to your files, so the agent must write a self-contained task.

  • Example phrasing: 'Every morning at 8am, pull yesterday's figures from our API and post a short digest.'
  • Example phrasing: 'Weekly, update our dependencies and open a pull request. Dry-run it first.'

Test a routine before you schedule it

The skill tells the agent to always dry-run a routine before creating it. The test action runs the task once, right away, under the same isolation the scheduled version will use. It blocks until the run finishes and returns a result with success, status and output fields.

Read the output. If the task failed because a secret was missing, needed an approval, or made a wrong assumption, the agent should fix the task or the secrets list and test again. Give the test the same name you will use when creating the routine, because the scheduled routine reuses the sandbox that the test provisions. A test schedules nothing.

routine(action="test", name=..., task=..., secrets=[...])

Schedule, list and cancel routines

When the test looks right, the agent calls create with a name, a 5-field cron schedule, the task, and the secrets it needs. For example, the cron expression 0 8 * * * means every day at 08:00 UTC. The tool asks you to confirm first and returns status awaiting_user_response. The agent should not say the routine is scheduled until the result shows success: true with an id.

To see scheduled routines, use the list action. To remove one, use the cancel action with its id. You can also type /routines or /routines remove <id> directly.

  • Schedule uses 5-field cron syntax, evaluated in UTC in the example given
  • Creation waits for your confirmation
  • Check the 'Available secret env vars' line for the exact secret names
routine(action="create", name=..., schedule=..., task=..., secrets=[...])

Safety: sandboxes, secrets and what gets refused

Each routine runs in its own sandbox, so it cannot see your workspace, other projects, or secrets it did not declare. The secrets list is the boundary: declare only what the task needs. Every extra secret widens what an unattended run can reach.

Runs are headless, so shell commands run normally inside the sandbox, including git clone, pip install, builds, commit and push. Attempts to exfiltrate secrets and known-destructive commands are still refused. Any non-shell action that would need approval is automatically denied, so irreversible external steps such as sending messages should be drafted for you to confirm later. Outputs come back as artifacts in the routine's session and cannot be written into your workspace.

The skill runs scripts and uses the network, so review the task you are scheduling before you confirm it.

What people use it for

  • A daily digest that pulls data from an API and reports the results each morning
  • A weekly job that updates dependencies, runs the build, and opens a pull request for review
  • A scheduled check that gathers information from the network and writes a summary as an artifact
  • A dry run of any unattended task before you decide to let it repeat on a schedule

Frequently asked questions

How do I install the routines agent skill?

Download the ZIP from this page and unzip it into ~/.claude/skills/ for personal use, or into a project's .claude/skills/ folder for one project. In the Claude apps, you can instead upload the ZIP under Settings → Capabilities → Skills.

What do I need to run the routines skill?

You need an agent runtime that supports the routine tool with a sandbox environment. You also need any secret credentials your task uses, such as a GitHub token declared in the secrets list.

Is the routines skill free to use?

The skill is published under the Apache-2.0 licence, as listed on this page. Check the licence file in the repository for the full terms and whatever your agent runtime charges.

Can a routine send me a reminder at a set time?

No. Routines cannot ask the user questions mid-run and there is no reminder tool, so a simple one-off reminder is the wrong fit for this skill.

Why did my routine test fail or not schedule?

Read the output from the test action. Common causes named in the skill are a missing secret, an action that needed approval (non-shell approvals are auto-denied), or a wrong assumption in the task. Fix the task or secrets and test again, and do not treat the routine as scheduled until create returns success: true with an id.

Can a routine access my files or other secrets?

No, by design. Each routine runs in its own sandbox, cannot see your workspace, and only receives the secret variables listed in its secrets field.

How do I stop a scheduled routine?

Use routine(action="list") to find its id, then routine(action="cancel", id=...). You can also type /routines remove <id>.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

Use this skill if you want recurring, unattended tasks such as a weekly dependency update or a daily data digest, and you are comfortable dry-running them first and declaring only the secrets they need. Pick something else for one-off reminders, for tasks that need to ask you questions mid-run, or for irreversible actions like pushing to production or sending external messages without review.

Download the skill