> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atako.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Luma

> Connect Luma to your Atako agents — 8 read and 5 write actions.

Let your agents run your Luma calendar — list and create events, read the guest list, add guests, send invites and move registrations between going, pending and waitlist.

## Connection

* **Authentication**: API key.

<Note>
  Open luma.com/calendar/manage/api-keys, pick the calendar the agent should act on, then create the key and copy it. The key is scoped to that one calendar, and the Luma API requires a Luma Plus subscription on it (see Luma's pricing page).

  See [Luma's documentation](https://docs.luma.com/reference/getting-started-with-your-api).
</Note>

## Read actions (8)

| Action                    | Description                                                                                                                                                                                                                                     |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `get_calendar`            | Get the calendar the connected API key manages (takes no argument).                                                                                                                                                                             |
| `get_event`               | Get one event by its id (starts with evt-, discoverable through list\_calendar\_events), including its guest counts by status.                                                                                                                  |
| `get_event_guest`         | Get one guest of an event in detail, including their ticket orders. `id` is the guest id (gst-), a ticket key, a guest key (g-) or the guest's email address.                                                                                   |
| `get_self`                | Get the Luma user the connected API key belongs to (probe — takes no argument).                                                                                                                                                                 |
| `list_calendar_contacts`  | List the contacts of the calendar. Optional: `query`, a free-text search over names and email addresses; `tag`, a single tag name or tag id to filter on; cursor pagination.                                                                    |
| `list_calendar_events`    | List the events the calendar manages. Optional bounds `before` / `after` (ISO 8601 datetimes), a `status` filter (approved submissions by default) and cursor pagination — pass `pagination_cursor` the `next_cursor` of the previous response. |
| `list_event_guests`       | List the guests registered for or invited to an event, optionally filtered by approval\_status, with cursor pagination.                                                                                                                         |
| `list_event_ticket_types` | List the ticket types of an event — the way to find the event\_ticket\_type\_id that add\_guests takes.                                                                                                                                         |

## Write actions (5)

| Action                | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `add_guests`          | Add guests to an event. Required: event\_id (string) and guests (ARRAY OF OBJECTS — \[\{ email, name? }], never an array of strings; email is required on each entry). Optional: approval\_status, one of 'approved' (the default, « Going »), 'pending\_approval' or 'waitlist'; ticket, an OBJECT \{ event\_ticket\_type\_id } assigning one ticket of that type to each guest (ids come from list\_event\_ticket\_types); send\_email, a boolean (true by default) to let Luma email each added guest. To send an invitation a guest can accept rather than registering them outright, use send\_invites.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `create_event`        | Create an event on the calendar. Required: name (string), start\_at (ISO 8601 datetime) and timezone (IANA name). Every other field is optional. name: string. start\_at and end\_at: ISO 8601 datetimes ("2026-10-19T03:27:13.673Z"). timezone: IANA zone name as a string ("Europe/Paris"). description\_md: Markdown string. geo\_address\_json: an OBJECT, one of \{ type: 'manual', address } (free-text address), \{ type: 'google', place\_id } or \{ type: 'lookup', query } — leave it out for an online event; it cannot be combined with meeting\_url. meeting\_url: string (video-call link). visibility: 'public' \| 'members-only' \| 'private'. location\_visibility: 'public' \| 'guests-only'. max\_capacity: bare integer or null. waitlist\_status: 'disabled' \| 'enabled'. registration\_open, show\_guest\_list, reminders\_disabled, can\_register\_for\_multiple\_tickets: booleans. slug: string (URL segment). tint\_color: string, a 3- or 6-digit hex code ("#bb2dc7").                                                                                                       |
| `send_invites`        | Send guests an invitation to an event (email, plus SMS when their phone is linked to their Luma account). Required: event\_id (string) and guests (ARRAY OF OBJECTS — \[\{ email, name? }]). Optional: message, a string of at most 200 characters added to the invitation.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `update_event`        | Update an existing event. Required: event\_id (string starting with evt-). Only the fields you send are changed; the others keep their value. Set suppress\_email to true (boolean) to avoid emailing guests about a change of name, time or location. name: string. start\_at and end\_at: ISO 8601 datetimes ("2026-10-19T03:27:13.673Z"). timezone: IANA zone name as a string ("Europe/Paris"). description\_md: Markdown string. geo\_address\_json: an OBJECT, one of \{ type: 'manual', address } (free-text address), \{ type: 'google', place\_id } or \{ type: 'lookup', query } — leave it out for an online event; it cannot be combined with meeting\_url. meeting\_url: string (video-call link). visibility: 'public' \| 'members-only' \| 'private'. location\_visibility: 'public' \| 'guests-only'. max\_capacity: bare integer or null. waitlist\_status: 'disabled' \| 'enabled'. registration\_open, show\_guest\_list, reminders\_disabled, can\_register\_for\_multiple\_tickets: booleans. slug: string (URL segment). tint\_color: string, a 3- or 6-digit hex code ("#bb2dc7"). |
| `update_guest_status` | Change a guest's status on an event. Required: event\_id (string), guest\_id (string — the guest id gst-, a ticket key, a guest key g-, or the guest's email address, all discoverable through list\_event\_guests) and status, one of 'approved' (« Going »), 'declined', 'pending\_approval' or 'waitlist'. Optional: should\_refund, a boolean refunding a paying guest moved out of an approved status; send\_email, a boolean (true by default); message, a string of at most 200 characters added to the email, which cannot be combined with send\_email: false.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |

## Permissions

Every action above must be explicitly granted to an agent before it can be used. See [Permissions](/integrations/permissions) for the grant model and [Security](/integrations/security) for how credentials are protected.
