Manage calendar scheduling, bookings, and availability on Cal.com directly from your AI workflows. Create, reschedule, confirm, and cancel bookings, manage availability schedules and event types, and query open time slots and busy times — built for scheduling assistants and automated booking workflows.
OpenCode is an open-source agent for the terminal. Remote MCP servers go in its config file and sign in through OAuth.
This guide connects Cal to OpenCode through MewCP, so OpenCode can use Cal's 19 tools, like get_my_profile, get_event_types and get_event_type, without your Cal credentials ever reaching the app.
Your Cal API key is stored encrypted and injected only at call time. Your agent never holds it, so it can never leak it, log it or paste it into a prompt.
More apps
Manage events, schedules and availability across Google Calendar. Create meetings, coordinate calendars, track availability and automate scheduling workflows.
Microsoft Outlook MCP Server gives AI agents full control over Outlook email and calendar workflows, including reading and sending emails, managing attachments, organizing mail, scheduling and updating meetings, managing contacts, and creating tasks.
Create, schedule and manage Google Meet sessions for video collaboration. Work with meetings, participants, recordings and conferencing workflows across your organization.
Nylas MCP Server lets AI agents access and manage email, calendar, and contacts across connected providers through Nylas, enabling agents to search and send messages, schedule and manage events, and work with contact data.
Other clients
Cal works the same way in every client below. Pick yours for its own guide.
Free to start.
Scope access to the exact Cal tools and accounts you allow, work and personal side by side. Anything outside that scope is refused at call time, even when the model asks for it.
Each call is logged: what ran, on which account, and whether it worked. Failures come back structured, so the agent knows whether to retry instead of guessing.
Every app sits behind one secure MCP URL, and there is no server for you to deploy or keep running. Add an integration in the dashboard and it is live on the next call, with no config to change and no new credentials to wire up. Tools load only when a task needs them, so your agent stays fast and focused however many apps you connect.
Edit ~/.config/opencode/opencode.json, or opencode.json in your project root.
Start a new chat and ask: "List the tools you can use from MewCP." You should see your connected apps.
Get authenticated user profile from Cal.com
List all event types for the user
Get a specific event type by ID
Create a new event type
Get all bookings for the user
Get a specific booking by ID
Create a new booking
DESTRUCTIVE — REQUIRES EXPLICIT USER CONFIRMATION BEFORE CALLING. Cancel a booking. Permanently cancels the booking identified by `booking_id`, releasing its time slot and notifying the host and every attendee. This action is irreversible — the cancelled booking and its confirmed slot cannot be recovered. NEVER call this tool autonomously or as part of an automated flow. You MUST stop, tell the user exactly which booking will be cancelled and that it is permanent, and wait for their explicit written confirmation before proceeding. The response includes the booking's state before cancellation.
Reschedule an existing booking. Only the fields you provide are changed — others keep their current value. NOTE: this overwrites the current start and end times — the original state is not stored after the call. The response includes both the before and after state so you have a full record of what changed.
Confirm a pending booking. Only the fields you provide are changed — others keep their current value. NOTE: this overwrites the booking's current status — the original state is not stored after the call. The response includes both the before and after state so you have a full record of what changed.
Mark a booking as absent. Only the fields you provide are changed — others keep their current value. NOTE: this overwrites the booking's current attendance state — the original state is not stored after the call. The response includes both the before and after state so you have a full record of what changed.
Get all schedules for the user
Get a specific schedule by ID
Get default schedule
Create a new schedule
Get available time slots
Get busy times from calendars
Get organization memberships
Get organization routing forms