Presso Events - Guide

Reference

Every tool your AI can call.

Your AI has 34 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

get_event_status

Get live status for one of your events: its publish status, how many valid tickets have been issued, and how many attendees have checked in.

Takes: eventId

get_organiser_events

Your Events kanban: every event you own with its stage (draft, on sale, live, closed), valid tickets issued and total capacity.

list_events

List all of your events (newest first) with their publish status and dates.

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.

add_ticket_type

Add a ticket type to an event, e.g.

Takes: eventId, name, pricePence, free, currency, quantity, unlimited

archive_ticket_type

Retire a ticket type so it can no longer be bought.

Takes: ticketTypeId

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_organiser_orders

Every order (one row per Stripe payment) across all of your events - buyer, event, status, ticket quantity and total.

get_organiser_revenue

Revenue summary across all of your events, one entry per currency - gross, Presso's 1% fee, net of fee, orders, refunds and disputes, plus a daily series.

Takes: days

get_sales

Sales and platform-fee summary for one of your events, one entry per currency - gross, Presso's 1% fee, net of that fee, orders, refunds and disputes, plus a count of tickets still valid.

Takes: eventId

get_ticket_links

Get the public page URL for one of your events plus its live ticket types.

Takes: eventId

issue_free_ticket

Issue a FREE ticket to an attendee by email (for a pricePence-0 ticket type).

Takes: eventId, ticketTypeId, email, name

list_ticket_types

List all ticket types for one of your events, with prices (in pence) and remaining-quantity rules.

Takes: eventId

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.

export_attendees

Export the attendee roster for one of your events as CSV (name, email, ticket type, status, checked-in).

Takes: eventId

get_organiser_analytics

Real ticket-volume analytics across every event you own: daily valid-ticket counts for the last N days (default 30) and a breakdown by ticket type and event.

Takes: days

get_organiser_attendees

Your org-wide attendees/CRM list: one row per ticket across every event you own (optionally narrowed to one event by eventId).

Takes: eventId, limit, offset

get_organiser_overview

Your dashboard at a glance: how many events you have, how many are published, total valid tickets issued and checked in, and your next on-sale event.

invite_member

Invite a team member to your organiser by email with a role (owner, editor or viewer).

Takes: email, role

list_members

List your team members and their roles (owner, editor, viewer).

query_attendees

List the attendees who hold tickets to your events (optionally one event by eventId).

Takes: eventId

remove_member

Remove a team member's access to your organiser.

Takes: workosUserId

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

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.