# Doodle MCP

> Doodle manages group scheduling by letting your AI agent handle all meeting polls. You can create new polls, track which participants have voted, see who chose what time slot, and even permanently delete old event data—all from a single conversation.

## Overview
- **Category:** productivity
- **Price:** Free
- **Tags:** meeting-polls, group-scheduling, voting, event-coordination, time-management

## Description

Coordinating a simple team meeting used to be an absolute nightmare of back-and-forth emails and scattered spreadsheets. Now, you connect Doodle through your AI agent to manage all that scheduling mess directly in chat. You don't have to copy names or track votes manually anymore.

Your agent can look across all your existing polls, list exactly which ones are open and which are closed. If the team has moved on, it can provision a brand new poll for you with specific dates and times. Need to know who showed up? It lists every participant who cast a vote. The system also lets you grab any comments or feedback attached to a specific poll ID. When everyone is set, you can close the poll—locking in the final chosen option automatically.

If you need to audit the data later or just clean house, your agent handles that too. It can delete the entire poll and all associated records instantly. This kind of control over complex scheduling data means everything stays organized, regardless of which compatible client you use; it's a core service available across the Vinkius catalog.

## Tools

### list_polls
Returns a summary of all polls you've created, showing their status and final options.

### get_poll
Retrieves all details about one specific poll using its unique ID.

### create_poll
Initiates a brand new group scheduling poll with specified options so people can vote on their preference.

### delete_poll
Permanently removes an entire poll, wiping all associated votes and comments from the system.

### list_participants
Lists every user who has already voted on a given Doodle poll.

### add_participant
Programmatically adds a participant and their vote preferences (Yes, No, If-need-be) to an active poll.

### remove_participant
Takes a participant off the poll roster and recalculates the total votes for everyone else.

### get_comments
Pulls every comment left on a specific Doodle poll for review.

### add_comment
Attaches a text comment to any specific Doodle poll record.

### close_poll
Locks the poll status and sets the final winning option string for all participants.

## Prompt Examples

**Prompt:** 
```
List my Doodle polls
```

**Response:** 
```
I found 3 polls in your account: 'Team Offsite Planning' (OPEN), 'Client Project Kickoff' (OPEN), and 'Monthly Sync' (CLOSED). Which one would you like to inspect for participant votes?
```

**Prompt:** 
```
Create a poll 'Launch Sync' with options: 'Monday 10am', 'Tuesday 2pm'
```

**Response:** 
```
Poll created! 'Launch Sync' (ID: poll_abc123) is now active with 2 time options. You can now invite participants to vote on their preferred slots.
```

**Prompt:** 
```
Who has voted on the 'Team Offsite' poll?
```

**Response:** 
```
Retrieving participants for 'Team Offsite'... 5 people have voted: 'Alice', 'Bob', 'Charlie', 'David', and 'Eve'. I can show you the detailed preference breakdown for each participant if you'd like.
```

## Capabilities

### Create new polls
Set up a group poll with specific options and dates for participants to vote on.

### Track who voted
Retrieve lists of all people who have cast their vote on an existing poll.

### View participant feedback
Get a record of all comments and discussions attached to any specific poll.

### Finalize voting results
Close the poll when decisions are made, locking in the final winning option automatically.

### Adjust participant votes
Add or remove a specific person's vote and their preference for an option.

## Use Cases

### Scheduling the Q3 Kickoff
The PM needs to find a time for 15 people across four time zones. Instead of sending five separate emails, they ask their agent to `create_poll` with three possible dates and times. The agent handles distributing the poll and tracks every vote until enough people have responded.

### Auditing an Old Project
An operations lead needs to check why a meeting was held last year. They ask their agent to `get_poll` by ID. The agent retrieves the poll details, allowing them to see exactly who voted and what they preferred months later.

### Handling Scope Creep Votes
The team decides a key feature needs another vote. Instead of starting a new thread, the manager asks their agent to `list_polls` to find the correct one, and then uses `add_comment` to kick off the debate.

### Cleaning up Data After Merge
The dev team finished testing an old feature. The lead tells the agent to use `delete_poll` on the test poll ID, ensuring that all associated votes and comments are wiped completely from the system.

## Benefits

- Stop manually counting votes. Use the `list_polls` tool to instantly see all active polls, their current state (open or closed), and final results.
- Never start from scratch. With `get_poll`, you pull up detailed information on any specific poll ID in seconds, letting your agent read everything for you.
- Keep the conversation going without leaving chat. Use `add_comment` to quickly append feedback to a poll record while collaborating with your team.
- Need to adjust the roster? Instead of emailing everyone, use `add_participant` or `remove_participant` to manage votes programmatically.
- Done for the day? The `close_poll` function locks the data and dictates which option won without manual intervention. It's done.
- Clean up your digital life. When a project is over, use `delete_poll` to wipe out all associated poll records immediately.

## How It Works

The bottom line is that your AI client talks directly to Doodle's scheduling system without you ever having to log into the website.

1. Subscribe to this MCP and provide your Doodle API Key (Legacy API access is required).
2. Tell your agent what you need. For instance, 'Create a poll for next week with these dates.'
3. The agent executes the necessary function call, manages the state change on Doodle's side, and reports back the result to you in plain text.

## Frequently Asked Questions

**How do I see all my past polls using list_polls?**
The `list_polls` tool returns titles, status (OPEN/CLOSED), and the number of participants for every poll you created. This gives you a quick overview without diving into any single record.

**Can I add votes to a closed poll using add_participant?**
It's probably a bad idea. The system is designed to lock the results when polls are closed. If you try, it might fail or require an admin override.

**What if I need to remove a participant from a poll? Do I use remove_participant?**
Yes, use `remove_participant`. This tool removes the person and automatically recalculates all other votes in the poll, keeping your data clean.

**How do I check if someone voted on a specific poll? Do I use list_participants?**
Use `list_participants`. It returns a roster of every unique user who has submitted a vote for that specific poll ID. You don't get the preferences, just the names.

**What happens if I use get_poll with an incorrect Poll ID?**
The system will return a specific 'Not Found' error. This means the poll ID you provided doesn't exist or your account lacks permission to view it. Double-check the ID format and ensure the polling entity is active.

**How do I guarantee that close_poll selects the right winning option?**
You must pass the exact string value of the desired option in your command payload. The MCP cannot guess; it needs you to explicitly dictate which specific choice is declared the final winner.

**Is running delete_poll reversible or does it wipe all associated data?**
It's permanent. Calling delete_poll completely vaporizes the poll entity, including all stored votes and comments. Treat this command like deleting a file you can't get back.

**What are common issues I might encounter when using create_poll?**
Most errors relate to invalid date/time formats or conflicting option payloads. The client will report the specific failure, allowing you to correct your input parameters before retrying.

**Can my agent create a meeting poll with specific date and time options?**
Yes. Use the 'create_poll' tool. You can provide a JSON array of option strings (e.g., ['2026-04-01 10:00', '2026-04-02 14:00']). The agent will command the Doodle backend to generate the standard poll structure instantly.

**How do I add a participant's vote programmatically via chat?**
Use the 'add_participant' tool. Provide the poll ID, the participant's name, and a JSON array of preference values (0=no, 1=yes, 2=if-need-be) matching the number of poll options. The agent will trigger the response routing instantly.

**Can I close a poll and set the final meeting time through the agent?**
Absolutely. Use the 'close_poll' tool. Provide the poll ID and the text of the winning option. The agent will change the poll state to CLOSED, locking the participation arrays and officially confirming the chosen time.