你有没有经历过这样的时刻——
正在跟客户打电话,对方突然说"那我们下周三下午两点再聊",你一边“嗯,嗯,嗯”地应着,一边在心里疯狂记时间,挂了电话才发现忘了写进日历。
或者更惨的,明明在日历里建了会议,但因为时区搞错了,结果会议时间差了两个小时。
日程管理这件事,看起来简单,做起来没那容易
今天这篇文章,我把整个配置AI过程——从零到能用的每一步——完整记录下来。你跟着做,45分钟内就能让AI帮你管日历。
为什么AI管日历比你自己管更好?
先说结论:不是AI比你聪明,而是AI不会忘。
人类管理日程有三个致命弱点:
第一,忘记记录。 口头约定的事情,10件里有3件不会出现在日历上。
第二,切换成本高。 你正在写邮件,突然想到要建个日程,得切换到Outlook,新建事件,填标题、时间、地点……一套流程下来至少30秒,思路早就断了。
AI助手解决这三个问题的逻辑很简单:
你说一句话,它帮你建好。你不用切换窗口,不用算时区,不用记任何操作步骤。
整体架构思路:WorkBuddy是怎么连上Outlook的?
在动手之前,你需要理解一件事:WorkBuddy本身并不会直接操作你的Outlook。中间需要一个"桥梁"。
这个桥梁叫 MCP(Model Context Protocol)。
MCP是Anthropic在2024年底提出的一个开放协议,它的作用是让AI助手能够安全地调用外部工具。你可以把它理解为一个"万能转接头"——AI助手是插头,各种外部服务(日历、邮件、数据库)是电器,AI直接插不上去,MCP就是中间那个转接头。
具体到我们的场景,架构是这样的:
你(说一句话) → WorkBuddy(AI助手,MCP客户端) → MCP Server(Outlook Assistant,桥梁) → Microsoft Graph API(微软哪些软件应用的接口) → 你的Outlook日历
你只需要跟WorkBuddy说"帮我建个日程",剩下的调用链路自动完成。
第一步:在Azure注册一个应用
这一步是必须的。微软要求任何访问用户数据的程序,都必须在Azure上注册并获得授权。
别被"Azure"这个词吓到,你不需要云服务器,不需要付费(一段时间免费,后续可能要收费),只是去微软的网站上填几个表单而已
1.1 打开Azure门户
用你的微软账号登录 https://portal.azure.com
如果你没有Azure账号,可以直接用你的Outlook/Microsoft 365账号登录,它会自动创建。
1.2 搜索"应用注册"
在顶部搜索框输入"应用注册(App registration)",点击进入。

1.3 新建注册
点击"新注册",填写以下信息:
• 名称:随便填,比如"WorkBuddy Calendar"


• 支持的账户类型:选择"任何组织目录中的账户和个人Microsoft账户"
划重点;这个选项很关键,如果你用的是个人Outlook账号(不是公司分配的),必须选这个。
1.4 配置重定向URI
在注册页面找到"重定向 URI"部分:
• 平台:选择"Web"• URI:填 http://localhost:3333/auth/callback
这个URI的作用是:当你在浏览器里完成登录授权后,微软会把你重定向回这个地址,告诉AI助手"授权成功了"。报错也没关系
1.5 允许公共客户端流
注册完成后,进入你刚创建的应用:
左侧菜单 → "身份验证" → 滚到最底部"高级设置" → "允许公共客户端流" → 设为"是"
这一步开启"设备码登录"功能,是后续免密钥登录的前提。
1.6 记录两个关键ID
在应用的"概述"页面,记下这两个值:
• 应用程序(客户端) ID:类似 ec5ab380-27b2-4c45-9fc9-xxxx-xxxxx• 目录(租户) ID:类似 8dd138ba-8aee-450c-xxxx-xxxxx
1.7 创建客户端密钥
左侧菜单 → "证书和密码" → "客户端密码"选项卡 → "新建客户端密码"
• 描述:随便填,比如"WorkBuddy"• 过期时间:建议选24个月
创建成功后,立刻复制"值"这一列的内容。
注意,这个值只显示一次。如果你关掉了页面,就只能删掉重新建一个。
1.8 添加API权限
左侧菜单 → "API权限" → "添加权限" → "Microsoft Graph" → "委托的权限"
勾选以下权限:
• offline_access — 允许后台自动刷新token• User.Read — 读取你的基本信息• Calendars.ReadWrite — 读写日历
如果你的需求不只是日历(还想管理邮件、联系人),可以额外添加 Mail.Read、Mail.ReadWrite、Contacts.Read 等。

第二步:配置WorkBuddy的MCP连接
Azure那边准备好了,现在回到WorkBuddy这边。
2.1 确认Node.js版本
打开命令行,输入:node -v
如果显示的版本低于 v20,你需要升级Node.js。去 https://nodejs.org 下载最新的LTS版本安装即可。
这步很重要,Outlook MCP Server依赖新版Node.js,旧版本会报模块找不到的错误。
2.2 编辑MCP配置文件
WorkBuddy的MCP配置文件位于:用户目录/.workbuddy/mcp.json
在Windows上,你的用户目录通常是 C:\Users\你的用户名。
用文本编辑器打开这个文件,修改为以下内容:
{ "mcpServers": { "outlook": { "command": "npx", "args": ["-y", "@littlebearapps/outlook-assistant"], "env": { "OUTLOOK_CLIENT_ID": "你的应用程序客户端ID", "OUTLOOK_CLIENT_SECRET": "你的客户端密钥值" } } }}
把"你的应用程序客户端ID"和"你的客户端密钥值"替换为第一步中获取的实际值。
****我的实际操作是把信息告诉Work Buddy 它来配置
2.3 重启WorkBuddy
配置文件修改后,必须完全关闭并重新打开WorkBuddy,MCP服务才会加载。
第三步:完成设备码认证
重启WorkBuddy后,第一次使用时需要进行一次认证。
在WorkBuddy的对话中输入"查看日历日程",AI会返回类似这样的信息:
请访问:https://login.microsoft.com/device输入代码:XXXXXXXX
操作步骤:
1. 在浏览器中打开上述链接2. 输入显示的代码3. 用你的微软账号登录4. 在权限确认页面点击"接受"
关键提醒: 完成登录后,要尽快告诉AI"已完成授权"。设备码认证有时间限制(通常15分钟),如果等太久,认证会超时,需要重新来。
认证成功后,token会被保存在本地,之后不需要再重复认证。
第四步:开始使用
4.1 查看日程
直接告诉WorkBuddy:
• "看看今天有什么安排"• "这周有什么会议"• "查一下明天下午的日程"
4.2 创建日程
用自然语言描述即可:
• "帮我建一个明天上午8点乘高铁去上饶"

4.3 修改和取消
• "把明天下午3点的会议改到4点"• "取消今天晚上的吃饭安排"
*** 这里注意,删除的日历需要点时间才能同步。
4.4 时区注意事项
如果你在中国,创建日程时AI会自动带上 +08:00(北京时间)时区标识。但如果你经常跟海外客户沟通,建议在创建时明确时区:
• "帮我建一个明天伦敦时间下午3点的会议"(UTC+0/+1)• "下周五纽约时间上午10点开会"(UTC-4/-5)
常见问题排查
问题一:MCP Server启动失败
症状:WorkBuddy重启后,调用日历功能没有任何反应。
排查步骤:
1. 打开命令行,输入 node -v,确认版本不低于v202. 打开命令行,输入 npx -y @littlebearapps/outlook-assistant,看是否有报错信息3. 如果报错包含"MODULE_NOT_FOUND",说明Node.js版本太低,需要升级
问题二:设备码认证超时
症状:输入代码登录后,AI提示"Request timed out"。
原因:从登录完成到AI调用完成认证之间,等待时间太长。
解决:重新发起认证,登录完成后立刻(不要超过1分钟)告诉AI已完成。
问题三:日程时间不对
症状:创建的日程在Outlook中显示的时间和你说的不一样。
原因:创建日程时没有带时区信息,API按UTC时间处理了。
解决:确认AI在创建时是否带了 +08:00 时区标识。
问题四:"Not authenticated"错误
症状:认证成功后过了一段时间,再次使用时提示未认证。
原因:Token过期了。
解决:重新进行设备码认证即可。正常情况下token会自动刷新,但如果长时间未使用可能会过期。
技术原理补充:如果你想深入了解
MCP协议的工作方式
MCP采用客户端-服务器架构:
• MCP Client:WorkBuddy等AI助手,负责发起调用• MCP Server:各种服务适配器(如Outlook Assistant),负责执行具体操作
两者之间通过JSON-RPC 2.0协议通信。当你说"查看日程"时,实际的通信过程是:
WorkBuddy → MCP Server:调用 list-events 工具 → MCP Server → Microsoft Graph API:GET /me/calendarView → 返回日程数据
Microsoft Graph API
Microsoft Graph是微软提供的统一API接口,通过一个入口可以访问Outlook邮件、日历、联系人、OneDrive、Teams等各种服务。我们这里只用了日历相关的API端点。
OAuth 2.0 设备码流程
我们使用的认证方式是OAuth 2.0的设备码授权流程,它的优点是:
• 不需要搭建认证服务器• 不需要公网可访问的回调地址• 适合命令行工具和本地应用
流程是:AI请求一个设备码 → 你在浏览器中输入代码并登录 → AI用这个设备码换取access token → 后续API调用都使用这个token。
写在最后
整个配置过程看起来步骤很多,但实际上你只需要做一次。Azure注册5分钟(熟练后,第一可能要15分钟),配置文件2分钟,认证1分钟。之后,你只需要一句话就能管理日历。
这就是AI工具的价值所在:把一次性学习的成本,转化为长期节省的时间。
你每天可能要建3-5个日程,传统方式每个耗时30秒,一天就是2-3分钟。一年下来就是12-15个小时。而用AI,每个日程只需要说一句话——5秒钟。
更重要的是,它消除了"忘记记录"的可能性。你不需要记住"待会儿要建个日程",因为你已经在跟AI说话的过程中完成了这件事。
如果你的工作中有大量日程管理需求,这个30分钟的投入,绝对值得。
夜雨聆风