
在不同人和组织之间找到会议时间,无需共享日历:MCP服务器、网页界面和电子邮件,大家投票决定组织者提出的时段。
概览
找到跨部门和组织的会议时间,且没有人共享他们的日程。 组织者(或其AI代理)会提出已经适合他们的候选人时间。每个人邀请投票,或每次邀请投票,无论是他们使用的支持MCP代理(Claude Desktop、Claude Code、GitHub Copilot、RockBot等),还是邀请邮件中链接的网页。服务器从不读取日历:每个人的代理查看自己的日历,服务器只会学习投票结果。 完整设计请参见docs/design.md,关于在已部署服务器上设置登录的docs/identity-setup.md。
概述(AI 翻译)
找到跨部门和组织的会议时间,且没有人共享他们的日程。
组织者(或其AI代理)会提出已经适合他们的候选时间。邀请所有人 每次都由他们使用支持MCP的代理进行优先、必要时或否**的投票 (Claude Desktop、Claude Code、GitHub Copilot、RockBot 等)或者从邀请函中链接的网页 电子邮件。服务器从不读取日历:每个人的代理人会查看自己的日历,然后 服务器只能学会投票结果。
完整设计请参见docs/design.md,以及 docs/identity-setup.md 用于在已部署服务器上设置登录功能。
和副官配合得很好
Scheduler 故意从不查看日历,因此每个人的客服都需要自己的日历工具。 Adjutant(日历-mcp)是一个MCP服务器,提供一个代理 邮件、日历和联系人,跨Microsoft 365、Outlook.com、Google Workspace 和 IMAP 账户。两者都支持。 连接后,代理可以完成整个循环:
- 组织: 找助理的空闲时间
find_available_times,然后用排程员提议create_event。
本页由 AI 翻译,技术细节请以原文为准。
README
以下为原文 README 节选,完整内容请查看原文。
Scheduler
Find a meeting time across people and organizations without anyone sharing their calendar.
The organizer (or their AI agent) proposes candidate times that already work for them. Everyone invited votes preferred, if necessary or no on each time, from whichever MCP-capable agent they use (Claude Desktop, Claude Code, GitHub Copilot, RockBot, …) or from a web page linked in the invitation email. The server never reads a calendar: each person’s own agent checks their own calendar, and the server only ever learns the votes.
See docs/design.md for the full design, and docs/identity-setup.md for setting up sign-in on a deployed server.
Works well with Adjutant
Scheduler deliberately never sees a calendar, so each person’s agent needs calendar tools of its own. Adjutant (calendar-mcp) is an MCP server that gives an agent email, calendar and contacts across Microsoft 365, Outlook.com, Google Workspace and IMAP accounts. With both connected, an agent can do the whole loop:
- Organizing: find free times with Adjutant’s
find_available_times, then propose them with Scheduler’screate_event. Once a time is picked (finalize_event), create the real meeting with Adjutant’screate_eventand report it back withrecord_calendar_event. - Being invited: find Scheduler’s invitation emails (subjects start with
[sched:CODE]) with Adjutant’ssearch_emails, check each proposed time againstget_calendar_events, thenvote, and accept the organizer’s real invitation later withrespond_to_event.
Neither needs the other: any calendar MCP server works, and people without an agent vote from the link in the invitation email.
Status
Version 1 is complete (roadmap steps 1 to 5 in the design doc) and runs in production:
- MCP endpoint (
/mcp) with every tool, both prompts and the server instructions - Sign-in: Microsoft and Google for the browser, OAuth for MCP clients (this app is its own authorization server, federating to the same providers), personal access tokens for headless agents such as RockBot, and an emailed link for addresses a provider doesn’t verify
- Web UI: the voting page opened from the invitation email, the organizer’s dashboard, compose and event pages (live as votes arrive), account and admin pages
- Email: plain-text and HTML messages through an outbox and any SMTP relay, one-click unsubscribe, and reminder, deadline, retention and time-zone jobs
- Rate limits, per-organizer limits, and the Kubernetes deployment (
k8s/, docs/deployment.md)
Next (v1.1 in the design doc): a long-running wait_for_update task, RockBot integration, and an .ics
invite for organizers without a calendar MCP server.
Layout
| Path | What |
|---|---|
src/Scheduler.Core |
Domain model and rules. No infrastructure dependencies. |
安装
This server does not publish a one-line install command.
Open the repository installation guide 新手?先看 mcpskill.org 教程 →