# Zoho Bookings MCP MCP

> Zoho Bookings MCP handles all aspects of appointment scheduling for service businesses. You can use it to check staff calendars, find open time slots, list every available service type, and book or cancel client appointments—all through natural language conversation with your agent.

## Overview
- **Category:** industry-titans
- **Price:** Free
- **Tags:** appointment-scheduling, service-management, staff-availability, booking-automation, calendar-sync, client-appointments

## Description

Managing a practice's schedule is complex; you need to coordinate services, multiple staff members, and physical locations simultaneously. This MCP lets your AI agent handle the whole process using simple chat commands. Instead of juggling separate dashboards for staffing, booking, and service menus, you just ask: 'When can Dr. Chen see a patient next week?' The system immediately checks all staff schedules and available services to give you concrete time slots. Because we run this MCP on Vinkius, your credentials never sit on disk; they pass through a zero-trust proxy for total security. This lets you focus purely on scheduling without worrying about where or how the data is handled.

It’s built to coordinate staff members and services across multiple workspaces, ensuring every booking—and every cancellation—is processed accurately in one go.

## Tools

### book_appointment
Creates a new appointment record for a client.

### cancel_appointment
Removes an existing appointment from the schedule.

### get_staff_slots
Finds specific open time slots for a particular staff member.

### list_appointments
Retrieves a list of all scheduled bookings in the system.

### list_services
Fetches and displays every service offered by the business.

### list_staff
Provides a complete list of all staff members who can be scheduled.

### list_workspaces
Retrieves a full catalog of different operational work locations.

## Prompt Examples

**Prompt:** 
```
List all my upcoming appointments and check the available slots for Dr. Smith on May 15th.
```

**Response:** 
```
You have 3 upcoming appointments this week. For Dr. Smith (Staff ID: 8901), there are 4 available slots on May 15th: 09:00 AM, 11:30 AM, 02:00 PM, and 04:30 PM. Would you like to book one of these slots?
```

**Prompt:** 
```
Cancel my existing appointment with ID 'AP-2045' and book a new 'Technical Audit' session for tomorrow at 10 AM.
```

**Response:** 
```
I have successfully canceled appointment AP-2045. A new 'Technical Audit' session has been booked for tomorrow at 10:00 AM. Your confirmation number is AP-2099.
```

**Prompt:** 
```
Retrieve the full list of services we offer in the 'Downtown Clinic' workspace.
```

**Response:** 
```
In the 'Downtown Clinic' workspace, you currently offer 5 services: 'General Consultation' (30 mins), 'Specialist Review' (60 mins), 'Follow-up' (15 mins), 'Annual Checkup' (45 mins), and 'Vaccination' (10 mins).
```

## Capabilities

### Book a client appointment
You can ask your agent to schedule an appointment for a specific person at a defined time.

### Cancel existing appointments
The agent handles canceling a booking by ID or date, updating the record instantly.

### Find staff availability
You can check which specific team members have open time slots on any given day.

### View all services offered
The agent pulls a complete, current list of every service type the business provides.

### Manage staff details
You can retrieve a full roster and operational status for all team members.

### Organize multiple locations
The agent allows you to view and manage booking settings across different business workspaces.

## Use Cases

### A client calls with an urgent request.
The agent first uses `list_staff` to confirm Dr. Lee is available, then calls `get_staff_slots` for next Tuesday afternoon. It finds a 30-minute slot and immediately executes `book_appointment`, confirming the booking number right in the chat.

### The practice needs an audit of services.
Instead of clicking through five different tabs, you prompt the agent to run `list_services`. It returns a single, clean list that can be copied or reviewed immediately for billing purposes.

### A staff member leaves suddenly and appointments need rescheduling.
You ask the agent to find all bookings associated with the departing staff ID. Then you use `list_appointments` to see who is affected, followed by suggesting alternative slots using `get_staff_slots`.

### Setting up a new clinic location.
You first run `list_workspaces` to verify the main sites. Then you use the agent to add the new site via an internal process, ensuring all local booking rules are applied correctly.

## Benefits

- Stop manually checking calendars. Use the `get_staff_slots` tool to instantly confirm available times for any team member, preventing scheduling conflicts before they happen.
- Never lose track of services. The `list_services` tool gives you a real-time menu of all offerings, ensuring staff books clients for the correct procedure every time.
- Handle emergencies fast. You can use `cancel_appointment` or `book_appointment` to adjust schedules instantly without logging into the web portal.
- `list_staff` helps you see who is on duty today and check their availability against a client's needs, making coordination simple.
- Manage scale easily. The `list_workspaces` tool keeps all your different business locations organized in one place for scheduling purposes.

## How It Works

The bottom line is, you talk to your agent like a receptionist does, and it handles the complex backend logic for you.

1. First, connect your Zoho Bookings account using an API key.
2. Next, tell your AI client what needs scheduling or canceling (e.g., 'Cancel appointment AP-123').
3. Finally, the MCP executes the action against Zoho and returns a confirmation or list of available slots.

## Frequently Asked Questions

**How do I check staff availability using the `get_staff_slots` tool?**
You tell your agent which staff member you need slots for and what date. The MCP then returns a list of specific, available time blocks so you can proceed with booking.

**Can I use `list_appointments` to see my past bookings?**
Yes. Running the `list_appointments` tool retrieves all scheduled appointments associated with your account, letting you review history or find an ID for cancellation.

**Does Zoho Bookings MCP handle multiple office locations?**
Absolutely. You use `list_workspaces` to manage and view bookings across different physical business sites from a single connection.

**What data do I get from `list_services`? Can I see all available appointment types?**
It provides a complete catalog of every service offered in your account. This list includes the name, duration, and associated details for building dynamic booking flows.

**If an attempt to book fails using `book_appointment`, what does the error message indicate?**
The system returns specific failure reasons right away, such as time conflicts or if a staff member is unavailable. This allows your agent to immediately prompt for corrections.

**How can I get an up-to-date list of all available personnel using `list_staff`?**
This tool returns every active employee in the system, providing their unique identifiers and names. You must use this list to ensure you are checking slots for a valid staff member.

**When I run `cancel_appointment`, does it free up or change anything else besides the booking?**
It immediately marks the slot as vacant, making that time available again. This updated status allows your agent to recommend alternative bookings for the client.

**If I have a large number of appointments, what are the limitations when using `list_appointments`?**
The tool is designed for bulk retrieval but may encounter rate limits if you request an excessively large dataset in one call. It's best practice to filter by date range or use pagination.

**How do I find my Zoho Bookings Authtoken?**
Log in to your Zoho Bookings account, navigate to the API section in your settings, or use the Zoho Accounts portal to generate a permanent authtoken for API access.

**Can the AI agent check staff availability for a specific day?**
Yes! Use the `get_staff_slots` tool with the Staff ID, Service ID, and the target Date to see all available time slots for that day.