WebCalendar MCP Guide

Connect Your AI Assistant to Your Calendar

WebCalendar includes a built-in MCP server that lets AI assistants like Claude, ChatGPT, Cursor, and others interact directly with your WordPress calendar. List events, create recurring schedules, reschedule meetings, and more — all through natural conversation.

What is MCP?

MCP (Model Context Protocol) is an open standard that lets AI assistants connect to external tools and data sources. Think of it like a USB port for AI: instead of copy-pasting calendar details into a chat window, your AI assistant connects directly to your calendar and can read and write events on your behalf.

When you ask your AI “What’s on my calendar next week?” or “Schedule a team meeting for Friday at 2pm,” the AI calls WebCalendar’s MCP tools behind the scenes to get real answers and take real actions.

stdio (the older approach)

With stdio, the AI client launches a local program on your computer and talks to it through standard input/output — like a command-line program running in the background. This works well for local tools (file systems, databases on your machine), but it means the server must run on the same computer as your AI client.

Streamable HTTP (what WebCalendar uses)

With Streamable HTTP, the MCP server is a web endpoint — part of your WordPress site’s REST API. Your AI client sends standard HTTP requests to your site and gets JSON responses back. Works from anywhere. No extra software to install. Standard web security via HTTP headers.

What Can Your AI Do?

Once connected, your AI assistant has access to seven calendar tools.

list-events

Search events by date range, user, or category.

get-event

Get full details for a specific event.

list-categories

See all your calendar categories and colors.

get-calendar-info

Get calendar stats and configuration.

create-event

Create a new event with recurrence, participants, location, and more.

update-event

Modify an existing event’s time, title, description, or recurrence.

delete-event

Remove an event from the calendar.

Try These Prompts

• “What events do I have next week?”
• “Create a team standup every weekday at 9am starting Monday”
• “Move my dentist appointment to Thursday at 3pm”
• “How many events are on the calendar this month?”
• “Delete the meeting called ‘Budget Review’”
• “What categories do we have?”

Setup Guide

Get connected in four steps. The whole process takes about five minutes.

Step 1: Verify MCP is Enabled

MCP is enabled by default in WebCalendar. To confirm:

1. Go to WebCalendar → Settings in your WordPress admin.
2. Look for the AI/MCP Integration checkbox.
3. Make sure it’s checked.

You can also visit the WebCalendar → AI page for a status dashboard, test button, and configuration help.

Step 2: Create a WordPress Application Password

Your AI client needs credentials to authenticate with your WordPress site. Application Passwords are the secure way to do this — they’re separate from your login password and can be revoked individually.

1. Go to Users → Profile in your WordPress admin.
2. Scroll to the Application Passwords section.
3. Enter a name like “Claude Desktop” or “MCP Access.”
4. Click Add New Application Password.
5. Copy the generated password immediately — WordPress only shows it once.

Note: If you don’t see the Application Passwords section, your site may be running over plain HTTP. WordPress requires HTTPS for Application Passwords by default.

Step 3: Build Your Authorization Header

MCP clients authenticate using an HTTP Authorization header with Basic authentication. Take your WordPress username and the application password (spaces removed), join them with a colon, and Base64-encode the result.

Mac/Linux:

echo -n "admin:ABCDefgh1234WXYZ5678klmn" | base64

Windows PowerShell:

[Convert]::ToBase64String(
  [Text.Encoding]::ASCII.GetBytes("admin:ABCDefgh1234WXYZ5678klmn")
)

Your full header value is: Basic YWRtaW46QUJDRGVm...

Step 4: Test the Connection

From your AI client: Ask “What calendar info do you have?” If you get real data back, you’re connected.

From WordPress admin: Visit WebCalendar → AI and click the Try It button to run a self-test.

From the command line:

curl -X POST \
  https://yoursite.com/wp-json/webcal/v1/mcp \
  -H "Content-Type: application/json" \
  -H "Authorization: Basic YOUR_TOKEN" \
  -d '{"jsonrpc":"2.0","id":1,
       "method":"tools/list","params":{}}'

Client Configuration

Configuration varies by AI client. Here are the most common ones.

Claude Desktop

Edit your Claude Desktop configuration file:

Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "webcalendar": {
      "url": "https://yoursite.com/wp-json/webcal/v1/mcp",
      "headers": {
        "Authorization": "Basic YOUR_BASE64_TOKEN"
      }
    }
  }
}

Restart Claude Desktop after saving.

Claude Code (CLI)

claude mcp add webcalendar \
  --transport http \
  "https://yoursite.com/wp-json/webcal/v1/mcp" \
  --header "Authorization: Basic YOUR_BASE64_TOKEN"

Cursor / Windsurf / VS Code + Copilot

These editors support MCP through their settings. The information you need:

Server URL: https://yoursite.com/wp-json/webcal/v1/mcp
Transport: Streamable HTTP
Authorization header: Basic YOUR_BASE64_TOKEN

Check your editor’s MCP documentation for where to enter these values.

ChatGPT

ChatGPT supports MCP connections for Plus and Team users. Add WebCalendar as a remote MCP server using:

Server URL: https://yoursite.com/wp-json/webcal/v1/mcp
Authentication type: HTTP header
Header name: Authorization
Header value: Basic YOUR_BASE64_TOKEN

Permissions & Security

WebCalendar’s MCP server respects WordPress’s capability system. The tools available to your AI depend on your user role.

Viewing

Requires webcal_can_view. Private and Confidential events are filtered based on the authenticated user’s permissions.

Editing

Requires webcal_can_edit. Non-admin users can only edit their own events.

Deleting

Requires webcal_can_delete. Non-admin users can only delete their own events.

Security Best Practices

• Your Application Password grants the same access as your WordPress account. Use a dedicated account with only the permissions your AI needs, rather than an admin account.
• Application Passwords can be revoked at any time from Users → Profile without affecting your regular login.
• All MCP requests go through WordPress’s standard REST API infrastructure, including any security plugins or firewall rules you have in place.

Troubleshooting

“Authentication required” error

• Double-check your Base64 encoding. The most common mistake is including a newline or leaving spaces in the application password.
• Verify the Application Password hasn’t been revoked in Users → Profile.
• Make sure you’re using Basic (with a space) before the Base64 token.

Connection refused or timeout

• Confirm your site URL is correct and accessible from where your AI client is running.
• Check that your site’s REST API is accessible: visit https://yoursite.com/wp-json/ in a browser.
• Some security plugins block REST API access. You may need to whitelist the /webcal/v1/mcp endpoint.

Application Passwords section missing

Your site must use HTTPS for Application Passwords to appear. For local development, add this filter to enable them over HTTP:

add_filter( 'wp_is_application_passwords_available', '__return_true' );

Tools show up but operations fail

• Check that your WordPress user has the required WebCalendar capabilities for the operation (view, edit, or delete).
• Visit WebCalendar → AI in your WordPress admin to run the built-in self-test.

WordPress 6.9+ Abilities API

If your site runs WordPress 6.9 or later, WebCalendar also registers its tools through the native WordPress Abilities API. This means WordPress itself can surface your calendar tools to compatible AI assistants without any manual MCP configuration. The built-in MCP server continues to work alongside the Abilities API for clients that connect directly.