用 Claude、ChatGPT 和 Cursor 安排日程:WhenToMeet 的 MCP 服务器

我们没有在 WhenToMeet 里装一个 AI 助手。你已经有一个了。

如果你在用 Claude、ChatGPT 或 Cursor,你已经在付费的那个助手,比我们能塞进侧边栏的任何聊天机器人都有用。它缺的只是一个许可——去碰你的日历。这就是 MCP 服务器给它的东西。

一段话讲完 MCP

MCP(Model Context Protocol)是一套很小的规范,用来把工具暴露给一个 LLM 客户端。客户端连到服务器,读一份类型明确的工具列表,在对话需要的时候调用它们。它是插头,不是灯泡。WhenToMeet 跑这个服务器;你选的助手是客户端。

Endpoint 是 POST /api/mcp,无状态 HTTP 传输,和 REST v1 用同一套 API key。

怎么装

在你的 MCP 客户端——Claude Desktop、带 connector 的 ChatGPT、Cursor 或其他——添加一条 server 配置,指向 https://whentomeet.com/api/mcp,把你的 API key 作为 Bearer token。不同客户端的配置写法略有差异;docs.whentomeet.io 上有常见客户端的 copy-paste 片段。

连上之后,助手能看到七个工具:

  • list_polls —— 你的 scheduling poll 和 direct event
  • get_poll —— 单个事件,含所有 slot 和参与者投票
  • create_poll —— 新建一个 scheduling event
  • list_bookings —— 通过 booking page 进来的预约
  • list_calendar_events —— 跨所有已连接日历的统一 feed
  • check_conflicts —— 这个提议时段有没有和已有安排冲突
  • get_user_profile —— 你的订阅层级、时区、偏好

这就是今天的全部表面。

真的有效的 prompt

泛泛的 prompt 产出泛泛的调用。下面这些是有效的:

"我下周二 10 点到 16 点之间日历上有什么?用 list_calendar_events 查这个区间。"

"我明天早上想要一段 2 小时的专注时间。用 check_conflicts 检查我的日历,给我三个空闲的开始时间。"

"建一个叫 'Q3 规划' 的 scheduling poll,在 2026-05-04 到 2026-05-06 之间排六个一小时的 slot,只在工作时段。"

"把我过去 30 天的 booking 汇总一下——谁预约了什么,有几个 no-show。"

"根据我这周日历上的事,起草一份明天 standup 的 agenda。"

规律是:想控制就点名那个 tool,不想控制就描述结果。Claude 和 GPT 都很会从描述里挑对工具。

它现在还做不到的事

MCP 表面不是产品的全部。当前这个助手还不能:

  • 替你在别人的 poll 上投票
  • 编辑或取消一个已有事件
  • 读取或修改 booking page 的设置
  • 做任何需要代你在第三方日历上走 OAuth 的事情——那一步在我们界面上走一次,之后 MCP 服务器看到的就是统一后的数据

这些是我们会根据大家实际的请求去补的缺口。你想要的工具如果没有,告诉我们。

Rate limit 和 key

MCP 服务器用和 REST v1 一样的 key,共享一样的 per-key 限额。正常对话式使用——每次会话十几次 tool call——离天花板差得远。如果你要跑批量任务,直接用 REST endpoint,那才是它的用途。

API 访问是 Pro 才有的。在设置里生成一把 key,贴到你的 MCP 客户端配置里,就完了。

为什么我们这样做

我们本来可以在 app 里建一个聊天面板,demo 效果会很好。但是你已经在用的那个助手更强,已经在你工作流里,还有我们永远拿不到的上下文。给它一个干净的日历表面,比给你一个削弱版的 Claude 嵌在 WhenToMeet 里要值钱得多。

完整的 setup 文档和最新的 tool 参考都在 docs.whentomeet.io。