Integration · Scheduling
Connect Claude & ChatGPT to Luma
Ask your AI who has signed up for your next event, to approve people on the waitlist, or to set up a new event in Luma. It can create and update events, ticket types and coupons, add and approve guests, and send invites and messages to guests. It also works with your calendar's contacts and tags.
Free plan, no credit card. Takes about a minute.
Try asking
“Who is registered for Thursday's meetup, and who is still pending?”
The AI finds the event and lists its guests by approval status, such as approved, pending approval and waitlist.
“Create an event on 14 November at 17:00 Copenhagen time with room for 40 people.”
It creates the event with name, start time, time zone and capacity. A description, location or meeting link can go in the same step.
“Approve everyone on the waitlist for the workshop.”
It lists the waitlisted guests and changes each one's status to approved, with or without a confirmation email.
What your AI can do
Events and tickets
Create, look up and update events, and add ticket types, paid prices and discount coupons.
Guests and invitations
List and read guests, add guests, approve, decline or waitlist them, and send invites and messages.
Contacts and tags
Search your calendar's contacts, import new ones and group them with tags.
“Add a paid ticket at 150 DKK and an early-bird coupon.”
It creates a paid ticket type with price and currency, and a discount coupon with the code you choose.
“Tell all guests that doors open at 18:30.”
It sends a message to the event's guests with your text. This emails every guest, so you can require approval first.
“Tag everyone who came to last month's event as alumni.”
It reads the event's guests and applies the contact tag to them in your calendar's contacts.
74 tools for Luma
These tools are switched on when you connect. You can switch any of them off, or require your approval before it runs.
add_calendar_adminsChanges dataCreate a new add. Required: emails. API summary: Add Calendar Admins.add_eventChanges dataCreate a new add. Required: body. API summary: Add Event.add_event_hostChanges dataAdd a co-host to an event by `event_id` and the person's `email`, with optional `name` and `is_visible`.add_guestsChanges dataAdd guests to an event by `event_id`; each item in `guests` needs an `email`. Set `send_email` to control whether they get a confirmation email.add_member_to_tierChanges dataCreate a new add. Required: email or membership tier id. API summary: Add Member to Tier.approve_eventVisible to othersApprove a event. Has effects visible outside this system. API summary: Approve Event.cancel_eventDeletesCancel a event. Destructive action; may require approval. API summary: Cancel Event.create_apply_postChanges dataCreate a new apply. Required: tag or event ids. API summary: Apply Event Tag.create_blockChanges dataCreate a new block. API summary: Block Contact.create_calendarChanges dataCreate a new create. Required: name. API summary: Create Calendar.create_contact_tagChanges dataCreate a new create. Required: name. API summary: Create Contact Tag.create_create_postChanges dataCreate a new create. Required: code or discount. API summary: Create Coupon.create_deleteChanges dataCreate a new delete. Required: tag id. API summary: Delete Contact Tag.create_eventChanges dataCreate an event with `name`, `start_at` (ISO date-time) and `timezone` (e.g. Europe/Copenhagen). Optional `end_at`, `description_md`, `meeting_url`, `geo_address_json`, `max_capacity`, `visibility` and `registration_open`.create_event_couponChanges dataCreate a discount coupon for `event_id` with a `code` and a `discount` object. Optional `remaining_count`, `event_ticket_type_id` and validity dates.create_event_tagChanges dataCreate a new create. Required: name. API summary: Create Event Tag.create_image_upload_urlChanges dataCreate a new image. Search images first to avoid duplicates. API summary: Create Upload URL.create_removeChanges dataCreate a new remove. Required: event id or email. API summary: Remove Host.create_requestChanges dataCreate a new request. Required: event id. API summary: Request Event Cancellation.create_ticket_typeChanges dataCreate a ticket type for `event_id` with `name` and `type` (free or paid); for paid set `cents` and `currency`. Optional `max_capacity`, `require_approval` and sale dates.create_unapplyChanges dataCreate a new unapply. Required: tag. API summary: Unapply Contact Tag.create_unapply_postChanges dataCreate a new unapply. Required: tag or event ids. API summary: Unapply Event Tag.create_update_postChanges dataCreate a new update. Required: code. API summary: Update Coupon.create_webhookDeletesCreate a new create. Required: url or event types. Destructive action; may require approval. API summary: Create Webhook.delete_blastChanges dataCreate a new delete. Required: blast id. API summary: Delete Blast.delete_event_tagChanges dataCreate a new delete. Required: tag id. API summary: Delete Event Tag.delete_ticket_typeChanges dataCreate a new delete. Required: event ticket type id. API summary: Delete Ticket Type.delete_webhookDeletesCreate a new delete. Required: id. Destructive action; may require approval. API summary: Delete Webhook.get_blastList gets. Optional filters: blast id. API summary: Get Blast.get_calendarGet the Luma calendar this connection manages, including its name and settings.get_current_userGet the Luma user who owns the API key (name, email).get_eventGet one event by `event_id`, including name, time, location, description and registration settings.get_guestGet one guest of an event by `event_id` and guest `id` (or email), including registration answers, tickets and check-in status.get_ticket_typeList gets. Optional filters: event ticket type id. API summary: Get Ticket Type.get_webhookList gets. Optional filters: id. API summary: Get Webhook.import_contactsChanges dataAdd people to the calendar's contacts from `contacts` (each with an email and optional name), with optional `tags`.list_calendar_adminsList lists. API summary: List Calendar Admins.list_calendar_couponsList lists. Optional filters: pagination cursor or pagination limit. API summary: List Calendar Coupons.list_contact_tagsList the tags used to group calendar contacts.list_contactsList or search the calendar's contacts (people who subscribed or attended) with `query`, `tags` and sorting. Paginate with `pagination_cursor`.list_event_blastsList the messages (blasts) already sent to an event's guests by `event_id`.list_event_couponsList discount coupons for an event by `event_id`.list_event_tagsList lists. API summary: List Event Tags.list_eventsList events on the calendar, sorted by `sort_column` start_at and `sort_direction`. Use `before` to limit to events before a date, and paginate with `pagination_cursor` and `pagination_limit`.list_guestsList the guests of an event by `event_id`, optionally filtered by `approval_status` (approved, pending_approval, invited, declined, waitlist) and sorted by `sort_column`.list_membership_tiersList lists. Optional filters: pagination cursor or pagination limit. API summary: List Membership Tiers.list_organization_adminsList lists. API summary: List Organization Admins.list_organization_calendarsList lists. Optional filters: pagination cursor or pagination limit. API summary: List Organization Calendars.list_organization_eventsList lists. Optional filters: before, pagination cursor, pagination limit or sort direction. Results are paginated. API summary: List Organization Events.list_ticket_typesList an event's ticket types by `event_id`, with price, capacity and sale window.list_webhooksList lists. Optional filters: pagination cursor or pagination limit. API summary: List Webhooks.lookup_eventFind an event on the calendar by its `url`, `event_id` or `event_api_id`. Use to check whether an event already exists.pay_event_calendarMoves moneyTransfer a event. Financial or irreversible action; may require approval. API summary: Transfer Event Calendar.reject_eventVisible to othersReject a event. Has effects visible outside this system. API summary: Reject Event.remove_contactChanges dataCreate a new remove. API summary: Remove Contact.restore_contactChanges dataRestore a contact. API summary: Restore Contact.search_entitiesSearch entities by slug. Use this to find existing entities before creating a new entity. API summary: Lookup Entity.search_imagesSearch images by query, pagination cursor or pagination limit. Use this to find existing images before creating a new image. API summary: Search Cover Images.search_placesSearch places by query. Use this to find existing places before creating a new place.send_event_blastChanges dataSend a message to an event's guests by `event_id` with the text in `content_md` (Markdown) and optional `subject`. Sends immediately unless `scheduled_for` is set. This emails guests.send_invitesVisible to othersEmail invitations to an event by `event_id` to the people in `guests` (email addresses), with an optional personal `message`. This sends emails.tag_contactsChanges dataApply contact `tag` (tag ID or name) to people by `emails` or `user_ids`.update_blastChanges dataCreate a new update. Required: blast id. API summary: Update Blast.update_calendarChanges dataCreate a new update. Required: calendar id. API summary: Update Calendar.update_contact_tagChanges dataCreate a new update. Required: tag id. API summary: Update Contact Tag.update_couponChanges dataCreate a new update. Required: event id or code. API summary: Update Coupon.update_eventChanges dataUpdate an event by `event_id`: name, times, description, location, capacity, visibility or registration settings. Only the fields you pass change; guests may be notified of changes unless `suppress_notifications` is true.update_event_tagChanges dataCreate a new update. Required: tag id. API summary: Update Event Tag.update_guest_statusChanges dataApprove, decline, waitlist or reset a guest by `event_id` and `guest_id` using `status`. Optional `send_email`; `should_refund` refunds a paid ticket when declining.update_guests_ticketsChanges dataUpdate an existing guest. API summary: Update Guest Tickets.update_hostChanges dataCreate a new update. Required: event id or email. API summary: Update Host.update_ticket_typeChanges dataCreate a new update. Required: event ticket type id. API summary: Update Ticket Type.update_users_statusChanges dataUpdate an existing user. API summary: Update Member Status.update_webhookDeletesCreate a new update. Required: id. Destructive action; may require approval. API summary: Update Webhook.
Set up in three steps
- 1
Pick the app
Create a free HeyMyApps account and choose Luma from the app list.
- 2
Paste your key
Paste a Luma API key. API keys require Luma Plus. Go to luma.com/calendar/manage/api-keys, pick the calendar and generate a key. Each key only works for the calendar it was created on.
- 3
Add the link to your AI
You get a personal MCP link. Add it to Claude, ChatGPT or Cursor:
- Click your name, then Settings › Connectors › Add custom connector.
- Paste your link as the Remote MCP server URL.
- Switch it on from the + menu in a chat.
Questions
What can the AI do in Luma?
The AI can read your calendar, events, guests, ticket types, coupons, sent messages, contacts and tags. It can create and update events, add ticket types and coupons, add co-hosts, add guests and change their status, send invites and messages to guests, and import and tag contacts.
Does the AI see my Luma API key?
No. Your Luma API key is encrypted at rest and never shown to the AI. After you save it, it is not shown again, not even to you. The AI only sees the results of the tools it calls.
Can I control what the AI is allowed to do?
Yes. You choose which tools are switched on, so you can start read-only. Sending invites and messages emails real people, and declining a guest can refund a paid ticket. These actions can require your approval before they run. Every tool call is logged.
Does it work with ChatGPT?
Yes. In ChatGPT go to Settings › Apps & Connectors › Advanced and turn on Developer mode, then add your HeyMyApps link. Developer mode needs a paid ChatGPT plan: Plus, Pro, Business or Enterprise. The same link also works in Claude (Settings › Connectors › Add custom connector), Cursor and other MCP clients.
What does it cost?
HeyMyApps has a free plan with no credit card required. Paid plans bill per completed task. You also need your own Luma account with Luma Plus, since Luma API keys require it.
Which Luma calendar does the AI work with?
The calendar the API key was created on. Each Luma key only works for one calendar, so the AI sees that calendar's events, guests and contacts. To work with a different calendar, generate a key on that calendar.
Related integrations
Let your AI work in Luma today.
Start free. Your key stays encrypted, and you decide what the AI may do.
Connect Luma freeHeyMyApps is not affiliated with Luma. Product names are trademarks of their owners.






