# NeetoCal MCP

> NeetoCal connects your scheduling page to your AI client, letting agents manage appointments and availability via natural conversation. You can list bookings, check specific person availability, create new meetings, or reschedule existing ones—all without opening a browser tab. It keeps your calendar synchronized with simple commands.

## Overview
- **Category:** industry-titans
- **Price:** Free
- **Tags:** appointment-booking, scheduling, team-availability, calendar-sync, meeting-automation

## Description

Listen up; this NeetoCal server gives your AI client total command over scheduling. You connect it once, and suddenly your agent can handle appointments and team availability just by chatting with you—no need to open a single browser tab or mess around in a dashboard. It’s like having a dedicated coordinator sitting right next to us.

**Checking and Making Appointments**
When you need the current status of the books, your agent pulls everything together using `list_bookings`, which shows every appointment currently scheduled on your calendar. Need to book something new? Your agent handles that instantly with `create_booking`. You just tell it when and who, and boom—it gets the meeting locked onto your official schedule. If you need full visibility into what calendars are even connected to NeetoCal, `list_calendars` gives you that list right away.

**Finding Team Availability**
Figuring out who’s free is simple, even if you're dealing with a whole crew. You can check the availability for one specific person using `get_availability`. If you need to see what multiple people or teams are doing across the board at once, your agent uses `list_availabilities` to pull that status list. These functions help find open slots, allowing the system to calculate precise time windows with `get_slots`. This means when someone asks 'When can we meet?'—the AI client doesn't guess; it knows exactly what's free.

**Managing Links and Schedules**
Your agent keeps track of all your booking channels. It pulls a list of every active scheduling link associated with NeetoCal via `list_scheduling_links`. If you only need the unique URL for one specific link, `get_scheduling_link` hands it to you immediately. You can also verify that the entire server connection is up and running by calling `check_neetocal_status`, giving you peace of mind about the setup.

**Modifying Existing Bookings**
Meetings change. Your agent handles those changes without hassle. If an appointment needs moving, it updates the date or time using `reschedule_booking`. You can retrieve all the fine print—like attendee names or meeting context—for a single existing booking by calling `get_booking`, which pulls all the details for one specified appointment. Need to pull a meeting entirely? Your agent removes it from your calendar with `cancel_booking`. If you ever need to see every active scheduling link, remember that `list_scheduling_links` gives you that list.

This setup means your AI client acts like an expert scheduler. It checks what’s open using `get_slots`, shows the details for one meeting via `get_booking`, and if anything changes—whether it's a cancellation with `cancel_booking` or moving the date with `reschedule_booking`—it updates everything automatically, keeping your whole system in sync. It manages every calendar connection you’ve set up.

## Tools

### cancel_booking
Removes an existing appointment from your calendar.

### check_neetocal_status
Verifies that the server connection is working correctly.

### create_booking
Schedules a brand new appointment onto your calendar.

### get_availability
Checks the availability for one specific person or team member.

### get_booking
Retrieves all the details for a single, specified appointment.

### get_scheduling_link
Gets the unique URL you use to book appointments.

### get_slots
Calculates and returns a list of open time slots for scheduling.

### list_availabilities
Lists the availability status across multiple people or teams at once.

### list_bookings
Shows a list of all appointments currently booked on your calendar.

### list_calendars
Lists every calendar connected to the NeetoCal account.

### list_scheduling_links
Retrieves a list of all active scheduling links associated with your account.

### reschedule_booking
Updates the time or date of an appointment that already exists.

## Prompt Examples

**Prompt:** 
```
List all active bookings in NeetoCal.
```

**Response:** 
```
I've retrieved your bookings. You have 5 active appointments including 'Discovery Call' with John Doe and 'Q4 Strategy'. Which one would you like to see more details for?
```

**Prompt:** 
```
Show me the available time slots for my 30-min Discovery Call link next Monday.
```

**Response:** 
```
I checked your 30-min Discovery Call scheduling link for next Monday. You have 6 available slots: 9:00 AM, 10:00 AM, 11:30 AM, 1:00 PM, 2:30 PM, and 4:00 PM. Your lunch block and the 3:00 PM team standup are correctly blocked off.
```

**Prompt:** 
```
Cancel the booking with ID bk_293847 and notify the attendee.
```

**Response:** 
```
Done. Booking bk_293847 (Product Demo with Sarah Chen on May 12th at 2:00 PM) has been cancelled. A cancellation email has been automatically sent to sarah.chen@acme.com with your configured cancellation message.
```

## Capabilities

### Check and create appointments
The agent can read existing bookings using `list_bookings` and make new ones instantly with `create_booking`.

### Find team availability
You use `get_availability` or `list_availabilities` to see which people are free at a specific time, identifying open slots for scheduling.

### Manage links and schedules
The agent retrieves or lists all your active scheduling links (`list_scheduling_links`) or gets the details of one link using `get_scheduling_link`.

### Modify existing bookings
If a meeting needs changing, you can reschedule it with `reschedule_booking`, get full details on an appointment via `get_booking`, or cancel it outright using `cancel_booking`.

## Use Cases

### Need to schedule an internal review with multiple stakeholders.
Instead of emailing five people and waiting for them to share their calendars, ask your agent to run `list_availabilities`. The agent checks all five team members' schedules against the requested time window and reports back only the open slots they all share. You book it immediately.

### A client asks you what times you are free next week.
Don't copy-paste a link. Just ask your agent to run `get_slots` for a 30-minute meeting on the target date. The agent returns clean, precise time blocks (e.g., '9:30 AM or 2:15 PM'), and you send that list directly.

### A booking needs to be cancelled with a notice.
You tell your agent: 'Cancel the meeting for ID bk_293847.' The agent executes `cancel_booking`, removes it, and sends out the necessary cancellation email automatically.

### The team needs to audit all active meetings.
You prompt: 'Show me all current appointments.' The agent runs `list_bookings` and gives you a summary of every meeting, including who is attending and when it's happening.

## Benefits

- Stop manually checking dashboards. Use `list_bookings` to instantly see all active meetings without opening the NeetoCal portal.
- Find time slots fast. Running `get_slots` calculates available meeting times immediately, saving you back-and-forth emails with your team.
- Full control over links. You can list every active scheduling link using `list_scheduling_links`, so nothing gets forgotten or outdated.
- Handle changes in one go. If a demo needs moving, calling `reschedule_booking` updates the calendar and records instantly.
- Know who’s free. Instead of guessing, use `get_availability` to check specific team members' schedules before committing to a time.

## How It Works

The bottom line is, your AI client runs scheduling commands against NeetoCal and gives you a direct answer—no dashboard required.

1. First, subscribe to the NeetoCal server and provide your API Key and Subdomain in your client settings.
2. Next, prompt your agent with a scheduling request (e.g., 'What's John Doe's availability next week?').
3. The agent calls the appropriate tool (`get_availability`, `list_bookings`, etc.) and returns the data directly to you in the chat.

## Frequently Asked Questions

**How do I check if a specific time slot is free using NeetoCal MCP Server?**
Run the `get_slots` tool. This function calculates and returns all open times for a given length (e.g., 30-minute) on a specified date, giving you immediate options.

**What is the difference between `list_bookings` and `get_booking` with NeetoCal MCP Server?**
`list_bookings` shows you a list of all appointments (e.g., 5 meetings total). `get_booking`, however, drills down to give you every specific detail for just one selected meeting.

**Can I change an appointment time using NeetoCal MCP Server?**
Yes, use the `reschedule_booking` tool. You just provide the booking ID and the new date/time, and the server handles updating the calendar records.

**How do I list all my active NeetoCal scheduling links?**
Call the `list_scheduling_links` function. This pulls a full list of every unique booking URL associated with your account, confirming they are all current and ready.

**How do I confirm my NeetoCal connection status using `check_neetocal_status`?**
Running `check_neetocal_status` confirms your API key is active and the server can reach your account. A successful response means you're ready to manage bookings; an error points directly to an incorrect API key or subdomain.

**When I use `cancel_booking`, does it handle notifying the attendee?**
Yes, the `cancel_booking` tool manages communication. It cancels the appointment and sends a predefined cancellation notice via email to all participants listed on that booking.

**What mandatory details must I provide when calling `create_booking`?**
You need specific information for successful creation: at minimum, you require the desired date, time window, and the names or email addresses of all participants involved in the meeting.

**How can I get a full picture of team capacity using `list_availabilities`?**
`list_availabilities` aggregates open slots across multiple calendars simultaneously. This lets you track overall team throughput and find shared availability without checking individual schedules one by one.

**Can my AI automatically find the details for a specific booking by its ID?**
Yes! Use the `get_booking` tool with the Booking ID. Your agent will respond with complete metadata for the appointment, including participant info, event type, and duration in seconds.

**How do I find my NeetoCal API Key?**
Log in to your NeetoCal account, navigate to **Settings** > **API**, and you will find your unique secret token there.

**What is the subdomain?**
The subdomain is the unique prefix in your NeetoCal URL (e.g., if you log in at `my-company.neetocal.com`, your subdomain is `my-company`).