# SavvyCal MCP

> SavvyCal connects your calendar to any AI agent. It lets your agent act as a scheduling assistant without you opening 15 browser tabs. Use SavvyCal to manage booking links, check real-time availability windows, and programmatically cancel meetings just by talking to your AI client.

## Overview
- **Category:** productivity
- **Price:** Free
- **Tags:** meeting-coordination, booking-links, availability-constraints, scheduling-automation, time-management

## Description

SavvyCal connects your calendar directly to any AI agent. It lets your agent act as a full-time scheduling assistant without you ever having to jump between fifteen browser tabs.

**Managing Your Booking Links**

You've got links for everything—quick calls, deep dives, client check-ins. This server handles the whole lifecycle of those booking URLs. You can generate brand new scheduling links using `create_link`, specifying a custom name, a unique slug, and how long that link should last in minutes. Need to adjust one? Use `update_link` to change an existing link's settings, like tweaking its duration or changing its display name. To see what you got running—all active and inactive links—call `list_links`. If a link is dead weight, you can permanently remove it with `delete_link`; remember, that action ain't reversible.

**Checking Availability & Scheduling Events**

If someone asks when they can meet, your agent doesn't guess. It checks the books instantly using `list_availability`, returning every open time slot across all your links within a date range you specify. For existing appointments, you can pull up a full roster of meetings with `list_events`. If you only need details on one specific booking, `get_event` grabs all the info for that single event ID. You'll also use `cancel_event` to remove an appointment completely by providing its unique ID and stating why you're canceling it.

**Account Status & Setup**

The server gives your agent visibility into your setup too. Use `get_account` to retrieve the core profile details and general settings for the connected calendar. If you need to check the current status of any single link, `get_link` pulls all the data and configuration for that specific URL.

This server lets your agent handle complex scheduling tasks—from finding a free slot across multiple calendars to deleting old links—all through simple calls it makes to these tools. It's everything you need right in one place.

## Tools

### cancel_event
Cancels an existing scheduled appointment using the event ID and a reason.

### create_link
Generates a brand new scheduling link, specifying its name, unique slug, and duration in minutes.

### delete_link
Permanently removes a scheduling link; this action cannot be undone.

### get_account
Retrieves the core profile and settings information for the connected account.

### get_event
Fetches all specific details about one scheduled event using its unique ID.

### get_link
Retrieves all current data and settings for a single, existing scheduling link.

### list_availability
Returns all bookable time slots available through your links within a specified date range.

### list_events
Lists every scheduled booking event currently on the calendar.

### list_links
Retrieves a comprehensive list of all active and inactive scheduling links in your account.

### update_link
Modifies the settings, name, or duration of an existing scheduling link.

## Prompt Examples

**Prompt:** 
```
When am I available next Wednesday for my 'Consultation' link?
```

**Response:** 
```
Looking at your 'Consultation' scheduling rules, next Wednesday you have bookable slots at 10:00 AM, 11:30 AM, and 2:00 PM (EST). Should I create a quick email snippet for you to send these options?
```

**Prompt:** 
```
Create a new 30-minute link named Q3 Sync.
```

**Response:** 
```
Done. I created the 30-minute link named 'Q3 Sync'. Your shareable URL slug is `q3-sync-abc12`. You can share `savvycal.com/your-username/q3-sync-abc12` immediately.
```

**Prompt:** 
```
Who am I meeting with tomorrow?
```

**Response:** 
```
You have 2 events scheduled tomorrow via SavvyCal. 1. Product Onboarding with John Doe at 9 AM. 2. Interview with Jane Smith at 2 PM. I can provide their contact email or cancel either meeting if necessary.
```

## Capabilities

### Calculate Free Slots
Checks your calendar against defined rules to find specific available time slots within a given date range.

### Create Booking Links
Generates new, unique scheduling links with custom names and specified durations (e.g., 30 minutes).

### Manage Event Records
Retrieves details for specific scheduled meetings or lists all upcoming events in your calendar.

### Update Link Details
Makes changes to an existing booking link, like adjusting its name or duration.

### Clean Up Links
Permanently deletes scheduling links you no longer use from your account.

## Use Cases

### The Quick Availability Check
A founder gets asked for availability next week. Instead of opening SavvyCal, navigating to the 'Consultation' link, and checking dates, they just prompt their agent: 'When am I free next Tuesday?' The agent runs `list_availability` and returns three specific time slots.

### The On-the-Fly Client Link
A sales consultant is talking to a prospect. They need a unique link for 'Q3 Followup.' Instead of logging into the web app, they ask their agent: 'Make me a 20-minute link called Q3 Followup.' The agent runs `create_link` and gives them the ready-to-send URL.

### The Cleanup Crew
An ops manager realizes they have five old, unused booking links. They don't want to maintain them. They ask their agent: 'List all my links and delete any that are marked as draft.' The agent runs `list_links` then executes multiple `delete_link` calls.

### The Last-Minute Cancellation
A client meeting is canceled, but the organizer forgot to update SavvyCal. Instead of logging in and finding the event ID, they ask their agent: 'Cancel the Product Onboarding with John Doe.' The agent runs `get_event` first, finds the ID, and then executes `cancel_event`.

## Benefits

- Stop juggling tabs. Instead of manually checking multiple calendar views, use `list_availability` to ask your agent for open slots across all linked setups instantly.
- Save time creating unique URLs. Use `create_link` to generate a new 30-minute booking link and get the shareable slug immediately—no more remembering which URL goes where.
- Control your schedule with precision. Need to clean up old links? The agent uses `delete_link` to wipe out unused scheduling options permanently.
- Never miss an event detail again. Use `list_events` or `get_event` to pull attendee names, times, and details for any meeting in the books.
- Quickly adjust your process. If a link needs a change (e.g., from 30 mins to 60 mins), use `update_link` instead of rebuilding it entirely.

## How It Works

The bottom line is: you talk to your AI client, and it handles the calendar logistics using SavvyCal's tools.

1. Subscribe to the SavvyCal MCP Server and enter your API Token.
2. Your AI client sends a prompt (e.g., 'When am I free next week?').
3. The agent calls `list_availability`, which returns bookable slots directly into your chat.

## Frequently Asked Questions

**How do I check my free time using list_availability?**
You tell your agent the date range and what kind of link you want to check. The agent calls `list_availability` and returns all bookable slots based on your defined rules.

**What is the difference between get_event and list_events?**
`list_events` gives you a full roster of every scheduled meeting. Use `get_event` when you already know the specific event ID and need all its deep details.

**Can I change an existing link's name using update_link?**
Yes, that's what `update_link` does. You just provide the old slug/ID and the new information (name, duration) you want to use.

**Do I need to list_links before creating a new one with create_link?**
No. `create_link` is self-contained; it generates a brand new link regardless of how many links you already have in the system.

**What information does using get_account retrieve after I connect my SavvyCal token?**
It retrieves your base account profile and verifies automated timezone settings. This tool confirms that your AI agent has successfully authenticated with SavvyCal, providing core data about your setup without exposing sensitive booking details.

**If I use the delete_link tool, what are the key things I need to know?**
You must understand that `delete_link` is irreversible. Before running this action, verify the link's slug and ensure you don't need it again. This command permanently removes a scheduling link from your account.

**How can I use get_link if I only know the specific URL slug?**
You pass the unique slug directly to `get_link`. Unlike listing all links, this tool retrieves precise details for one specific link. It's useful when you need information on a single booking flow without searching through your entire list.

**What are the necessary inputs required by the cancel_event tool?**
To use `cancel_event`, you must provide two things: the unique event ID and a cancellation reason. Providing both ensures the system logs the cancellation correctly and prevents potential errors.

**Can my AI automatically create specific booking links for a client?**
Yes. Instead of going into the SavvyCal dashboard, you can simply ask your agent: 'Create a new 60-minute scheduling link named Strategy Session for Acme Corp with slug acme-strategy'. The agent will generate the ready-to-share URL instantly.

**How accurate is the availability check through the AI?**
Perfectly accurate. When you ask the agent to find free slots next week, it uses the `list_availability` tool to deeply check your underlying SavvyCal configurations, timezone translations, and active Google/Outlook calendar blocks in real time.

**If a meeting needs to be canceled, can the agent handle it?**
Absolutely. You can request: 'Cancel my meeting with Alex tomorrow due to scheduling conflict'. The agent will identify the event ID, use `cancel_event` with the provided reason, and SavvyCal will natively email the invitee the cancellation notice.