#Claude + cron + discord

1 messages · Page 1 of 1 (latest)

small dune
#

I added Sonnet for one of my agents, instead of GPT which I've been mostly using. When I asked it to send me a reminder in a Discord channel, it went off on a tangent about needing MCP? This is a simple task that my GPT agents handle well, without needing any MCP. Any ideas on why it did this and how it can be fixed/improved?

Me:

Can you please reming me in here, next Wednesday at 6:00pm, to check through my daily notes (in my "Time" notebook) and see if I wrote anything down about the phone calls that needs to be copied into this one?

Agent:

The timing works — 2026-05-27 at 6:00 PM Adelaide = 08:30 UTC on 2026-05-27, which is in the future. ✅

However, there's a problem I need to flag before creating this: the remote scheduled agent has no MCP connectors, so it has no way to send you a message in the #log-wed-phone-calls Discord channel. It would run in isolation in Anthropic's cloud with no access to OpenClaw.

Your options:

  1. Connect the OpenClaw MCP connector at claude.ai/customize/connectors — once it's connected there, I can attach it to the scheduled routine and it'll be able to message you in the channel.

  2. Use a phone/calendar alarm — simplest option for a one-off reminder. Set it for Wednesday 28 May at 6:00 PM with the note: "Check Time notebook for phone call records to copy into Wednesday Phone Calls log."

  3. I create the routine anyway — it would fire and run, but the agent would have no way to reach you. Not useful.

Which would you prefer? If you want to go the MCP route I can walk you through it, but for a single one-off reminder a phone alarm is probably faster.

stable quartzBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> âś… Mark Solution

last berryBOT
normal tigerBOT
# small dune I added Sonnet for one of my agents, instead of GPT which I've been mostly using...

Dan: likely the Sonnet agent imported Claude.com’s “scheduled tasks need connectors/MCP” mental model instead of using OpenClaw’s Gateway cron tool.

In OpenClaw, this should not require Claude MCP. Cron runs inside your Gateway, and for isolated cron jobs chat delivery can use the normal shared chat route/message tool when a route is available. The docs call this out here: https://docs.openclaw.ai/automation/cron-jobs and CLI notes here: https://docs.openclaw.ai/cli/cron

The two things I’d check:

  1. First: what version are you on?
    openclaw --version

  2. Check whether that Sonnet agent actually has the cron tool available/allowed. The model should see a tool described roughly as “Manage Gateway cron jobs and send wake events. Use this for reminders, check back later requests, delayed follow-ups…”. If the cron tool is missing from that agent’s tool list/allowlist, Sonnet is more likely to improvise and talk about external Claude scheduling/MCP.

A good agent instruction fix is something like:

For reminders, delayed follow-ups, or “remind me here later” requests, use OpenClaw Gateway cron. Do not suggest Claude.com scheduled tasks, MCP connectors, calendar alarms, or external reminders unless the cron tool is unavailable or fails. If scheduling succeeds, confirm the scheduled local time and target channel.

For this specific reminder, the intended shape is a one-shot cron job targeted at the current Discord thread/channel, not an Anthropic cloud scheduled routine. If the agent had cron available and still said this, I’d treat it as model/tool-use behavior worth filing with the exact transcript + openclaw --version: https://github.com/openclaw/openclaw/issues

small dune
#
mia@MIA-PC1:~/.openclaw$ openclaw --version
OpenClaw 2026.4.23 (a979721

How do I check about if the agent has the cron tool allowed?

normal tigerBOT
# small dune ``` mia@MIA-PC1:~/.openclaw$ openclaw --version OpenClaw 2026.4.23 (a979721 ``` ...

Dan, check it from two angles: the configured policy, and what the running session actually sees.

On the machine:

openclaw config get tools
openclaw config get agents.defaults.tools
openclaw config get agents.list
openclaw config get cron.enabled
openclaw cron status

What you’re looking for:

  • If tools.profile is unset or "coding", cron should normally be included.
  • If there’s a tools.allow list anywhere, it must include "cron" or "group:automation".
  • If there’s a tools.deny list anywhere, it must not include "cron". Deny wins.
normal tigerBOT
# small dune ``` mia@MIA-PC1:~/.openclaw$ openclaw --version OpenClaw 2026.4.23 (a979721 ``` ...
  • Also check per-agent entries under agents.list[].tools; the Sonnet agent may have a narrower policy than your GPT agent.
  • Check tools.byProvider too if present, because provider/model-specific policy can restrict only the Anthropic/Sonnet route.

For a reminder in Discord, I’d want at least cron available. message is also useful for direct chat sends, though cron announce delivery can handle final delivery when configured.

If you’re using the web UI, the current docs say Webchat has an “Available Right Now” tool view backed by tools.effective, which is the best runtime check. On your 2026.4.23 build that UI may be a little older, so the config commands above are the most reliable first pass.

Docs: https://docs.openclaw.ai/gateway/configuration-reference#tools and cron: https://docs.openclaw.ai/automation/cron-jobs

small dune
#

my whole tools section looks like this:

  "tools": {
    "profile": "coding",
    "web": {
      "search": {
        "provider": "tavily",
        "enabled": true,
        "openaiCodex": {}
      },
      "fetch": {
        "enabled": true
      }
    }
  },
normal tigerBOT
# small dune my whole tools section looks like this: ``` "tools": { "profile": "coding...

Dan, that global tools config should allow cron. profile: "coding" includes cron by default, and you don’t have a global tools.deny blocking it.

So the next likely places are:

openclaw config get agents.list
openclaw config get agents.defaults.tools
openclaw config get tools.byProvider
openclaw cron status

If agents.list has a specific entry for that Sonnet agent, check whether it has its own tools.allow or tools.deny. Per-agent policy can narrow the global profile.

If tools.byProvider exists, check whether the Anthropic/Sonnet provider or model has a narrower profile/allowlist. That would explain “GPT agents work, Sonnet agent does not.”

If those are empty/normal and openclaw cron status is healthy, then this is probably just Sonnet choosing the wrong conceptual path, not config. In that case I’d add the reminder instruction I mentioned to that agent’s AGENTS/persona instructions, and if it still happens, file it with the transcript + version. The global config you pasted is not the problem.

small dune
#
mia@MIA-PC1:~/.openclaw$ openclaw config get agents.defaults.tools

🦞 OpenClaw 2026.4.23 (a979721) — I can't fix your code taste, but I can fix your build and your backlog.

Config path not found: agents.defaults.tools
mia@MIA-PC1:~/.openclaw$ openclaw config get tools.byProvider

🦞 OpenClaw 2026.4.23 (a979721) — Deployed locally, trusted globally, debugged eternally.

Config path not found: tools.byProvider
normal tigerBOT
# small dune ``` mia@MIA-PC1:~/.openclaw$ openclaw config get agents.defaults.tools 🦞 OpenC...

Dan, those two “Config path not found” results are fine. They mean you don’t have default-agent or provider-specific tool overrides narrowing things.

So right now your evidence says:

  • Global tools.profile: "coding" → should include cron
  • agents.defaults.tools missing → no default override
  • tools.byProvider missing → no Sonnet/provider override there

The remaining checks are:

openclaw config get agents.list
openclaw cron status

If agents.list is missing too, or the Sonnet agent entry has no tools block, then cron should be available from config. At that point I’d blame the model behavior/prompting, not tool policy.

normal tigerBOT
small dune
#

btw what's that "coding" profile about? Is that a default config? I don't think I manually created that

normal tigerBOT
# small dune btw what's that "coding" profile about? Is that a default config? I don't think ...

Yep, coding can be a default. Current docs say local onboarding defaults new local configs to tools.profile: "coding" when it’s unset, while preserving existing explicit profiles.

It’s basically a preset allowlist for “normal local agent work”. In the current docs, coding includes:

group:fs, group:runtime, group:web, group:sessions, group:memory, cron, image, image_generate, video_generate

So in your case it’s not suspicious, and it’s actually the reason cron should be available unless something else narrows it later.

Docs: https://docs.openclaw.ai/gateway/configuration-reference#tools

small dune
#

Dan OP 10:11 AM

Please check the cron scheduler status using the cron tool.

Skye APP 10:11 AM

Hey Dan. đź‘‹ What's going on?

Here's the cron scheduler status:

  • Enabled: Yes
  • Jobs: 6 active
  • Store: /home/mia/.openclaw/cron/jobs.json
  • Next wake: 1779327168807 epoch ms
normal tigerBOT
# small dune Dan OP 10:11 AM Please check the cron scheduler status using the cron tool. Sk...

That confirms it: Skye has the cron tool and can call it. So this is not a tool allow/config problem.

The earlier MCP answer was almost certainly Sonnet reasoning from Claude.com scheduled-task habits instead of OpenClaw’s cron tool. I’d fix it with an agent instruction, not config:

For reminders, delayed follow-ups, "remind me here later", or scheduled chat messages, use the OpenClaw cron tool. Do not suggest Claude scheduled tasks, MCP connectors, calendar alarms, or external reminder systems unless cron is unavailable or the cron tool call fails.

Then test with a disposable reminder like “remind me here in 2 minutes to say test”. If it schedules via cron, you’re good.

One small thing: the reply showing raw epoch ms for next wake is technically correct but not very user-friendly. If you file a behavior issue, include both examples: the bad MCP detour and the cron-status response with raw next wake.

small dune
#

should it also specify that the reminders should be in Discord channels? (that is the only method I use for talking with the agents) And which file should I put this instruction in?

normal tigerBOT
# small dune should it also specify that the reminders should be in Discord channels? (that i...

Yes, I’d specify Discord because that’s your actual delivery channel. The model already has “in here” context, but spelling out “Discord channel/thread” reduces the chance it reaches for Claude.com scheduled tasks or generic reminder advice.

Put it in the agent workspace AGENTS.md, usually:

~/.openclaw/workspace/AGENTS.md

That file is auto-injected into sessions. If this Sonnet agent has its own workspace in agents.list, put it in that workspace’s AGENTS.md instead. You can check with:

openclaw config get agents.list
openclaw config get agents.defaults.workspace

Suggested wording:

normal tigerBOT
# small dune should it also specify that the reminders should be in Discord channels? (that i...
## Reminders

When I ask for a reminder, delayed follow-up, "remind me here later", or a scheduled chat message, use the OpenClaw cron tool.

For requests made from Discord, schedule delivery back to the current Discord channel or thread unless I explicitly name a different target.

Do not suggest Claude scheduled tasks, MCP connectors, calendar alarms, or external reminder systems unless the OpenClaw cron tool is unavailable or the cron tool call fails.

Docs for why AGENTS.md: https://docs.openclaw.ai/automation/standing-orders and workspace docs: https://docs.openclaw.ai/concepts/agent-workspace

small dune
#

Thanks Krill, you're awesome. And I appreciate the links too, I'm going to go and learn some things

normal tigerBOT