MCP Server
Give your AI assistant full access to your scheduling universe — event types, availability, bookings, contacts, webhooks, workflows, settings, and communication history.
32 tools. 10 domains. 3 lines of config.
Overview
The LinkTime MCP Server implements the Model Context Protocol — an open standard that lets AI assistants interact with external tools. Instead of copy-pasting data, your AI can directly check your calendar, book meetings, manage availability, set up webhooks, create automations, and review communication history.
Works with Claude Desktop, Cursor, Claude Code, Windsurf, and any MCP-compatible AI client.
Quick Setup
1. Get your API key
Go to Settings → API Keys and create an API key. Requires Pro or Business plan.
2. Add to your AI client
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"linktime": {
"command": "npx",
"args": ["-y", "linktime-mcp"],
"env": {
"LINKTIME_API_KEY": "lt_live_..."
}
}
}
}Cursor
Add to .cursor/mcp.json in your project:
{
"mcpServers": {
"linktime": {
"command": "npx",
"args": ["-y", "linktime-mcp"],
"env": {
"LINKTIME_API_KEY": "lt_live_..."
}
}
}
}Claude Code
claude mcp add linktime -- npx -y linktime-mcp
Then set LINKTIME_API_KEY in your environment.
Windsurf / VS Code
Use the same npx -y linktime-mcp command in your editor's MCP settings.
How It Works
AI Assistant ←→ MCP Protocol (stdio) ←→ linktime-mcp ←→ LinkTime REST API
- The server runs locally on your machine — your API key never leaves your environment
- Uses stdio transport — no network ports, no HTTP server
- Zero state — every tool call is a fresh API request
- Requires Node.js 18+ (uses native fetch)
Tools Reference
32 tools across 10 domains. Your AI assistant sees all tools and picks the right ones for each request.
Scheduling (5 tools)
list_event_typesList your event types — name, duration, slug, location type, price
check_availabilityGet available slots for an event type on a date range (returns exact UTC times)
create_bookingBook a meeting (startTime must come from check_availability)
cancel_bookingCancel a booking with optional reason
reschedule_bookingMove a booking to a new time (newStartTime must come from check_availability)
Meetings (2 tools)
list_bookingsList meetings — filter by date range, status, and pagination
get_bookingFull meeting details — time, guest, event type, link, notes, status
Contacts (5 tools)
list_contactsSearch contacts by name, email, or company with meeting counts
get_contactContact profile with full meeting history (upcoming + past)
create_contactAdd a new contact (errors if email already exists)
update_contactUpdate contact fields — only provide what changed
delete_contactPermanently remove a contact
Communication (2 tools)
list_conversationsSMS and WhatsApp message threads with full content and timestamps
list_call_historyVoice call logs — duration, outcome, AI agent, date
Context (1 tool)
get_meYour LinkTime profile — name, email, username, plan
Event Management (3 tools)
create_event_typeCreate a new event type with name, duration, location, buffer times, scheduling limits
update_event_typeUpdate an event type — only provide fields you want to change
delete_event_typePermanently delete an event type (existing bookings are NOT cancelled)
Availability (5 tools)
get_availability_rulesGet your weekly availability schedule — days and hours per day of week
update_availability_rulesSet your weekly availability (replaces all existing rules)
list_availability_overridesList date-specific blocks or custom hours (overrides weekly rules)
create_availability_overrideBlock a date or set custom hours — vacations, holidays, etc.
delete_availability_overrideRemove an override, restoring default weekly schedule
Settings (3 tools)
get_settingsAccount settings — timezone, format, buffer defaults, meeting limits, focus time
update_settingsUpdate timezone, buffers, daily cap, min gap, focus time blocks
list_integrationsConnected integrations — calendars, video, CRM, payments
Webhooks (4 tools)
list_webhooksList webhook endpoints with delivery counts and status
create_webhookCreate a webhook — returns signing secret (shown only once)
update_webhookUpdate URL, subscribed events, name, or active status
delete_webhookPermanently delete a webhook endpoint
Workflows (2 tools)
list_workflowsList automation workflows — trigger, actions, enabled status, execution count
create_workflowCreate an automation — email, SMS, webhook, Slack, or AI call on booking events
Example Conversations
Here's how AI assistants use LinkTime tools in practice:
“Book a meeting with Sarah”
User: Book a 30-minute call with Sarah Chen tomorrow afternoon
AI uses: list_event_types → finds "30-Minute Call"
AI uses: check_availability → gets tomorrow's slots
AI uses: create_booking → books 2:00 PM slot
AI: Done! Booked a 30-minute call with Sarah Chen tomorrow at 2:00 PM ET.
She'll receive a confirmation email with the meeting link.“What's my schedule this week?”
User: What meetings do I have this week?
AI uses: list_bookings → fetches Mon-Fri confirmed bookings
AI: You have 4 meetings this week:
- Mon 10am: Product Demo with Alex Rivera
- Tue 2pm: Quick Call with Sarah Chen
- Wed 11am: Strategy Session with Jordan Lee
- Fri 3pm: Intro Call with [email protected]“Reschedule tomorrow's meeting”
User: Push my meeting with Alex to Thursday AI uses: list_bookings → finds Alex's booking AI uses: check_availability → gets Thursday slots AI: Thursday slots: 9am, 10:30am, 2pm, 3:30pm. Which? User: 10:30 AI uses: reschedule_booking → moves to Thursday 10:30am AI: Done! Alex will get an email with the updated time.
“Block off next week for vacation”
User: I'm on vacation next week, block my calendar
AI uses: create_availability_override → blocks Mon-Fri
(5 calls, one per day, reason: "Vacation")
AI: Done! Your calendar is blocked March 10–14.
No one can book meetings with you that week.
I can remove these blocks anytime with delete_availability_override.“Create a new event type”
User: Create a 15-minute "Quick Chat" event with Zoom
AI uses: create_event_type → name: "Quick Chat", slug: "quick-chat",
durationMinutes: 15, locationType: "ZOOM"
AI: Created! Your new "Quick Chat" event is live at
linktime.io/yourname/quick-chat — 15 minutes on Zoom.“Set up a webhook for new bookings”
User: Send a webhook to my server when someone books a meeting
AI uses: create_webhook → url: "https://api.example.com/bookings",
events: ["booking.created", "booking.cancelled"]
AI: Webhook created! Your signing secret is whsec_abc123...
Save it now — it won't be shown again.
You'll receive POST requests for new bookings and cancellations.“Tell me about this person”
User: What do I know about Sarah Chen?
AI uses: list_contacts → searches "Sarah Chen"
AI uses: get_contact → full profile + meeting history
AI: Sarah Chen — VP Engineering at Acme Corp
You've met 4 times. Last meeting: Product Demo (Nov 18).
Notes: "Interested in enterprise plan. Budget review in Q1."“How did my calls go this week?”
User: How did my voice agent calls go this week?
AI uses: list_call_history → filters from Monday, status "all"
AI: 8 calls this week:
- 5 completed (avg 2m 15s) — 3 resulted in bookings
- 2 no answer
- 1 failed (caller hung up after 5s)
Your "Sales Agent" handled all of them.Environment Variables
| Variable | Required | Description |
|---|---|---|
| LINKTIME_API_KEY | Yes | Your API key (lt_live_...) |
| LINKTIME_BASE_URL | No | Override API base URL (defaults to https://linktime.io) |
Troubleshooting
“LINKTIME_API_KEY environment variable is required”
Make sure your API key is set in the env section of your MCP config, not as a system environment variable.
“unauthorized” error
Your API key may be invalid or expired. Generate a new one at Settings → API Keys.
Tools not appearing in your AI assistant
Restart your AI client after updating the MCP config. Verify the server starts by running npx -y linktime-mcp in your terminal — it should print “LinkTime MCP server running” to stderr.
“rate_limited” error
The API allows 60 requests per minute. Your AI assistant will back off automatically.
“not_found” errors when creating bookings
The eventTypeSlug must match an active event type. Use list_event_types first to find valid slugs.
Related Documentation
Need help?
Our support team can help you set up the MCP server.
Contact Support →