Luma

Connect your AI agents to Luma.

Authentication: API key. See Magic Link for the runtime auth flow.

Sample use cases

  • Create an event for our June meetup and open registration.
  • List all guests who registered for the launch party.
  • Send invites to everyone tagged as a VIP contact.
  • Add a discount coupon for early-bird ticket buyers.

Available Tools

get_calendar

Get the calendar this API key is scoped to: name, slug, public URL, description, images, and social handles. Luma API…

update_calendar

Update the calendar’s name, slug, description, avatar, or tint colour. Only the fields you pass are changed. Use get_…

list_calendar_admins

List the administrators of this calendar with their names and email addresses. Takes no arguments — the API key deter…

list_calendar_events

List events on this calendar with cursor pagination. Filter server-side by date range (before/after, ISO 8601), platf…

lookup_calendar_event

Report whether an event is on this calendar. platform is required and selects the identifier: ‘luma’ takes event_id o…

add_calendar_event

Add an event to this calendar: an existing Luma event by event_id (platform=‘luma’), or an event hosted elsewhere by…

approve_calendar_event

Approve an event submitted to this calendar, making it publicly visible on the calendar page. Use list_calendar_event…

reject_calendar_event

Reject an event submitted to this calendar, optionally with a message to the submitter. Use list_calendar_events with…

list_contacts

List contacts on this calendar with cursor pagination. Filter server-side by free-text query, tag names (use list_con…

import_contacts

Import contacts onto this calendar in bulk. Each contact is an object with email and optional name. Optionally apply…

block_contact

Block a contact from registering for events on this calendar. Identify them by contact_id or email — use list_contact…

remove_contact

Remove a contact from this calendar. Identify them by contact_id or email — use list_contacts to find contact IDs. Us…

restore_contact

Restore a contact previously removed or blocked on this calendar, letting them register for events again. Identify th…

list_event_coupons

List discount coupons scoped to one event, with cursor pagination. Use list_calendar_events to find event IDs. Return…

create_event_coupon

Create a discount coupon on one event. discount requires a discount_type discriminator: or . Optionally cap redemptio…

update_event_coupon

Update an event coupon’s remaining redemption count or validity window. Identify it by event ID plus coupon code — us…

list_calendar_coupons

List discount coupons that apply across every event on this calendar, with cursor pagination. Returns coupon codes fo…

create_calendar_coupon

Create a discount coupon valid across every event on this calendar. discount requires a discount_type discriminator:…

update_calendar_coupon

Update a calendar-wide coupon’s remaining redemption count or validity window. Identify it by coupon code — use list_…

get_event

Get one Luma event by ID: schedule, location, capacity, visibility, hosts, and guest counts. Use list_calendar_events…

create_event

Create an event on the calendar this API key belongs to. Requires name, start_at (ISO 8601), and an IANA timezone. Op…

update_event

Update an existing event. Only the fields you pass are changed. Set suppress_notifications=true to avoid emailing gue…

request_event_cancellation

Step 1 of cancelling an event. Returns a single-use cancellation_token plus the guest count and whether the event has…

cancel_event

Step 2 of cancelling an event: permanently cancels it and notifies guests. Requires the cancellation_token from reque…

list_guests

List guests on an event with cursor pagination. Filter server-side by approval_status (approved, pending_approval, in…

get_guest

Get one guest on an event: approval status, registration answers, tickets held, check-in QR code, and ticket purchase…

add_guests

Register one or more guests on an event directly, bypassing signup. Each guest is an object with email and optional n…

update_guest_status

Change a guest’s approval status on an event: approve them, decline them, send them back to pending_approval, or move…

update_guest_tickets

Add or remove tickets held by a guest on an event. Use list_ticket_types for ticket type IDs to add, and get_guest to…

send_guest_invites

Email event invitations to a list of people. Each guest is an object with email and optional name; an optional messag…

add_host

Add a host to an event by email. access_level ‘manager’ can edit the event, ‘check-in’ can only check guests in, ‘non…

update_host

Change an existing host’s access level or public visibility on an event. Identify the host by email. Use get_event to…

remove_host

Remove a host from an event by email. The person keeps their Luma account and any guest registration; only their host…

list_membership_tiers

List the membership tiers on this calendar, with pricing, access rules, and the questions asked at signup. Returns ti…

add_member_to_tier

Add someone to a membership tier by email. Use list_membership_tiers to find tier IDs. Set skip_payment=true to comp…

update_member_status

Approve or decline a calendar membership, identified by Luma user ID. Declining removes the membership outright rathe…

get_current_user

Get the Luma user this API key belongs to: user ID, name, and email. Takes no arguments. Use this to confirm which ac…

lookup_entity

Resolve a public Luma slug to the calendar, event, or user it belongs to. Pass just the slug from the URL, e.g. ‘merg…

create_image_upload_url

Get a pre-signed URL for uploading a JPEG or PNG to Luma’s image host. PUT the raw image bytes to upload_url, then pa…

list_contact_tags

List the contact tags defined on this calendar, with their IDs, names, and colours. Takes no arguments. Returns tag I…

create_contact_tag

Create a contact tag on this calendar for labelling people. Colour is one of cranberry, barney, red, green, blue, pur…

update_contact_tag

Rename a contact tag or change its colour. Use list_contact_tags to find tag IDs. Renaming a tag updates it everywher…

delete_contact_tag

Delete a contact tag from this calendar. The tag is removed from every contact carrying it; the contacts themselves a…

apply_contact_tag

Apply a contact tag to contacts, identified by user_ids or emails. Use list_contact_tags for tag names and list_conta…

unapply_contact_tag

Remove a contact tag from contacts, identified by user_ids or emails. The tag itself still exists — use delete_contac…

list_event_tags

List the event tags defined on this calendar, with their IDs, names, and colours. Takes no arguments. Returns tag IDs…

create_event_tag

Create an event tag on this calendar for grouping events. Colour is one of cranberry, barney, red, green, blue, purpl…

update_event_tag

Rename an event tag or change its colour. Use list_event_tags to find tag IDs. Renaming a tag updates it everywhere i…

delete_event_tag

Delete an event tag from this calendar. The tag is removed from every event carrying it; the events themselves are un…

apply_event_tag

Apply an event tag to one or more events. Use list_event_tags for tag names and list_calendar_events for event IDs. R…

unapply_event_tag

Remove an event tag from one or more events. The tag itself still exists — use delete_event_tag to remove it entirely…

list_ticket_types

List the ticket types on an event, including price, capacity, and sale window. Set include_hidden=true to also return…

get_ticket_type

Get one ticket type by ID: name, free or paid, price, currency, capacity, approval requirement, and sale window. Use…

create_ticket_type

Add a ticket type to an event. Requires event_id, name, and type (‘free’ or ‘paid’); paid types also need cents and c…

update_ticket_type

Update a ticket type: price, name, capacity, sale window, visibility, or approval requirement. Only the fields you pa…

delete_ticket_type

Delete a ticket type from an event. Use list_ticket_types to find ticket type IDs. Consider update_ticket_type with i…

list_webhooks

List the webhook subscriptions on this calendar with cursor pagination. Returns webhook IDs for get_webhook, update_w…

get_webhook

Get one webhook subscription: destination URL, subscribed event types, active or paused status, and the signing secre…

create_webhook

Create a webhook subscription that POSTs to your URL when calendar activity happens. Event types include event.create…

update_webhook

Update a webhook subscription: replace its event types, or pause and resume delivery via status. event_types replaces…

delete_webhook

Delete a webhook subscription permanently, stopping all callbacks to its URL. Use list_webhooks to find webhook IDs…