OpenClaw 打造了全自动化个人助理:从天气播报、运动计划到自动同步 iPhone 日历
我用 OpenClaw 打造了全自动化个人助理:从天气播报、运动计划到自动同步 iPhone 日历
前言
作为一个骑行爱好者和程序员,我一直想打造一个属于自己的全自动化个人助理。折腾了将近一个月,踩了无数坑,终于实现了理想中的效果:
- 每天早上 7:30 微信推送天气、通勤建议
- 每周一自动分析我前两周的 Strava 运动数据
- 结合未来一周的天气和骑行俱乐部活动,生成本周骑行计划
- 经过我同意后,自动写入 iCloud 日历,iPhone 直接就能看到
- 所有数据本地化,不需要任何第三方服务中转
这篇文章分享一下整个过程的踩坑经历和最终方案,给同样想折腾的朋友做个参考。
一、前期准备工作
在开始之前,你需要先准备好以下基础设施:
1.1 云端部署 OpenClaw
OpenClaw 是整个系统的核心,运行在云端服务器上,负责任务调度、数据处理和推送。
推荐方案:火山引擎(ArkClow)+ Coding Plan
- 首月优惠 50 元,后期每月 99 元
- 如果选择 lite 套餐注意额度使用,避免多次重部署导致额度用完
安装方式:参考 OpenClaw 官方文档,通过 Docker 或直接部署到服务器。
1.2 微信渠道连接
OpenClaw 需要连接到你的微信才能推送消息,这一步是所有推送的前提。
操作步骤:
- 在 OpenClaw 中安装微信机器人插件
- 在微信中找到你的 OpenClaw 机器人
- 给机器人发送「我的消息渠道 ID 是多少」或类似命令
- 复制返回的渠道 ID,配置到 OpenClaw 中
注意:这个渠道 ID 是你专属的,OpenClaw 通过这个 ID 识别并推送消息给你。
1.3 安装 Strava MCP
Strava 是一个运动记录应用,可以记录骑行、跑步等运动数据。我们通过 MCP(Model Context Protocol)让 OpenClaw 直接读取你的运动数据。
操作步骤:
- 在 OpenClaw 中安装 Strava MCP 服务
- 授权 Strava 账号(OAuth 登录)
- 验证连接:发送「查看我这周骑行了多少公里」测试
MCP 是什么:可以理解为「插件」,让 AI 助手能够调用外部服务的能力。
1.4 天气数据获取
天气数据一般通过免费的天气 API 获取,比如和风天气、OpenWeatherMap 等。
操作步骤:
- 注册天气 API 账号,获取 API Key
- 配置到 OpenClaw 中
- 测试:「今天天气怎么样」
二、踩坑历程:那些走不通的方案
方案 1:Notion 日历中转
最开始想的是把 Apple 日历同步到 Notion 日历,然后通过 Notion API 读取数据。
- ✅ 优点:Notion API 友好,文档完善
- ❌ 坑:Apple 日历同步到 Notion 后,事件只存在于 Notion 的 Calendar 视图,不会存储到数据库,Public API 完全读不到这些数据
- ❌ 额外问题:中国区 Apple ID 访问 Notion 不稳定,同步经常失败
虽然日历方案失败了,但 Notion 本身很有价值。后来我发现 Notion 的数据库 + Agent 能力可以做很多事情:
- 可以用 Notion 作为数据存储中枢,存放各种分析结果
- 可以用 Agent 自动整理和归类数据
- 可以用 Notion 数据库做历史数据的长期归档
后续计划:比如 OpenClaw 分析完 Strava 数据后,可以把每周的运动总结写入 Notion 数据库,这样不仅能看到当周数据,还能做月度总结、年度回顾等历史分析。
方案 2:飞书日历中转
后来想到用飞书,国内访问稳定,API 也开放。
- ✅ 优点:飞书 Exchange 协议支持 iPhone 日历原生同步,国内访问速度快
- ❌ 坑:飞书个人版应用读取个人日历需要用户级 OAuth 授权,Token 2 小时过期,需要自己做 Refresh Token 续期逻辑,而且国内网络环境下经常授权失败
- ❌ 额外问题:MCP 服务虽然官方支持,但和普通 API 一样有权限问题,无法直接读取同步过来的 iCloud 日历数据
方案 3:第三方同步工具
试了很多第三方同步工具,比如 IFTTT、Zapier 之类的,要么国内访问不了,要么同步延迟高,要么需要付费,而且数据要经过第三方服务器,安全隐私是个问题。
三、最终方案:OpenClaw-With-Apple 直接对接 iCloud
直到我发现了 Openclaw-With-Apple 这个 Skill,完美解决了所有问题!
核心架构
iPhone iCloud ← 直接连接 ← OpenClaw(火山引擎)→ Strava MCP
↓
微信推送
配置过程
第 1 步:安装 OpenClaw-With-Apple Skill
- 下载项目到本地:
git clone https://github.com/rtjowo/openclaw-with-Apple.git
cd openclaw-with-Apple
- 安装 Python 依赖(只有 3 个,非常轻量):
pip install pyicloud caldav icalendar
- 将项目加载到支持 Skill 的 AI 助手中
第 2 步:生成 Apple 应用专用密码
这个密码用于日历读写权限,不会泄露你的 Apple ID 主密码。
- 打开 appleid.apple.com
- 登录你的 Apple ID
- 找到「登录与安全」→「应用专用密码」
- 点击「生成应用专用密码」
- 输入一个标签名(比如 "OpenClaw")
- 复制生成的密码(格式类似
xxxx-xxxx-xxxx-xxxx)
把密码发给 AI 助手即可。
⚠️ 重要:中国区 Apple ID 注意
如果你的 Apple ID 是用手机号码注册的,登录时需要在手机号前加国家区号 86:
登录账号:86xxxxxx(不是纯手机号)
💡 踩坑经历:我的 Apple ID 虽然绑定了邮箱,但用邮箱登录一直失败,最后发现必须用手机号 + 86 前缀才能正常登录。
第 3 步:Strava MCP 配置
如果前面已经完成 Strava MCP 安装和授权,这一步可以直接跳过。
- 在 OpenClaw 中安装 Strava MCP
- 完成 OAuth 授权
- 测试:「查看我这周的骑行数据」
第 4 步:微信推送配置
OpenClaw 本身支持微信推送,确保:
- 微信机器人已连接并获取到渠道 ID
- 测试发送消息成功
最终实现的功能
1. 每日天气播报
每天早上 7:30 微信推送:
早上好!今天天气 25°C,晴,西北风 2 级
✅ 非常适合骑车上班,建议穿短袖+皮肤衣
今日待办:
- 10:00 项目周会
- 15:00 客户沟通
2. 每周一自动生成骑行计划
每周一早上推送:
🚴 本周骑行计划生成:
📊 上周骑行数据:总里程 150km,平均速度 24km/h,爬升 1200m
🌤️ 本周天气:周二、周四、周六天气良好,适合骑行
📅 俱乐部活动:周六早上 8 点淇澳岛骑行
✅ 推荐计划:
- 周二 19:00-20:30 夜骑情侣路
- 周四 19:00-21:00 爬坡训练
- 周六 08:00-12:00 淇澳岛骑行(已自动加入日历)
是否确认这个计划?回复 Y 自动写入日历。
我回复 Y 之后,自动把这些活动写入 iCloud 日历,iPhone 上直接就能看到提醒。
四、优缺点总结
✅ 优点
- 没有中间商:直接连接 iCloud,数据只在我自己的服务器和 Apple 之间传输,安全可靠
- 完全自动化:不需要任何手动操作,数据自动同步,计划自动生成,提醒自动推送
- 扩展性强:可以很方便地接入健康数据、备忘录、查找我的 iPhone 等功能
- 成本极低:只需要一台最便宜的云服务器,所有服务都是免费的
❌ 不足
目前这套方案用 Apple 应用专用密码只能读写日历,无法直接访问提醒事项和备忘录。
不过这个 Skill 其实也提供了解决方案:通过快捷指令定时把数据共享出来。
- 提醒事项同步:通过 iPhone 快捷指令定时读取提醒事项,导出到 iCloud Drive,OpenClaw 读取后同步
- 健康数据:同样可以配置快捷指令采集健康数据,生成深度分析报告
这些就看个人需求了,我目前主要用日历功能,所以够用了。
五、整体成本
- 云服务器:ArkClow + Coding Plan,首月优惠 50 元,后期每月 99 元
- 其他服务:全部免费
- 总投入:50 块钱 + 一个周末的折腾时间
💡 小提示:如果选择 lite 套餐注意额度使用,之前因为多次重新部署导致额度用完,建议做好规划。
六、后续优化方向
6.1 Notion 数据归档
虽然日历方案失败了,但 Notion 作为数据存储中枢很有价值:
- 运动数据归档:每周分析完的 Strava 数据自动写入 Notion 数据库
- 历史趋势分析:基于 Notion 数据库做月度、年度运动总结
- 多维度统计:结合骑行数据、天气数据、体重变化等做综合分析
6.2 其他扩展方向
- 接入健康数据:结合心率、睡眠数据调整运动计划
- 自动识别待办:自动写入日历或提醒事项
- 智能家居联动:根据到家时间自动开空调、烧热水
折腾的过程虽然坑很多,但最终实现想要的功能时,成就感还是满满的。有同样需求的朋友可以参考这个方案,有问题欢迎交流~
本文首发于博客园,人为本着出处。

浙公网安备 33010602011771号