# Cronofy MCP

> Cronofy unifies your Google, iCloud, and Exchange calendars into a single view for scheduling. Use this MCP to check availability across multiple people and platforms simultaneously, allowing you to book meetings or manage events via simple conversation with any AI agent.

## Overview
- **Category:** productivity
- **Price:** Free
- **Tags:** calendar-sync, scheduling-automation, availability-tracking, event-management, api-integration, multi-user-scheduling

## Description

Scheduling across different company accounts is usually a nightmare. You're juggling Outlook, Google Calendar, and whatever system the client uses. This MCP solves that by unifying all those calendars—Google, iCloud, and Exchange—into one source for your AI agent to read from. Instead of manually checking three separate web portals, you ask your agent, 'When are we all free next week?' It handles the complex availability math across all linked accounts instantly. You can then tell it to book the meeting, automatically creating the event record while keeping everything consistent everywhere. This isn't just reading data; it’s managing multi-user time slots and ensuring every calendar stays synced after the fact. When you connect this through Vinkius, your AI client gets immediate access to enterprise scheduling logic that used to require a dedicated workflow platform.

## Tools

### read_events
Pulls all unified event data from Google, iCloud, and Exchange into one record set.

### create_event
Writes a new event across all connected calendars and provides sync links.

### delete_event
Removes an existing event from all linked calendars permanently.

### list_calendars
Retrieves a full list of all accessible calendars across all connected accounts.

### get_free_busy
Checks a list of people's calendars to determine if they are free during specific time intervals.

### query_availability
Performs a cross-provider check to validate if a specific time slot is open for multiple users.

### get_account
Retrieves deep details about the connected account and its associated services.

### get_user_info
Identifies the precise active user arrays linked to your connected services.

### list_profiles
Gets the structural details for each user profile that has been linked to your account.

### create_scheduling_request
Generates a structured link that allows external parties to book time with you.

## Prompt Examples

**Prompt:** 
```
List my calendar events from tomorrow to next week
```

**Response:** 
```
Retrieving unified events... I found 8 events across your Google and Exchange calendars. Highlights include 'Client Kickoff' on Tuesday at 10 AM and 'Team Sync' on Thursday at 2 PM.
```

**Prompt:** 
```
Find a 30-minute slot for a meeting with john@example.com tomorrow
```

**Response:** 
```
Analyzing availability... John has three 30-minute slots available tomorrow: 9:30 AM, 1:00 PM, and 4:30 PM. Which one works best for you?
```

**Prompt:** 
```
Create a scheduling link for a 'Project Review' meeting
```

**Response:** 
```
Scheduling request created! Here is the link for the 'Project Review': https://scheduling.cronofy.com/r/abc-123. This link is mapped to your live availability across all connected calendars.
```

## Capabilities

### Find Shared Availability
Checks up to ten participants' calendars against each other to pinpoint open time slots for meetings.

### Schedule and Create Events
Books new events across all linked platforms, generating the necessary sync links immediately.

### Audit Calendar Status
Examines event data or time blocks without actually creating or changing anything.

### Manage Accounts and Profiles
Inspects which identity providers are connected to the account, giving you visibility into your sync setup.

### Control Data Sync
Removes specific events or validation records irreversibly from all linked calendar systems.

## Use Cases

### Coordinating a large cross-functional kickoff
A PM needs to schedule an initial meeting involving five people who use Google, iCloud, and Exchange. They ask their agent to 'Find three 60-minute slots next week.' The MCP runs `query_availability`, determines the intersection of all five schedules, and presents only the viable options.

### Cleaning up old meeting records
An EA finds several double-booked or stale meetings. She asks her agent to 'Remove every instance of the Q2 review from May 1st.' The MCP uses `delete_event` and ensures that event is purged everywhere it exists.

### Building a client booking portal
A developer needs their internal app to let clients book time. They use `create_scheduling_request` via the agent, which gives them a single link tied to their unified availability across all services.

## Benefits

- Stop switching between platforms. By using `read_events`, your agent pulls event data from Google, iCloud, and Exchange simultaneously; you get one unified feed, not three separate ones.
- Never waste time on manual availability checks again. Instead of checking multiple people's calendars in sequence, the MCP uses `query_availability` to validate complex multi-user time slots instantly.
- Need external people to book meetings? Use `create_scheduling_request` to generate a live link that maps directly to your actual free time across all connected sources.
- Maintaining data integrity is key. When you need to remove an event, the `delete_event` tool ensures it's vaporized from every single linked calendar source, guaranteeing consistency.
- When building an internal system, use `list_calendars` and `get_user_info` first. This lets your application scope exactly which accounts and resources need to be managed before attempting a booking.

## How It Works

The bottom line is that your AI client handles the complex handshakes between Google, iCloud, and Exchange so you don't have to worry about which calendar source failed last.

1. First, subscribe to this MCP and provide your Cronofy Access Token.
2. Next, tell your AI client what you need—for instance, 'Find a 30-minute slot for John and Mary tomorrow.'
3. Your agent executes the necessary checks and returns specific time slots. You confirm the selection, and it books the meeting across all relevant calendars.

## Frequently Asked Questions

**Can my agent check availability across different calendar providers like Google and iCloud?**
Yes. Use the 'query_availability' tool. Your agent will traverse multi-user JSON payloads and calculate strict intersections across all connected accounts, regardless of the underlying calendar provider.

**How do I create a new calendar event via the agent?**
Provide the 'calendar_id', 'summary', and 'start/end' times to the 'create_event' tool. The agent commands Cronofy to update your upstream provider synchronously, ensuring the event appears on your calendar immediately.

**Can I generate a public scheduling link through chat?**
Absolutely. Use the 'create_scheduling_request' tool. The agent will generate a shared UI link mapped to your live availability, which you can then share externally to let others book time with you.

**What steps are needed before running `get_account` to ensure proper authentication?**
You must first obtain your Cronofy Access Token using the OAuth flow from app.cronofy.com. This token grants permission and allows your agent to inspect your deep internal account arrays.

**Can I filter or limit the data returned by `read_events`? **
Yes, you can typically specify time ranges or search criteria when using `read_events`. The tool pulls unified aggregated records from Google, iCloud, and Exchange, so passing filters helps narrow down results.

**Does running the `delete_event` tool permanently remove calendar entries across providers?**
Yes. When you run `delete_event`, it irreversibly vaporizes the event validation across all connected upstream sources, ensuring absolute consistency and removal everywhere.

**What are the limits when using `get_free_busy` for complex overlaps?**
The tool is designed to calculate structured rules and active Overlaps efficiently. While it handles multiple participants, check the current API documentation for specific participant caps or rate limits.

**What kind of identity information does `list_profiles` provide?**
`list_profiles` retrieves structural matching data that verifies which distinct identity providers are connected to your account. It helps map out the full scope of your linked directories.