Reference
Every tool your AI can call.
Your AI has 22 tools scoped to your organisation. You never need to name one — describe what you want and it picks. This page is here for when you want to know exactly what it can reach.
This page is generated from the live server, so it cannot drift from what your AI actually has.
Events
Create an event, answer its setup questions, and take it live.
create_event
Start a new event for this organiser.
Takes: name, startsAt, endsAt, timezone, tagline, description
list_events
Your events.
Takes: eventId
publish_event
Publish an event, moving it from 'draft' to 'published' so its ticket links and attendee app go live.
Takes: eventId, confirm
record_event_setup
Record what the organiser has TOLD you about an event: venue, refund policy, expected attendance, on-sale dates.
Takes: eventId, venue, refundPolicy, expectedAttendance, onSale, declineExpectedAttendance, declineOnSale
update_event_config
Update an event's presentation: tagline, description, branding (colours, logo), which optional sections the attendee app shows (agenda, speakers, venue, sponsors, faq), and their content.
Takes: eventId, tagline, description, branding, sections, content, setup
Tickets and money
Ticket types, checkout links, sales and revenue.
check_in_ticket
Check in an attendee at the door using the check-in code on their ticket (six characters, shown as 7HK-2M9 - hyphen, spaces and case are ignored, and I/L are read as 1 and O as 0).
Takes: code
generate_checkout
Create a hosted Stripe Checkout link for a PAID ticket type on one of your published events, for ONE buyer's purchase.
Takes: eventId, ticketTypeId, quantity, requestId
get_revenue
What you have sold, one entry per currency: gross, Presso's 1% fee, net of that fee, orders, refunds and disputes.
Takes: eventId, days, includeOrders
issue_free_ticket
Issue a FREE ticket to an attendee by email (for a pricePence-0 ticket type).
Takes: eventId, ticketTypeId, email, name
ticket_types
What one of your events sells, and how to change it.
Takes: action, eventId, name, pricePence, free, currency, quantity, unlimited, ticketTypeId
Agenda and speakers
The schedule attendees see in the event app.
add_session
Add ONE session to an event's agenda.
Takes: eventId, ref, title, description, startsAt, endsAt, track, room
add_speaker
Add ONE speaker to an event.
Takes: eventId, ref, name, headline, company, bio, photoUrl, links
get_agenda
Read an event's whole agenda: sessions grouped by day (in the event's OWN timezone, not UTC), each with its speakers and their roles, plus the full speaker list.
Takes: eventId
remove_session
Remove ONE session by its 'ref'.
Takes: eventId, ref
remove_speaker
Remove ONE speaker by their 'ref'.
Takes: eventId, ref
set_agenda
Write an event's WHOLE agenda in one call.
Takes: eventId, speakers, sessions, expectRemovals, dryRun
update_session
Update ONE session by its 'ref'.
Takes: eventId, ref, title, description, startsAt, endsAt, track, room
update_speaker
Update ONE speaker by their 'ref'.
Takes: eventId, ref, name, headline, company, bio, photoUrl, links
People
Your team, your attendees, and the door.
get_attendees
Who holds a ticket: one row per ticket with name, email, event, ticket type, status (valid, refunded, cancelled) and whether they have checked in.
Takes: eventId, format, limit, offset
update_organiser
Set the organisation's PUBLIC identity: display name, description, location, website, logo and brand colours, plus whether the public profile page is visible.
Takes: name, description, location, websiteUrl, logoUrl, brandColours, publicProfile
Everything else
get_analytics
Ticket volume across every event you own: valid tickets issued per day for the last N days (default 30), broken down by ticket type and by event.
Takes: days
team
Your team: who can sign in to this organiser and what they can do.
Takes: action, email, role, workosUserId
What it cannot do
Some limits are enforced on our servers rather than asked for in a prompt: it cannot invent a ticket price, and it cannot publish an event without submitting the full price list back for checking. More on how that works.