When2Meet MCP Server
About
This is a Model Context Protocol (MCP) server that provides integration with When2Meet. It allows users to specify availability in natural language, and for LLMs to fill out their when2meet in their place.
Details
- Author
- joyce-yuan
- Downloads
- 138
- Categories
- Other
Jump to
- Extract event details from any When2Meet URL
- Smart time selection with natural language, codes, or timestamps
- Automated availability marking without manual clicking
- Native MCP integration for AI assistant connectivity
- Multiple input formats for time slot selection
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
When2Meet MCP ServerCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Clone the repository, run npm install, then start the server with node when2meet-server.js. Use the four provided tools (get-event-details, generate-availability-prompt, parse-availability-selections, mark-when2meet-availability) via an MCP client, such as the included client.js or any AI assistant supporting the Model Context Protocol.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"when2meet mcp server": {
"when2meet-mcp": {
"command": "node",
"args": [
"when2meet-server.js"
]
}
}
}
}
McpServers
{
"when2meet-mcp": {
"command": "node",
"args": [
"when2meet-server.js"
]
}
}
When2Meet MCP Server
An AI-powered scheduling assistant that automates When2Meet availability marking through the Model Context Protocol (MCP). This tool helps users extract event details, select time slots, and automatically mark availability on When2Meet scheduling polls.
Features
- 🔍 Extract Event Details: Automatically scrape and parse When2Meet events
- 🗣️ Smart Time Selection: Select time slots using natural language, codes, or direct timestamps
- 🤖 Automated Availability Marking: Mark your availability without manual clicking
- 🔌 MCP Integration: Connect with any AI assistant that supports the Model Context Protocol
Quick Start
Installation
git clone https://github.com/joyce-yuan/when2meet-mcp.git
cd when2meet-mcp
npm install
Running the MCP Server
node when2meet-server.js
Running the MCP Client for Testing
node client.js
Supported Tools
1. get-event-details
Extracts information from any When2Meet URL.
// Example response
{
"name": "Team Meeting",
"dateRange": "April 7-9, 2025",
"availableTimeslots": {
// Structured time slot data with timestamps
}
}
2. generate-availability-prompt
Creates a structured selection prompt with all available time slots.
[d0t0] 9:00 AM (1744549200)
[d0t1] 9:15 AM (1744550100)
3. parse-availability-selections
Converts selections into actual timestamps using multiple input formats:
- Slot codes (d0t0 d1t2)
- Time patterns (morning0 day1)
- Direct timestamps (1744549200, 1744550100)
4. mark-when2meet-availability
Automatically marks your availability on When2Meet using browser automation.
Example Client Usage
const { Client } = require("@modelcontextprotocol/sdk/client/index.js");
const { StdioClientTransport } = require("@modelcontextprotocol/sdk/client/stdio.js");
// Create client transport
const transport = new StdioClientTransport({
command: "node",
args: ["when2meet-server.js"]
});
// Initialize client
const client = new Client(
{ name: "when2meet-client", version: "1.0.0" },
{ capabilities: { prompts: {}, resources: {}, tools: {} } }
);
// Connect and use tools
await client.connect(transport);
// Get event details
const eventDetails = await client.callTool({
name: "get-event-details",
arguments: { eventUrl: "https://www.when2meet.com/your-event-id" }
});
// Mark availability
await client.callTool({
name: "mark-when2meet-availability",
arguments: {
eventUrl: "https://www.when2meet.com/your-event-id",
userName: "Your Name",
timestamps: [1744549200, 1744550100]
}
});
Use Cases
- AI Assistant Integration: Let AI assistants handle scheduling for you
- Automated Scheduling: Schedule meetings without manual intervention
- Natural Language Scheduling: Express availability in plain English
- Bulk Availability Marking: Mark multiple time slots at once
Requirements
- Node.js 18+
- @modelcontextprotocol/sdk (^1.8.0)
- puppeteer
- zod
License
MIT
Upcoming Integrations
- Support for Google Calendar direct schedulingSign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



