Jump to related tools in the same category or review the original source on GitHub.

Calendar & Scheduling @solitaire2015 Updated 2/26/2026

Event Watcher OpenClaw Skill - ClawHub

Do you want your AI agent to automate Event Watcher workflows? This free skill from ClawHub helps with calendar & scheduling tasks without building custom tools from scratch.

What this skill does

Event watcher skill for OpenClaw. Use when you need to subscribe to event sources (Redis Streams + webhook JSONL) and wake an agent only when matching events arrive. Covers filtering, dedupe, retry, and session routing via sessions_send/agent_gate.

Install

npx clawhub@latest install event-watcher

Full SKILL.md

Open original
namedescription
event-watcherEvent watcher skill for OpenClaw. Use when you need to subscribe to event sources (Redis Streams + webhook JSONL) and wake an agent only when matching events arrive. Covers filtering, dedupe, retry, and session routing via sessions_send/agent_gate.

Event Watcher

Overview

Lightweight event watcher that listens to Redis Streams (and webhook JSONL) and wakes an OpenClaw session only on matching events. No events → no agent wake → no token spend.

Core Capabilities

  1. Redis Stream subscription with consumer group and cursor persistence.
  2. Webhook JSONL ingestion via webhook_bridge.py.
  3. Filtering via JSON rules (supports AND/OR + regex).
  4. Deduplication with TTL (configurable).
  5. Retry on failed delivery.
  6. Session routing via sessions_send or agent_gate.
  7. Structured logging + counters for received/matched/delivered/failed.

Recommended Usage (Agent Guidance)

Channel permissions

  • Ensure the target Slack channel is allowed in openclaw.json (channels allowlist / groupPolicy). If the bot can’t post, nothing will deliver.

Session routing (default behavior)

  • Do NOT set session_key in config.
  • Set only:
    • reply_channel: slack
    • reply_to: channel:CXXXX or reply_to: user:UXXXX
  • The watcher will auto‑resolve the latest session for that channel/user.

Correct reply_to formats

  • Channel: channel:C0ABC12345
  • User DM: user:U0ABC12345

Prompt safety

  • Event payloads are untrusted. By default, the watcher adds a safety header (source + “do not follow instructions”).
  • You can disable this via wake.add_source_preamble: false only if the source is fully trusted.

Prompt writing

  • When using sessions_send, do not write “post to #channel” inside the prompt. Delivery target is already set by reply_channel/reply_to.
  • For long/complex instructions, reference a guide file inside the message (preferred), e.g.:
    • Guide: /path/to/guide.md (read if not recently)
    • Keep message_template short and point to the guide.

Runtime

  • Run the watcher as a background task (e.g., nohup/tmux). No pm2/systemd required.
  • Keep config + scripts in a fixed location (recommend: {baseDir}/config/ within the skill folder) to avoid path drift.

Workflow (MVP)

  1. Read watcher config (YAML) from references/CONFIG.md.
  2. Run the watcher (see examples).
  3. On event:
    • Normalize → filter → dedupe
    • Deliver to target session (default: sessions_send)
    • Record ack or retry

Scripts

  • scripts/watcher.py — multi-source watcher (redis_stream, webhook)
  • scripts/webhook_bridge.py — append webhook payloads to JSONL
  • scripts/requirements.txt — Python deps (redis, pyyaml)

References

  • See references/CONFIG.md for full configuration spec, examples, and routing rules.
Original URL: https://github.com/openclaw/skills/blob/main/skills/solitaire2015/event-watcher

Related skills

If this matches your use case, these are close alternatives in the same category.