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. It’s included free in every edition, including the WordPress.org free plugin — no add-on, no upgrade required.

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 eight calendar tools.

webcalendar_list_events

Search events by date range, user, or category.

webcalendar_get_event

Get full details for a specific event.

webcalendar_list_users

List calendar users and shared/remote calendars.

webcalendar_list_categories

See all your calendar categories and colors.

webcalendar_get_calendar_info

Get calendar stats and configuration.

webcalendar_create_event

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

webcalendar_update_event

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

webcalendar_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. The AI page also shows the current tool-access state and lets you enable Read-Only Mode if you want to prevent assistants from changing your calendar — see Read-Only Mode below.

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

Bearer token alternative. Some clients — such as Claude’s API mcp_servers connector — can only send a Bearer token, not Basic auth. WebCalendar accepts the same Base64 credential as a Bearer token: use Authorization: Bearer YWRtaW46QUJDRGVm... with the exact value you Base64-encoded above. Both forms authenticate identically.

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.

Read-Only Mode

Not comfortable letting an AI assistant create, move, or delete events? Turn on Read-Only Mode under WebCalendar → Settings → AI Read-Only Mode (also surfaced on the WebCalendar → AI page). When enabled, assistants can still list and view events and categories, but the webcalendar_create_event, webcalendar_update_event, and webcalendar_delete_event tools are hidden from tools/list and rejected by tools/call — so an assistant cannot change your calendar even if it tries.

Read-Only Mode is off by default (full read/write). The AI page shows the current tool-access state and flags which tools are disabled, and the behavior is filterable via webcal_mcp_read_only for programmatic overrides.

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.
• For view-only assistants, enable Read-Only Mode so the create, update, and delete tools are never exposed — a belt-and-suspenders complement to using a low-privilege account.

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.