MS

marimerllc/scheduler

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

0 stars 0 forks Качество 63 Тренд 14MIT

Find a meeting time across people and organizations without sharing calendars: an MCP server, web UI and email, where everyone votes on the organizer's proposed slots.

Обзор

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 , or 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.

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’s create_event. Once a time is picked (finalize_event), create the real meeting with Adjutant’s create_event and report it back with record_calendar_event.
  • Being invited: find Scheduler’s invitation emails (subjects start with [sched:CODE]) with Adjutant’s search_emails, check each proposed time against get_calendar_events, then vote, and accept the organizer’s real invitation later with respond_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.
Открыть полный README на GitHub

Установка

This server does not publish a one-line install command.

Open the repository installation guide Новичок в MCP? Начните с руководства на mcpskill.org →