这是 OpenClaw 最经典的入门自动化场景之一:每天早上你还没拿起手机,它已经查好了今天的天气、整理好了你的日程,打包成一条消息发到你的 Telegram 或微信。你刷手机的第一眼,就知道今天要穿什么、几点有会议。
不需要写代码,配置一次,以后每天自动运行。
本文完整演示如何搭建这个早报系统。更多资源请访问 OpenClaw 中文版官网。
一、先搞清楚这件事是怎么运作的
OpenClaw 的自动化早报依赖两个机制的配合:
Cron 定时任务:OpenClaw 内置了一套 Cron 系统,可以在指定时间触发 AI 执行任务。语法和 Linux Cron 完全一致,支持精确到分钟的时间控制,支持时区设置,支持”只在工作日执行”等规则。
技能(Skills):Cron 触发后,AI 需要工具来获取天气和日历数据。weather 技能提供天气查询接口,日历集成(Google Calendar 或其他)提供日程数据。
整个流程是:
每天 07:00 → Cron 触发 → AI 调用 weather 技能查天气
→ AI 查询今日日历事件
→ AI 整理成一条早报消息
→ 发送到你指定的频道(Telegram / 微信等)
你不在场,不需要做任何事,它自己跑完整个流程。
二、前置准备:确认这几件事已经就绪
1. OpenClaw 已在运行且连接了消息渠道
openclaw gateway status # 应显示 Running
openclaw channels status # 应看到 Telegram / 微信等渠道已连接
2. 安装 weather 技能
# 通过 ClawHub 安装
openclaw plugins install clawhub:weather
# 安装后重启
openclaw daemon restart
# 验证
/tools
# 应看到 weather 在可用工具列表中
weather 技能使用 wttr.in 作为免费天气数据源,无需 API Key,开箱即用。
3. 如果需要日历集成,配置好 Google Calendar 或其他日历
如果你只想要天气早报,这步可以跳过。如果想加入今日日程,需要把 Google Calendar 连接到 OpenClaw(具体步骤在第四节)。
三、最简版本:只有天气,3 分钟搞定
先从最简单的开始——只发天气,确认整个机制跑通之后,再加日程。
方式一:通过 CLI 命令添加(最快)
openclaw cron add \
--name "morning-weather" \
--cron "0 7 * * *" \
--tz "Asia/Shanghai" \
--message "查询今天上海的天气预报,包括气温范围、降水概率和穿衣建议,用简洁的方式告诉我" \
--announce
参数解释:
--name:任务名称,随便取,方便以后管理--cron "0 7 * * *":每天 7:00 执行(标准 Cron 表达式,分 时 日 月 星期)--tz "Asia/Shanghai":使用上海时区(不设置会按 Gateway 所在服务器时区)--message:触发后发给 AI 的指令--announce:任务完成后把结果发到你的频道
方式二:通过 openclaw.json 配置(更灵活)
{
"crons": [
{
"id": "morning-weather",
"name": "每日天气早报",
"cron": "0 7 * * *",
"tz": "Asia/Shanghai",
"message": "查询今天上海的天气预报,包括气温范围、降水概率和穿衣建议,用简洁的方式告诉我",
"announce": true,
"session": "isolated"
}
]
}
"session": "isolated" 很重要——它让这个定时任务在独立会话中运行,不会污染你平时和 AI 的对话历史,也防止上下文无限积累。
验证配置是否生效
# 查看所有 Cron 任务
openclaw cron list
# 手动触发一次,测试效果(不等到明天 7 点)
openclaw cron run morning-weather
# 观察日志
openclaw logs --follow
手动触发后,稍等几秒,你的 Telegram 或微信应该收到一条天气报告。如果收到了,恭喜——最简版已经跑通。
四、加入日程:连接 Google Calendar
想在天气之后顺带列出今天的日程?需要让 OpenClaw 能访问你的 Google Calendar。
方法一:Gmail Pub/Sub(官方推荐,支持实时事件)
如果你的 OpenClaw 连接了 Gmail,并且启用了 Gmail Pub/Sub,OpenClaw 可以直接通过 Gmail 渠道访问 Google Calendar 数据,无需额外配置。
{
"channels": {
"gmail": {
"enabled": true,
"pubsub": true
}
}
}
方法二:在 Cron 任务里直接让 AI 查询 Calendar MCP
如果你安装了 Google Calendar MCP 插件,AI 在执行 Cron 任务时可以直接调用它:
openclaw plugins install clawhub:google-calendar-mcp
安装后,Cron 任务的 message 可以写成:
"查询今天(亚洲/上海时区)的 Google Calendar 事件列表,以及今天上海的天气预报(含气温范围、是否有雨、穿衣建议),整理成一条早报发给我。格式:先天气,再今日日程(按时间排序),最后一句今日提醒"
方法三:如果用 Notion 或其他日历
同理,安装对应的 MCP 或技能,然后在 Cron message 里指示 AI 去查询:
"从我的 Notion 日历页面读取今天的日程……"
"从 Fantastical 导出的 ics 文件里读取今天的事件……"
OpenClaw 的 AI 足够灵活,能从各种来源获取信息,你只需要让 AI 知道去哪里找。
五、完整早报版本:天气 + 日程 + 今日提醒
下面是一个完整的”每日早报”Cron 配置,包含天气、日程和一句今日激励:
{
"crons": [
{
"id": "morning-briefing",
"name": "每日早报",
"cron": "0 7 * * *",
"tz": "Asia/Shanghai",
"session": "isolated",
"announce": true,
"message": "现在是早上 7 点,帮我生成今天的早报。包含三个部分:\n\n1. 【今日天气】查询上海今天的天气,包括最高最低气温、降水概率、体感温度,以及穿衣建议(一句话)。\n\n2. 【今日日程】从我的日历里获取今天所有的会议和任务,按时间顺序列出,标注地点(如有)。如果今天没有日程,就说"今天暂无安排"。\n\n3. 【今日一句】随机生成一句简短的正向提醒或有用的小知识,不超过 20 字。\n\n整体格式简洁,适合手机快速阅读,不要使用大量 markdown 格式符号。"
}
]
}
添加后验证并手动触发一次:
openclaw daemon restart
openclaw cron list
openclaw cron run morning-briefing
效果大概长这样:
🌤️ 今日天气
上海 今天多云转晴,18~26℃,降水概率 10%
体感温度较低,建议穿轻薄外套
📅 今日日程
10:00 产品周会(腾讯会议)
14:30 和 @李明 1:1 沟通
17:00 代码 Review
💡 今日一句
深呼吸,一次只做一件事。
六、进阶配置:工作日专用 + 周末特别版
只在工作日发早报
{
"id": "weekday-briefing",
"cron": "0 7 * * 1-5", // 1-5 表示周一到周五
"tz": "Asia/Shanghai",
"message": "今天是工作日,帮我生成早报……",
"announce": true,
"session": "isolated"
}
周末发不一样的早报
{
"id": "weekend-briefing",
"cron": "0 8 * * 6,0", // 6 = 周六,0 = 周日(周末晚一小时)
"tz": "Asia/Shanghai",
"message": "今天是周末,帮我生成一份轻松版早报:今天天气如何,有什么适合的户外活动,以及一个今天可以尝试的小创意或放松方式",
"announce": true,
"session": "isolated"
}
给不同城市做多份早报
如果你经常出差,或者家人在不同城市,可以配置多个任务:
{
"crons": [
{
"id": "shanghai-briefing",
"cron": "0 7 * * *",
"tz": "Asia/Shanghai",
"message": "查询上海今天的天气……",
"announce": true,
"session": "isolated"
},
{
"id": "beijing-briefing",
"cron": "0 7 * * *",
"tz": "Asia/Shanghai",
"message": "查询北京今天的天气……",
"announce": true,
"session": "isolated"
}
]
}
七、Cron 任务管理常用命令
配置好之后,这几条命令够你日常管理所有定时任务:
# 查看所有 Cron 任务和状态
openclaw cron list
# 立刻手动触发某个任务(测试用)
openclaw cron run morning-briefing
# 暂停某个任务(不删除)
openclaw cron pause morning-briefing
# 恢复暂停的任务
openclaw cron resume morning-briefing
# 删除某个任务
openclaw cron remove morning-briefing
# 查看某个任务的历史运行记录
openclaw cron logs morning-briefing
# 编辑任务(支持修改时间、message 等)
openclaw cron edit morning-briefing --cron "30 7 * * *" # 改为 7:30
v2026.4.1 之后,也可以用 /tasks 命令直接在聊天窗口里查看所有后台任务的运行状态,包括最近的 Cron 任务执行结果。
八、常见问题排查
任务到时间了没有触发
最常见原因是时区没有设置,或者设置了错误的时区。检查:
openclaw cron list
# 查看任务的 next run 时间,确认是否是你期望的本地时间
# 如果时间不对,重新设置时区
openclaw cron edit morning-briefing --tz "Asia/Shanghai"
另一个原因:Gateway 在任务触发时没有运行。确保 Gateway 以 launchd(macOS)或 systemd(Linux)守护进程方式运行,开机自启动:
openclaw gateway install # 注册为系统服务
任务触发了但消息没发出来
openclaw cron logs morning-briefing
openclaw logs --follow
查看日志,确认是 AI 执行失败(模型报错)还是消息投递失败(渠道断线)。如果是渠道问题:
openclaw channels status --probe
天气查出来了但日程是空的
AI 没有访问日历的权限或工具。检查 Google Calendar 集成是否正确安装,或者直接在 message 里改成一个不依赖日历的版本先跑通,再逐步加入日历功能。
想收到通知但消息发到了主会话而不是 Telegram
检查 announce 的投递目标。默认情况下,announce: true 会发到触发 Cron 任务的渠道(通常是你最近活跃的渠道)。如果需要指定发到某个特定渠道,可以用 --deliver 参数或在配置里指定:
{
"id": "morning-briefing",
"deliver": "telegram",
...
}
总结:搭建早报的完整步骤
- 安装 weather 技能:
openclaw plugins install clawhub:weather - (可选)配置日历集成:Google Calendar MCP 或 Gmail Pub/Sub
- 添加 Cron 任务:写好 message(告诉 AI 要查什么、怎么整理),设置时间和时区
- 手动触发测试:
openclaw cron run morning-briefing - 确认消息正确发到你的频道
- 确保 Gateway 已注册为系统服务,能开机自启动
整个配置不超过 15 分钟。配置完成后,这个早报会每天准时出现在你手机里,不需要你再做任何操作。
这是 OpenClaw 最典型的价值呈现方式——不是你问它答,而是它主动把有用的信息整理好送到你面前。
想了解更多 OpenClaw 自动化场景配置,欢迎访问 OpenClaw 中文版官网。