Scheduled tasks, reminders and heartbeats

Get your agent working while you're away: one-off reminders, repeating jobs, heartbeats and time zones.

In this tutorial

Your agent can work while you're away: remind you at a set time, run a job every morning, or check on things a few times a day. You set all of this up by asking your agent in plain words. There's no scheduling screen to fill in. The trick is knowing which kind of schedule to ask for, and always giving a time zone.

Two kinds of schedule

Scheduled jobs (exact times)
  • "Remind me at 9 AM every weekday"
  • "In 20 minutes, ping me"
  • "Every Monday at 8, send me a summary"
  • Use when the time matters
Heartbeat (regular check-ins)
  • "A few times a day, check my inbox"
  • "Keep an eye on new Reddit threads"
  • Runs at a rough interval, not an exact time
  • Use for light, ongoing checks

The simple rule: if the timing must be exact, ask for a scheduled job. If it's "now and then", use the heartbeat. Most "my reminder didn't fire" problems come from using the heartbeat for something that needed an exact time.

The heartbeat is an OpenClaw feature, driven by a file called HEARTBEAT.md in your agent's workspace. Hermes agents use scheduled jobs for both.

Set up a reminder or a repeating job

Ask your agent, and include the time, the time zone and where you want the result.

Then ask your agent to confirm: "List all your scheduled jobs with their next run time and time zone." That catches mistakes before they cost you a missed reminder.

On OpenClaw agents, each scheduled job's runs show up in your Chats list, so you can open one and see what happened.

Use the heartbeat for ongoing checks

The heartbeat wakes your agent at a regular interval to look at HEARTBEAT.md and do what it says. If there's nothing to do, it replies HEARTBEAT_OK and stays quiet. Seeing HEARTBEAT_OK means it's working, not broken.

Keep HEARTBEAT.md short. Every check costs AI usage each time it runs, so a long list of checks every few minutes adds up fast. See AI usage, models and top-ups.

Get the time zone right

Your agent's computer runs on a server clock, which may not be your local time. If you don't say a time zone, "9 AM" might mean 9 AM somewhere else.

  1. Tell your agent your time zone once, and ask it to save it to memory: "My time zone is Asia/Singapore. Save it to USER.md and use it for every time I mention."
  2. Still include the time zone in important requests.
  3. Use full names like America/New_York rather than "EST", which is ambiguous.

See how your agent's memory works for saving preferences.

When a reminder or job didn't run

Work through these in order:

  1. Check it exists. "List all your scheduled jobs with next run time and time zone." If it's not there, it was never created. Ask again and have it confirm.
  2. Check the time zone. A job set for 9 AM UTC fires at a different local time.
  3. Check where it sends results. It may have run but posted in a different chat. Look in your Chats list.
  4. Check the agent was running. A stopped agent doesn't run jobs. The agents list shows its status.
  5. Check your usage. If your monthly allowance ran out, AI replies pause until it resets or you add a top-up.
  6. Check for duplicates. If a heartbeat and a scheduled job both do the same thing, you'll get double messages. Remove one.

The heartbeat keeps repeating old tasks. It's still reading old instructions. Ask your agent to show you HEARTBEAT.md and remove anything finished.

If a job still doesn't fire after all that, open a ticket at /support with the exact request you gave and the time it should have run.

Frequently asked questions

Can my agent work while I'm offline?

Yes. Scheduled jobs and heartbeat checks run on your agent's own computer, so your laptop can be closed. Results arrive wherever you asked, for example Telegram.

What's the difference between heartbeat and cron?

Scheduled jobs, sometimes called cron jobs, run at exact times. The heartbeat runs at a regular, rough interval for ongoing checks. Use jobs for anything time-critical.

Why does my agent keep saying HEARTBEAT_OK?

That's its "nothing to report" message. It means the heartbeat ran and found nothing to do.

Why did my reminder arrive at the wrong time?

Almost always a time zone mix-up. Save your time zone to memory and include it in requests.

Is there a page in the dashboard to manage schedules?

Not yet. Ask your agent to list, change or delete its scheduled jobs.

Still stuck?

Open a ticket and a person will help. Tell us what you tried and what you saw.

Contact support