---
title: Cron Jobs
area: automation
tags: [automation, health, assistant, cron]
created: 2026-03-18
updated: 2026-05-27
status: active
related: [[Infrastructure/Architecture]], [[Infrastructure/Automation/n8n Workflows]], [[Plans/Daily Schedule]]
---

# Hermes Cron Jobs

This note reflects a partial **live Hermes cron inventory** checked on 2026-05-27. Older OpenClaw job names below are historical/stale unless they also appear in the current Hermes `cronjob list`.

All current jobs run via the Hermes cron scheduler.

## Enabled jobs

### Gentle Wake Routine
- **Schedule:** weekdays `06:30/06:40/06:50` and `07:00/07:10/07:30`; weekends `08:30/08:40/08:50` and `09:00/09:10/09:30` America/Los_Angeles
- **Hermes jobs:** `weekday-gentle-wake-bedroom-wiz-wonderboom`, `weekday-gentle-wake-music-and-morning`, `weekend-gentle-wake-bedroom-wiz-wonderboom`, `weekend-gentle-wake-music-and-morning`
- **Purpose:** gentle bedroom wake-up with WiZ light ramp plus Wonderboom Bluetooth music
- **Runbook:** [[Gentle Wake Routine]]

### obsidian-inbox-watcher
- **Agent:** `automation`
- **Schedule:** every 5 minutes
- **Session target:** isolated
- **Purpose:** watches `/mnt/swarm-common/obsidian-vault/will/inbox/` for inbound notes, classifies them, handles them, moves them to `processed/`, and notifies Will via Telegram

### Daily follow-up: Discord Unknown Channel bug
- **Agent:** `main`
- **Schedule:** daily at `15:00 UTC`
- **Session target:** main
- **Purpose:** reminder to review the tracked Discord outbound `Unknown Channel` bug and only send Will an update if there is meaningful progress or a clear next step

### Model best-practices sync (OpenAI+Anthropic)
- **Agent:** `automation`
- **Schedule:** Mondays at `09:00` America/Los_Angeles
- **Session target:** isolated
- **Purpose:** refresh local tool-calling / model best-practice hint files from official docs
- **Current note:** enabled, but the last recorded run errored due timeout / rate-limit issues

### Shift water reminder
- **Agent:** `automation`
- **Schedule:** hourly on weekdays at `14:00–21:00` America/Los_Angeles
- **Session target:** isolated
- **Purpose:** Telegram water reminder during work shift
- **Current note:** repaired on 2026-04-13 to send directly with the `message` tool to Will's Telegram DM after isolated cron runs repeatedly failed while trying to rediscover the chat target

### Shift walk reminder
- **Agent:** `automation`
- **Schedule:** weekdays at `14:00` and `20:00` America/Los_Angeles
- **Session target:** isolated
- **Purpose:** Telegram walk reminder
- **Current note:** repaired on 2026-04-13 to use an explicit Telegram target in the cron payload

### Shift walk reminder (30min offset)
- **Agent:** `automation`
- **Schedule:** weekdays at `15:30`, `18:30`, `21:30` America/Los_Angeles
- **Session target:** isolated
- **Purpose:** offset Telegram walk reminder
- **Current note:** repaired on 2026-04-13 to use an explicit Telegram target in the cron payload

### Enable shift reminders
- **Agent:** `automation`
- **Schedule:** one-shot at `2026-04-07 16:00 UTC`
- **Session target:** isolated
- **Purpose:** enable the three work-shift reminder jobs when the new [[Plans/Daily Schedule]] goes live
- **Status:** disabled after the one-shot run errored

### Tax Reminder
- **Agent:** `main`
- **Schedule:** one-shot at `2026-04-14 12:00 UTC`
- **Session target:** main
- **Purpose:** tax deadline reminder

### n8n Gmail trigger failure monitor
- **Agent:** `main`
- **Schedule:** daily at `09:00` and `21:00` America/Los_Angeles
- **Session target:** isolated
- **Purpose:** read-only health check for workflow `whtdorf7yJMVYeHm`
- **Current note:** as of 2026-04-28, alerts only on factual failure states (workflow inactive, Gmail Trigger node missing, or recent failed executions). Idle time alone no longer pages `#ops-alerts`.

## Disabled jobs (planned / staged)

### obsidian-inbox-watcher
- **Agent:** `automation`
- **Schedule:** every 5 minutes
- **Session target:** isolated
- **Purpose:** watches `/mnt/swarm-common/obsidian-vault/will/inbox/` for inbound notes, classifies them, handles them, moves them to `processed/`, and notifies Will via Telegram
- **Current note:** disabled after repeated timeouts

## OS cron (VM)

### Atlas/Hermes MinIO backup
- **Schedule:** daily at `02:50` America/Los_Angeles via Hermes job `atlas-minio-self-backup` (`c15ee395a38d`)
- **Purpose:** Atlas/Hermes backup to MinIO bucket `atlas` using `atlas-backup-to-minio-cron.sh`
- **Last live check:** job enabled and last status `ok` on 2026-05-27

### System / local automation watchdogs
- **Examples live on 2026-05-27:** `system threshold watchdog` every 10m, `blocked kanban escalation` every 30m, `local-ai-automation-watchdog` daily 03:20, `agent-ops-watchdog` daily 03:40, `hermes-live-checkout-kanban-guard` every 5m.
- **Delivery:** mostly Discord `#ops-alerts` or origin, depending on job.

## Operational notes

### Google Calendar CLI approvals
- Local preferred setup now uses a stable workspace script allowlist target for calendar reads: `/home/openclaw/.openclaw/workspace/scripts/gog-calendar-read.sh`
- The script reads only `GOG_ACCOUNT` and `GOG_KEYRING_PASSWORD` from `~/.openclaw/credentials/gog.env` and then execs `gog calendar events ...` with explicit env vars.
- This replaced the earlier version-pinned Homebrew Cellar allowlist path and avoids approval churn when `gogcli` is upgraded.
- Operational rule: calendar helper scripts should avoid `bash -lc` wrappers and avoid sourcing the whole env file; prefer the stable wrapper script or direct `gog` invocation with explicit env vars.

## Note

Earlier versions of this note listed several OpenClaw jobs that are not present in the current Hermes cron inventory anymore. Treat this file as refreshed for high-risk/current infra items on 2026-05-27, not a complete replacement for `hermes cron list` / the Hermes `cronjob` tool.
