workspaces.directory
Back to OpenClaw guides
OpenClaw GuideautomationmacOSWindowsLinux

How to Configure OpenClaw Heartbeats and Active Hours

OpenClaw heartbeats run periodic agent turns in the main session. The safest setup is to keep the checklist small, send to a controlled target, and restrict delivery to active hours in the right timezone.

Last verified 2026-03-15operatorspower users

How to configure OpenClaw heartbeats and active hours

OpenClaw heartbeats run periodic agent turns so the model can surface anything that needs attention without waiting for an inbound message. The safest way to use them is to keep the prompt small, set a deliberate target, and restrict them to active hours until you trust the behavior.

Who this is for

  • You already have a working OpenClaw install.
  • You want OpenClaw to check in automatically.
  • You want proactive behavior without 24/7 noise.

What you need before you start

  • A configured agent workspace.
  • A channel or dashboard flow that already works.
  • Your preferred timezone and working hours.

Step-by-step setup

Step 1: Check the current heartbeat interval

bash

Expected result: a duration such as 30m, 1h, or a missing key if you have not set it explicitly.

Step 2: Create a small HEARTBEAT.md checklist

bash

Expected result: the file exists in the workspace and stays short enough that it does not bloat the prompt.

Step 3: Set a deliberate heartbeat interval and delivery target

bash

The heartbeat docs note that the default delivery target is none, so setting target explicitly makes the outbound behavior predictable.

Step 4: Restrict heartbeats to active hours

bash

Expected result: OpenClaw only runs heartbeats inside the configured window. Outside that window, the run is skipped until the next valid tick.

Step 5: Validate the configuration

bash

Expected result: validation completes without schema errors.

Step 6: Trigger a manual wake to test the setup

bash

Expected result: OpenClaw runs an immediate heartbeat turn using the current settings.

Verify it worked

  1. Follow the logs during or after the manual wake:
bash
  1. Confirm the run happens during your active window.
  2. Confirm no message is sent when the heartbeat returns only HEARTBEAT_OK.

Common problems and fixes

Heartbeats never run

Check that the interval is not disabled and the active-hours window is valid:

bash

Heartbeats are skipped during the day

Verify the timezone path the troubleshooting guide recommends:

bash

Heartbeats are too noisy

Turn off external delivery while you tune the prompt:

bash

FAQ

How do I disable heartbeats completely?

Set the interval to 0m. The heartbeat docs explicitly document 0m as the disable value.

Should I use activeHours or leave heartbeats on all day?

Use activeHours first. The docs explain that omitting activeHours means heartbeats can run 24/7, which is useful only after you trust the prompt and delivery settings.

Can OpenClaw update HEARTBEAT.md for me?

Yes, if you ask it to in a normal chat. The official heartbeat docs call HEARTBEAT.md a normal workspace file that the agent can update when instructed.

Official sources

Related OpenClaw guides

Follow the next most relevant setup guide without leaving the cluster.