Tools · Events
MCP tools for events: listing events and who RSVP'd, creating an event with a ticket (published or as a draft), publishing a draft, editing the date, location, stream and banner, starting and ending the live stream, RSVPing yourself and deleting an event.
The community's calendar: upcoming events and who's going, a new event (online, in person or hybrid) with its ticket on sale, changes to date, location or banner, the live stream and your own RSVP.
Each tool carries a badge: Read-only changes nothing, Changes creates or changes something right away, and Asks to confirm only acts after your yes to a summary. See Money and confirmation.
In short
| Tool | What it does | Minimum role | Type |
|---|---|---|---|
list_events | Upcoming, past, your own or all events | Any | Read-only |
list_event_attendees | Who RSVP'd to an event | Any | Read-only |
create_event | Space, event and the ticket, in one go, published or as a draft | Moderator (with a ticket, admin) | Changes |
update_event | Edits only the fields sent of an event or draft, and the banner | Moderator or finance | Changes |
publish_event | Publishes a draft, with or without an e-mail notice | Moderator or finance | Asks to confirm |
start_live_stream | Marks the event as live, with the stream link | Moderator or finance | Changes |
stop_live_stream | Ends the live stream | Moderator or finance | Changes |
rsvp_event | Says whether you're going: going, maybe or not going | Member (not finance) | Changes |
delete_event | Deletes an event | Admin | Asks to confirm |
list_event_categories | The event categories | Any | Read-only |
register_member_for_event | Registers someone else for an event that is free for them | Moderator | Changes |
remove_event_recording | Removes an event's hosted recording | Moderator or finance | Asks to confirm |
list_events
Read-only
List events. The community's events. Minimum role: any.
| Parameter | Type | Required | Description |
|---|---|---|---|
filter | next, past, my, all | No | Upcoming (the default), past, the ones you RSVP'd to, or all |
space_id | id | No | Only one events space |
search | text | No | Part of the title |
status | DRAFT, all | No | Team only: DRAFT returns only the drafts, of any date (the app's Drafts tab); all, drafts and published events. Ignored for other roles: drafts never come back |
page, limit | number | No | Pagination |
from and to | date (ISO) | No | Together: the events that overlap the period (up to 62 days, to inclusive), by start, for a calendar; filter next/past is ignored |
undated | yes or no | No | true lists only the events with no date |
With from/to or undated, the answer is { items, truncated, undated_count }: truncated says there were more than 300 events in the period, and undated_count, how many events have no date.
Returns: the events, with id, title, start, end, type (online, in person, hybrid) and location, status (DRAFT or PUBLISHED), publishedAt, updatedAt and visibility.
Ask like this: "What are the upcoming events?"
Without space_id, the tool now lists the events of every Events space. Each event says whether it issues a certificate; owners and admins also see the setting (whether it is on, the template, the text, the workload that will print and the warning for an archived template), and whoever confirmed sees the state of their own certificate.
list_event_attendees
Read-only
Who RSVP'd. An event's participants. Minimum role: any.
| Parameter | Type | Required | Description |
|---|---|---|---|
event_id | id | Yes | From list_events |
status | going, maybe | No | Only those going, or only those who might go |
Returns: the participants, with name and answer.
Ask like this: "How many people confirmed for Thursday's meetup? List the names."
Notes: whoever bought the ticket already shows in this list as Going: the purchase confirms attendance.
create_event
Changes
Create event (with optional ticket). Events space → event → (optional) the ticket, a one-time product that unlocks the space, with stock. Minimum role: moderator or finance; with a ticket, or when creating the space, admin.
| Parameter | Type | Required | Description |
|---|---|---|---|
title | text, up to 255 | Yes | |
description | Markdown | No | The event description, in Markdown |
start | ISO 8601 date with time zone | To publish | E.g. 2026-11-10T19:00:00-03:00. Without it, the event stays a draft |
end | ISO 8601 date | No | |
type | online, in_person, hybrid | No | Default: online |
category | a value from list_event_categories | No | E.g. workshop |
location | text | No | The venue name |
address | object | No | street, number, neighborhood, city, state, country, postal_code |
streaming_url | web address | No | |
timezone | text | No | E.g. America/Sao_Paulo. Default: the community's |
visibility | public, members, plan, private | No | plan is Subscribers (subscribers and the team); private, the team only |
as_draft | yes/no | No | true creates only the draft: nothing is announced and members don't see it until publish_event. Default: create and publish |
notify_by_email | yes/no | No | E-mails the notice on publishing (Events category). Ignored with as_draft; a past event never notifies |
space_id | id | No | An existing Events space |
section_id | id | No | Where to create the space |
space_title | text | No | |
icon | one of the icons in the list | No | The icon of the space it creates |
image_url | link | No | The event banner. See Images |
featured_image_url or featured_image_base64 | link or file | No | The event's featured image (square, 1:1). See Images |
ticket | object | No | The same fields as sale in create_course |
check_in_badge | badge id or name | No | The badge whoever checks in gets, once. Owner and admin only |
idempotency_key | text, up to 100 | No |
Returns: the space, the event (id, title, slug, status, start, end, visibility and, in a moderated space, moderation_status) and the ticket (id, title, price, stock, status), if any.
Draft and publishing. create_event creates the event as a draft, applies the badge, the images and the ticket, and only then publishes it, like the app's Publish: the ticket goes on sale once the event is live. To publish, the event needs a title, start, end, location (in person or hybrid) and the ticket type (the event's product, always created). If something is missing, nothing is undone: the event stays a draft, publish_missing lists what is missing (field, argument, message), draft_notice says so, and the next steps are update_event (what to fill in) and publish_event.
Ask like this: "Create the November Meetup, in person, on 11/15 from 7 to 10 p.m. at Espaço Paulista, Rua Augusta 1500, São Paulo, with 80 tickets at US$ 20 as a draft."
create_event accepts certificate (enabled, template_id, text), for owners and admins only. Turning it on requires end, is not retroactive and sends nothing right away; without template_id, the Platform default applies. The answer says that whoever has "going" when the event ends gets the certificate by email about 1 hour later (between 1h and 1h15), and that an archived template stops issuing. The text accepts {nome}, {assunto} (or {evento}), {data} and {cargaHoraria}. See recipe 28.
Every event is created with its own product (Event kind, free draft), and the response carries product and the next steps: set the price, the seats (update_product with capacity) and publish (publish_product). Publishing the event already puts the draft ticket types on sale; a paid type only with approved business information. ticket now sets up that product instead of creating another. Whoever buys the event's ticket has their attendance confirmed at once (Going), taking a seat. See Selling tickets.
Notes: A moderator without space_id is refused at the space step, because creating a space requires an admin: as a moderator, pass an existing events space.
update_event
Changes
Edit an event. Changes the title, description, dates, type, location, address, stream link, visibility and the banner, of a published event or a draft. Only the fields sent change. Minimum role: moderator or finance.
| Parameter | Type | Required | Description |
|---|---|---|---|
event | id, slug or link | Yes | |
title, description, start, end, type, location, address, streaming_url, visibility, category | No | The same as in create_event | |
image_url or image_base64 | link or file | No | The new banner |
featured_image_url or featured_image_base64 | link or file | No | The new featured image (1:1). Images are checked before the event changes |
check_in_badge | badge id or name, or null | No | The badge whoever checks in gets, once; null removes it. Owner and admin only |
updated_at | date | No | The version you read (the updatedAt of the last answer). Without it, the tool reads the current version first |
Ask like this: "Move tomorrow's meetup to Thursday, same time."
Editing at the same time. If someone saved the event (in the app or in another conversation) after the version you read, nothing changes: the error carries current_updated_at and the open_link next step, to read the event again and repeat. On a draft, the answer suggests publish_event, or what is still missing to publish.
recording_file_url (a link, video up to 2 GB) or recording_file_base64 (about 7 MB), with recording_file_type and recording_file_name, store the event's recording on Memberfy, in a private area: it replaces the previous one and shows to those who can attend. To take it off, remove_event_recording; for the 1-hour link, get_media_url. Minimum role: moderator (or finance). See Event recording.
update_event accepts the same certificate as create_event (enabled, template_id, text), for owners and admins only; a moderator edits the event, but a call with certificate is refused. Omitted, the event certificate is not touched. Turning it on for an event that already ended works, but the assistant warns that nobody gets a certificate from it.
publish_event
Asks to confirm
Publish an event. Publishes a draft, like the app's Publish: the event shows up (or goes to the space's moderation), enters the Feed, the draft ticket types go on sale and the event.created webhook fires. Minimum role: moderator (owner, admin, moderator and finance).
| Parameter | Type | Required | Description |
|---|---|---|---|
event | id, slug or link | Yes | The draft. Drafts are in list_events with status: DRAFT |
notify_by_email | yes/no | No | Default true: e-mails whoever can see the event (Events category) |
How it confirms. With the notice on, the first call returns the event and how many people get the e-mail (never who); the assistant shows the summary and only publishes after your yes. With notify_by_email: false, it publishes on the first call, quietly, and that event won't send the notice later.
When it refuses. A draft with something missing is refused before confirming, with missing and the update_event step. An event already published: refused (409).
Ask like this: "Publish the December Meetup draft, without sending e-mail."
start_live_stream
Changes
Start live stream. Marks an event as live, with the stream link and service, if any. Minimum role: moderator or finance.
| Parameter | Type | Required | Description |
|---|---|---|---|
event | id, slug or link | Yes | |
streaming_url | link | No | |
streaming_service | youtube, vimeo, mux | No |
Ask like this: "We're live: mark today's live session with the link https://youtube.com/…"
Notes: afterwards, the response suggests ending the stream when it's over.
stop_live_stream
Changes
End live stream. Minimum role: moderator or finance.
| Parameter | Type | Required | Description |
|---|---|---|---|
event | id, slug or link | Yes |
rsvp_event
Changes
Answer event invitation. Says whether you're going to an event. Role: owner, admin, moderator or member.
| Parameter | Type | Required | Description |
|---|---|---|---|
event | id, slug or link | Yes | |
status | going, maybe, not_going | Yes | Going, maybe or not going |
Ask like this: "RSVP me to the November Meetup."
After the end, going and maybe return 409 and only not_going is accepted; the answer explains this. An event with its product published and priced answers 403 to whoever hasn't bought it (with the price; the purchase is made in the app), and a full event answers 409 (sold out), with the offer of join_waitlist. When the event issues a certificate, the answer reminds you that only "going" at the end of the event counts: "maybe" does not.
delete_event
Asks to confirm
Delete event. Minimum role: admin.
| Parameter | Type | Required | Description |
|---|---|---|---|
event | id, slug or link | Yes |
Returns: on the first call, the title, the date and how many people RSVP'd, and the confirmation code.
Deleting the event also archives its product, and is refused (409) while there's a paid purchase that still gives access.
remove_event_recording
Asks to confirm
Remove the recording. Deletes the event's hosted recording file for good and gives the storage back. On the first call it shows the event; on the second, with the confirmation_token, it removes. Minimum role: moderator (or finance).
| Parameter | Type | Required | Description |
|---|---|---|---|
event | id, slug or link | Yes |
list_event_categories
Read-only
Event categories. The event categories, with the value and the translated name: the values create_event and update_event take in category. Minimum role: any.
Parameters: none.
Returns: each category, with the value (e.g. workshop) and the name in the connected person's language.
Ask like this: "Which event categories are there?"
register_member_for_event
Changes
Register someone for the event. The team registers a person from the community (going) for an event that doesn't charge them, with the rules of the person's own registration: an event that has already ended, required questions and seats. The person gets the confirmation e-mail. Runs on the first call. Role: owner, admin or moderator.
| Parameter | Type | Required | Description |
|---|---|---|---|
event | id or link | Yes | The event |
member | id, e-mail or profile link | Yes | The person |
Ask like this: "Register Maria for Thursday's meetup."
Registration questions
6 tools for an event's registration questions. See Events › Registration questions.
| Tool | What it does | Minimum role | Type |
|---|---|---|---|
get_event_registration_questions | The event's questions, with ids, type, required and Show at the door | Team or organizer | Read-only |
update_event_registration_questions | Saves the whole set of questions (the Forms types plus the document); removing them all asks to confirm | Moderator or finance | Changes |
list_event_registrations | Who registered, with their answers; filters by name or e-mail, by answer and by who still owes an answer | Team or organizer | Read-only |
export_event_registrations_csv | The answers as CSV, with the whole document | Team or organizer | Read-only |
get_my_event_registration | Your registration: the questions, what comes from your profile, your answers and until when you can edit | Any | Read-only |
update_my_event_registration | Changes your answers until the event starts; only what changes | Any | Changes |
rsvp_event takes answers: on an event with required questions, the first call without them comes back with the questions and what comes from the profile, and the assistant asks before confirming. Answers stay out of the audit log.
Ask like this: "Ask company, job title and CPF on the November Meetup registration, with the CPF at the door", "Who hasn't answered the event questions yet?", "Confirm my attendance at the November Meetup".
Event check-in
11 tools for door check-in. See Events › Check-in.
| Tool | What it does | Minimum role | Type |
|---|---|---|---|
get_my_event_ticket | Your ticket: QR, code and whether you checked in | Any | Read-only |
open_event_stream | Opens the live stream; signed in, it counts as attendance | Any | Changes |
list_event_check_ins | The door list, with filter and search | Team or organizer | Read-only |
check_in_event_attendee | Checks in by code, QR, ticket or member | Team or organizer | Changes |
undo_event_check_in | Undoes a check-in; the registration stays | Team or organizer | Asks to confirm |
export_event_check_ins | The door list as CSV | Team or organizer | Read-only |
list_event_kiosks | The event's kiosks | Team or organizer | Read-only |
grant_event_courtesy | Grants a courtesy: confirmed and present, taking a seat | Admin | Changes |
create_event_kiosk | Creates a kiosk link | Admin | Changes |
revoke_event_kiosk | Revokes a kiosk at once | Admin | Asks to confirm |
preview_event_certificates | Who would get the automatic certificate and who is left out | Admin | Read-only |
create_event and update_event take check_in_enabled; turning check-in on suggests create_event_kiosk. An event organizer can be a member, so the door tools show for every role and the route decides. The ticket token, the QR and the kiosk link stay out of the audit log. The ready-made prompt Event door (run_event_door) walks through check-in in the conversation.
Ticket types and batches
| Tool | What it does | Minimum role | Kind |
|---|---|---|---|
list_ticket_types | An event's ticket types, with the current batch, the price and how many are left | Any | Read-only |
get_ticket_type | A ticket type, with its batches | Any | Read-only |
quote_event_tickets | Works out the price of a quantity of tickets of a type | Any | Read-only |
list_my_event_tickets | Your tickets for an event, including the ones still to give | Any | Read-only |
list_my_tickets | Your tickets for every event: the upcoming ones, with the entry code and QR, or the past and canceled ones | Any | Read-only |
assign_event_ticket | Gives a ticket from a group order to someone by e-mail; shows first who receives it (and whether a new account will be created) | Any | Changes |
get_event_ticket_registration | The registration answers of a ticket of yours | Any | Read-only |
update_event_ticket_registration | Answers the questions of a ticket of yours | Any | Changes |
get_event_ticket_sales | Sales per type and batch: tickets, orders, gross and refunded | Admin or finance | Read-only |
export_event_ticket_sales_csv | The sales as CSV | Admin or finance | Read-only |
get_purchase_tickets | An order's tickets, to choose the refund | Admin or finance | Read-only |
create_ticket_type | Creates a ticket type with its first batch; when paid, asks to confirm | Admin | Asks to confirm |
update_ticket_type | Edits a type (name, seats, minimum and maximum per order, shown on the page, proof, publish, close) | Admin | Changes |
delete_ticket_type | Deletes a type without sales | Admin | Asks to confirm |
create_ticket_batch | Adds a batch; when paid, asks to confirm | Admin | Asks to confirm |
update_ticket_batch | Edits or closes a batch; changing the price asks to confirm | Admin | Changes |
delete_ticket_batch | Deletes a batch without sales | Admin | Asks to confirm |
update_event_ticket_settings | Event seats, show how many are left and the subscribers' type | Admin | Changes |
claim_free_product takes quantity and registration_answers; refund_purchase takes ticket_ids (not together with amount), and the summary before confirmation lists the tickets and the amount of each.
Ask like this: "Create the conference's half-price ticket at $60, 100 seats, with proof at the door", "How much did each batch sell?", "Give my second ticket to [email protected]."