# Evite MCP tools

> Every Evite MCP tool on the Cotlet server: tool names, input schemas, a tools/call example and an example result for each tool.

Source: https://cotlet.dev/docs/mcp/evite

Docs sections: [Get started](https://cotlet.dev/docs.md) · [REST API](https://cotlet.dev/docs/api.md) · [MCP](https://cotlet.dev/docs/mcp.md) · [SDKs & CLI](https://cotlet.dev/docs/sdks.md) · [Integrations](https://cotlet.dev/docs/integrations.md)

13 tools for Evite on the Cotlet MCP server. Your agent picks them from tools/list.

- MCP server: `https://cotlet.dev/mcp/v1`
- Connects with: Your own Evite account (the host of the events)
- Integration page: https://cotlet.dev/integrations/evite-api-mcp-server

## Endpoints

| Endpoint | Access | Description |
|---|---|---|
| `evite_list_events` | read | Invitations you host, from My Invitations, with date and status. |
| `evite_get_event` | read | Event details: title, host and co-hosts, date, time zone, location, host note and RSVP settings. |
| `evite_list_guests` | read | Guest list with RSVP, party size and comment, plus counts per RSVP status. |
| `evite_export_guest_list` | read | The guest list as a file: name, email or phone, RSVP, party count and comment. |
| `evite_create_event` | write | New invitation draft from a gallery design. Nothing is sent until send_invitation. |
| `evite_update_event` | write | Change event details. Only the fields you pass change. |
| `evite_duplicate_event` | write | Copy one of your current or past invitations into a new draft. |
| `evite_add_guests` | write | Add guests by email or phone. On an event already sent, they get the invitation right away. |
| `evite_send_invitation` | write | Send a draft invitation to its guests. Free designs only. |
| `evite_update_guest_rsvp` | write | Set a guest's response and party size as host. The guest is not notified. |
| `evite_message_guests` | write | Send a message to a group by RSVP status or to one guest. Each guest gets it privately. |
| `evite_set_reminders` | write | Replace the event's reminders. Up to 5, each at least 30 minutes from now. |
| `evite_cancel_event` | write | Cancel an event before its date, optionally with a note to guests. Evite lets you reinstate it. |

## List events

MCP tool: `evite_list_events`

Access: read.

Lists the events in your My Invitations. Canceled events are included when you ask for them, so you can find one to reinstate. Use event_id from each item in the other endpoints.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `status` | enum | no | upcoming, past or canceled. Default: upcoming. |
| `query` | string | no | Only events whose title contains this text. |
| `limit` | integer | no | 1 to 50. Default: 20. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "evite_list_events",
    "arguments": {}
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "events": [
      {
        "event_id": "ev_7Q2KX9M4",
        "title": "Team offsite dinner",
        "start": "2026-11-14T18:00:00-05:00",
        "status": "upcoming",
        "guests": 42
      },
      {
        "event_id": "ev_3H8WNP6Z",
        "title": "Holiday party 2025",
        "start": "2025-12-13T19:00:00-05:00",
        "status": "past",
        "guests": 58
      }
    ]
  },
  "isError": false
}
```

## Get event

MCP tool: `evite_get_event`

Access: read.

Returns one event as you set it in Edit Details, plus its RSVP settings: the RSVP limit and the maximum number of additional guests per RSVP (up to 9). Use it before update_event or set_reminders to see the date and time zone.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `event_id` | string | yes | Event ID from list_events. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "evite_get_event",
    "arguments": {
      "event_id": "event_8c41d2"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "ev_7Q2KX9M4",
    "title": "Team offsite dinner",
    "host_name": "Maya Chen",
    "start": "2026-11-14T18:00:00-05:00",
    "time_zone": "America/New_York",
    "location": "Harbor House, 12 Pier St",
    "host_note": "Dinner is on us. Please RSVP by Friday.",
    "rsvp_limit": 60,
    "max_additional_guests": 1,
    "status": "upcoming"
  },
  "isError": false
}
```

## List guests

MCP tool: `evite_list_guests`

Access: read.

Returns the guests of one event as View Guest List shows them: name, email or phone, RSVP, party count and comment. Guests whose invitation was not delivered are listed first. The counts block gives the number of guests per status and the total party count. Guests added through the shareable link appear only after they RSVP.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `event_id` | string | yes | Event ID from list_events. |
| `rsvp` | enum | no | all, yes, no, maybe or no_reply. Default: all. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "evite_list_guests",
    "arguments": {
      "event_id": "event_8c41d2"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "counts": {
      "yes": 21,
      "no": 4,
      "maybe": 3,
      "no_reply": 14,
      "party_total": 39
    },
    "guests": [
      {
        "guest_id": "g_41a9",
        "name": "Sam Rivera",
        "email": "sam@example.com",
        "rsvp": "no_reply",
        "party_size": null,
        "comment": null,
        "delivery": "delivered"
      },
      {
        "guest_id": "g_41b2",
        "name": "Priya Nair",
        "phone": "+12025550143",
        "rsvp": "yes",
        "party_size": 2,
        "comment": "Vegetarian for both of us",
        "delivery": "delivered"
      }
    ]
  },
  "isError": false
}
```

## Export guest list

MCP tool: `evite_export_guest_list`

Access: read.

Runs the same Export guest list download as Manage Event and returns a link to the file with the number of guests in it. It reads only and sends nothing.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `event_id` | string | yes | Event ID from list_events. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "evite_export_guest_list",
    "arguments": {
      "event_id": "event_8c41d2"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "ev_7Q2KX9M4",
    "guests": 42,
    "columns": [
      "name",
      "email_or_phone",
      "rsvp",
      "party_count",
      "comment"
    ],
    "url": "https://files.cotlet.example/exports/ev_7Q2KX9M4.csv"
  },
  "isError": false
}
```

## Create event

MCP tool: `evite_create_event`

Access: write.

Creates a draft from a free design in the Evite gallery and fills the Event Details. The draft reaches no one, and you can change it with update_event, so it runs without asking. Premium designs and Premium upgrades are bought in Evite, not by this tool; Cotlet never pays for you.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `design` | string | yes | Free design from the Evite gallery, by name or keyword. |
| `title` | string | yes | Event title. |
| `start` | datetime | yes | Start, ISO 8601. |
| `time_zone` | string | no | IANA time zone, e.g. America/New_York. |
| `location` | string | no | Venue name or address. |
| `host_name` | string | no | Host name shown on the invitation. |
| `host_note` | string | no | Message from the host. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "evite_create_event",
    "arguments": {
      "design": "design",
      "title": "title",
      "start": "2026-10-01T09:00:00Z"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "ev_9R5TLD2A",
    "title": "Offsite dinner",
    "start": "2026-11-14T18:00:00-05:00",
    "time_zone": "America/New_York",
    "status": "draft"
  },
  "isError": false
}
```

## Update event

MCP tool: `evite_update_event`

Access: write. Confirm: waits for the user's OK before it runs.

Edits an event like Edit Details: title, host name, date, time, time zone, location and host note, until the event date. Evite does not say whether guests are told about a change, but they see the new details on the invitation. Design text is separate: if the time or place appears in the design, keep both in step. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `event_id` | string | yes | Event ID from list_events. |
| `fields` | object | yes | Any of title, host_name, start, time_zone, location, host_note. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "evite_update_event",
    "arguments": {
      "event_id": "event_8c41d2",
      "fields": "fields"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "ev_7Q2KX9M4",
    "updated": [
      "start",
      "location"
    ],
    "start": "2026-12-12T19:00:00-05:00",
    "location": "Harbor House, 12 Pier St"
  },
  "isError": false
}
```

## Duplicate event

MCP tool: `evite_duplicate_event`

Access: write.

Runs Duplicate Invitation: a new draft with the old design and details, to update and send. Works only on invitations created from your own account, not on events from the previous version of Evite. Evite does not say whether guests are copied, so check with list_guests. The copy reaches no one and is just a draft, so it runs without asking.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `event_id` | string | yes | Event ID from list_events. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "evite_duplicate_event",
    "arguments": {
      "event_id": "event_8c41d2"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "ev_5K1BQC8E",
    "copied_from": "ev_3H8WNP6Z",
    "title": "Holiday party 2025",
    "status": "draft"
  },
  "isError": false
}
```

## Add guests

MCP tool: `evite_add_guests`

Access: write. Confirm: waits for the user's OK before it runs.

Adds guests the way Add Guests does. On an event that is already sent, each new guest receives the same invitation at once, with the RSVP link. A free invitation holds up to 750 guests and Evite Pro up to 2,500. Text invitations work for US and Canada numbers only, and every number needs a name. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `event_id` | string | yes | Event ID from list_events. |
| `guests` | object[] | yes | List of { name, email } or { name, phone }. Text invites: US and Canada numbers only. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "evite_add_guests",
    "arguments": {
      "event_id": "ev_7Q2KX9M4",
      "guests": [
        {
          "name": "Dana & Chris Reyes",
          "email": "dana@example.com"
        },
        {
          "name": "Luis Ortega",
          "email": "luis@example.com"
        },
        {
          "name": "Priya Nair",
          "phone": "+12025550143"
        }
      ]
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "ev_7Q2KX9M4",
    "added": 3,
    "guests": [
      {
        "guest_id": "g_52c1",
        "name": "Dana Reyes",
        "via": "email"
      },
      {
        "guest_id": "g_52c2",
        "name": "Luis Ortega",
        "via": "email"
      },
      {
        "guest_id": "g_52c3",
        "name": "Priya Nair",
        "via": "text"
      }
    ]
  },
  "isError": false
}
```

## Send invitation

MCP tool: `evite_send_invitation`

Access: write. Confirm: waits for the user's OK before it runs.

Sends the draft to every guest on its list. It works for free invitations. A Premium invitation is charged by guest list size in Evite, so the call stops with payment_required and you finish it in Evite. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `event_id` | string | yes | Event ID from list_events. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "evite_send_invitation",
    "arguments": {
      "event_id": "event_8c41d2"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "ev_9R5TLD2A",
    "status": "sent",
    "invited": 42,
    "sent_at": "2026-10-14T09:30:00-04:00"
  },
  "isError": false
}
```

## Update guest RSVP

MCP tool: `evite_update_guest_rsvp`

Access: write.

Does what Edit under View Guest List does: sets the response to yes, no or maybe, with a guest count. Evite does not tell the guest, and guests can still change their own answer later. It reaches no one and one more call undoes it, so it runs without asking.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `event_id` | string | yes | Event ID from list_events. |
| `guest_id` | string | yes | Guest ID from list_guests. |
| `response` | enum | yes | yes, no or maybe. |
| `party_size` | integer | no | Number of people in the party. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "evite_update_guest_rsvp",
    "arguments": {
      "event_id": "ev_7Q2KX9M4",
      "guest_id": "g_41a9",
      "response": "yes",
      "party_size": 2
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "ev_7Q2KX9M4",
    "guest_id": "g_41a9",
    "rsvp": "yes",
    "party_size": 2,
    "guest_notified": false
  },
  "isError": false
}
```

## Message guests

MCP tool: `evite_message_guests`

Access: write. Confirm: waits for the user's OK before it runs.

Runs Send Message from Guest Options. Groups are all, attending, declined and no_reply (still no response). Each guest receives the message on their own, so guests never see each other's email addresses. Evite sets no cap on messages. To write to one guest, pass guest_id. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `event_id` | string | yes | Event ID from list_events. |
| `body` | string | yes | Message text. |
| `group` | enum | no | all, attending, declined or no_reply. Default: all. |
| `guest_id` | string | no | Send to this one guest instead of a group. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "evite_message_guests",
    "arguments": {
      "event_id": "ev_7Q2KX9M4",
      "group": "no_reply",
      "body": "Quick nudge: please RSVP by Friday so we can order food. Thanks!"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "ev_7Q2KX9M4",
    "status": "sent",
    "group": "no_reply",
    "recipients": 14,
    "sent_at": "2026-10-14T18:05:00-04:00"
  },
  "isError": false
}
```

## Set reminders

MCP tool: `evite_set_reminders`

Access: write. Confirm: waits for the user's OK before it runs.

Replaces the reminders of Manage Event with the times you pass. Each must be at least 30 minutes from now and no later than 30 minutes before the event starts; an empty list removes them all, including the automatic one. Reminders go to guests who have not replied and to Yes and Maybe guests. The text is Evite's own and cannot be changed. Not available when RSVPs are off. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `event_id` | string | yes | Event ID from list_events. |
| `send_at` | string[] | yes | Up to 5 ISO 8601 datetimes. Empty list removes all. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "evite_set_reminders",
    "arguments": {
      "event_id": "event_8c41d2",
      "send_at": [
        "send at"
      ]
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "ev_7Q2KX9M4",
    "event_start": "2026-11-14T18:00:00-05:00",
    "reminders": [
      "2026-11-12T18:00:00-05:00",
      "2026-11-14T10:00:00-05:00"
    ]
  },
  "isError": false
}
```

## Cancel event

MCP tool: `evite_cancel_event`

Access: write. Confirm: waits for the user's OK before it runs.

Runs Cancel Event from My Invitations, with the optional personal message to guests that Evite asks for after cancelling. Evite does not say guests get an automatic notice, so pass message when they should hear it. The host can reinstate the event in Evite any time before its original date. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `event_id` | string | yes | Event ID from list_events. |
| `message` | string | no | Note sent to guests with the cancellation. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "evite_cancel_event",
    "arguments": {
      "event_id": "event_8c41d2"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "ev_7Q2KX9M4",
    "status": "canceled",
    "message_sent": true
  },
  "isError": false
}
```
