All integrations

Eventee

BUSINESS · CALENDAR

One event’s agenda, speakers, partners, and attendee check-ins in that account.

Acts as the person, not as itself

Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.

Credentials never touch the agent

Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.

Every call on the record

Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.

What an agent can do

Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.

eventee_delete_attendeeWRITE

Remove an invited attendee from the event by EMAIL (there is no path id): an attendee who already entered the event loses access and every link between them and the event is removed. Answers 204 whether or not the address was present (measured 2026-09-19), so confirm with `eventee_get_participants`. `email` is required: `{}` answers 422 "Email is required.".

api
eventee_delete_hall_by_idWRITE

Delete a hall by id. Answers 204 with no body. An event must keep at least one hall: deleting the last one answers 400 `{"error": "cannot_delete_only_hall"}` (documented). An unknown id answers 404.

api
eventee_delete_label_by_idWRITE

Delete a track by id and detach it from every session. Answers 204 with no body. Tracks are a per-event feature the organiser switches on in the Eventee admin (Settings -> Features -> Tracks); with it OFF this call answers 403 `{"not_authorized": "You are not authorized to do this step."}`, which is the feature, not the token (measured 2026-09-19 on an event with `has_tracks: false`).

api
eventee_delete_lecture_by_idWRITE

Delete a session (lecture or workshop) by id, with its bookings, questions, polls and reviews. Answers 204 with no body; an unknown id answers 404.

api
eventee_delete_partner_by_idWRITE

Delete a partner by id, with its sections. Answers 204 with no body; an unknown id answers 404.

api
eventee_delete_pause_by_idWRITE

Delete a break by id. Answers 204 with no body; an unknown id answers 404.

api
eventee_delete_registrationWRITE

Remove a registration from the event by EMAIL (there is no path id). Answers 204 whether or not the address was registered (measured 2026-09-19), so confirm with `eventee_get_registrations`. `email` is required: `{}` answers 422 "Email is required.".

api
eventee_delete_speaker_by_idWRITE

Delete a speaker by id and detach them from every session. Answers 204 with no body; an unknown id answers 404.

api
eventee_delete_test_contentWRITE

DESTRUCTIVE AND IRREVERSIBLE: deletes ALL tracks, breaks, speakers, workshops, lectures and halls from the connected event in one call (Eventee's own wording: "delete all tracks, pauses, speakers, workshops, lectures and halls from your event"). Attendees, registrations, partners and reviews are not touched. Eventee publishes it for wiping test data; the token is per event, so the blast radius is the one event this connection holds. Answers 204 with no body; read `eventee_get_content` back to confirm.

api
eventee_get_contentREAD

Get the whole agenda of the connected event in one call: `halls`, `days` (each with its `lectures`), `workshops`, `pauses` (breaks), `speakers` and `tracks`. Measured 2026-09-19: sessions are listed under `days[].lectures`, each carrying `hall_id`, `speakers` (ids), `tracks`, `stream`, `virtual_meeting`, `capacity` and `booking_info`, while the top-level `lectures` array was empty. This is the read-back for every create, update and delete below, and the probe a pasted token is checked against.

api
eventee_get_groupsREAD

List the event's attendee groups (id, name, public name, colour, emoji, which features each group sees, ticket names, `is_default`). The `id` is what `group_id` on an invite refers to. Empty array when the Groups feature is off or no group exists.

api
eventee_get_participantsREAD

List the event's attendees: `id`, `email`, `name`, `first_name`, `last_name`, `company`, `position`, `role`, `group_id`, `checked_at`, `registered_at`. The `id` is what the check-in tool takes; the `email` is what removal takes.

api
eventee_get_partnersREAD

List the event's partners with their contact details, logo, sponsor/exhibitor info and `sections`. Empty array when none exist.

api
eventee_get_registrationsREAD

List the event's registrations: `id`, `email`, `email_valid`, `status`, name and profile fields, `group_id`, `form_answers`. Empty array when none exist.

api
eventee_get_reviewsREAD

List every attendee review (star rating and comment) left on the event's sessions, each with the `lecture` it rates and the reviewer's username. Empty array on an event with no reviews yet.

api
eventee_patch_hall_by_idWRITE

Rename an existing hall. This is a FULL REPLACE, not a merge: Eventee answers 422 naming the missing field unless every required field is re-sent (measured 2026-09-19), so read the current values first and send them all.

api
eventee_patch_label_by_idWRITE

Update a track's name and colour by id. Tracks are a per-event feature the organiser switches on in the Eventee admin (Settings -> Features -> Tracks); with it OFF this call answers 403 `{"not_authorized": "You are not authorized to do this step."}`, which is the feature, not the token (measured 2026-09-19 on an event with `has_tracks: false`).

api
eventee_patch_lecture_by_idWRITE

Update a session (lecture or workshop) by id. This is a FULL REPLACE, not a merge: Eventee answers 422 naming the missing field unless every required field is re-sent (measured 2026-09-19), so read the current values first and send them all. `speakers` and `tracks` replace the previous lists. Times are `YYYY-MM-DD HH:MM:SS` in the event's own timezone -- an ISO 8601 value answers 422 "must match the format Y-m-d H:i:s" and a time outside the event's dates answers 400 `session_not_in_event` (both measured 2026-09-19).

api
eventee_patch_partner_by_idWRITE

Update a partner's details by id. This is a FULL REPLACE, not a merge: Eventee answers 422 naming the missing field unless every required field is re-sent (measured 2026-09-19), so read the current values first and send them all. Sections are edited with `eventee_patch_partner_by_id_sections`, not here.

api
eventee_patch_partner_by_id_sectionsWRITE

Replace the content sections of a partner's page. ALWAYS SEND THE COMPLETE LIST: a section with an `id` is updated, one without is created, and any existing section missing from the list is DELETED; the final order is the list's order (documented, and measured 2026-09-19 -- an empty list removed every section). Each item's `type` selects what it stores: 0 title, 1 html, 2 urls, 3 images, 4 files, 5 social links. Answers 200 with the partner, whose `sections[]` carry each stored section's `id`, `type` and `data`.

api
eventee_patch_pause_by_idWRITE

Update a break by id. This is a FULL REPLACE, not a merge: Eventee answers 422 naming the missing field unless every required field is re-sent (measured 2026-09-19), so read the current values first and send them all. Times are `YYYY-MM-DD HH:MM:SS` in the event's own timezone -- an ISO 8601 value answers 422 "must match the format Y-m-d H:i:s" and a time outside the event's dates answers 400 `session_not_in_event` (both measured 2026-09-19).

api
eventee_patch_speaker_by_idWRITE

Update a speaker by id. Unlike the other updates this one MERGES: sending only `company` answered 200 with the name preserved (measured 2026-09-19), so send just the fields to change.

api
eventee_post_hallWRITE

Create a hall (a room or stage sessions are scheduled in). Answers 201 with the hall's `id`, `name` and `order`.

api
eventee_post_labelWRITE

Create a track (Eventee's coloured agenda label; the path is `/label`). Both `name` and `color` are required (measured 2026-09-19). Answers 201 with the track's `id`. Tracks are a per-event feature the organiser switches on in the Eventee admin (Settings -> Features -> Tracks); with it OFF this call answers 403 `{"not_authorized": "You are not authorized to do this step."}`, which is the feature, not the token (measured 2026-09-19 on an event with `has_tracks: false`). With the feature off this create still answers 201, but the track never appears in `eventee_get_content` and does not attach to sessions.

api
eventee_post_lectureWRITE

Create a session -- a lecture (type 0) or a bookable workshop (type 1) -- on the event's agenda. Only `name`, `start` and `end` are required (measured 2026-09-19; the blueprint also lists hall, speakers, type and tracks, and the server does not). Times are `YYYY-MM-DD HH:MM:SS` in the event's own timezone -- an ISO 8601 value answers 422 "must match the format Y-m-d H:i:s" and a time outside the event's dates answers 400 `session_not_in_event` (both measured 2026-09-19). Answers 201 with the session's `id`, its `code` and `qr_code_url`.

api
eventee_post_partnerWRITE

Create a partner (sponsor or exhibitor) on the event. Only `company` is required. Image URLs are downloaded and re-hosted by Eventee. Answers 201 with the partner's `id`, `code`, `sections` (empty) and `sponsor_info` / `exhibitor_info`.

api
eventee_post_pauseWRITE

Create a break ("pause" -- coffee, lunch, networking) on the agenda. Times are `YYYY-MM-DD HH:MM:SS` in the event's own timezone -- an ISO 8601 value answers 422 "must match the format Y-m-d H:i:s" and a time outside the event's dates answers 400 `session_not_in_event` (both measured 2026-09-19). Answers 201 with the break's `id` and the agenda `day` it landed on.

api
eventee_post_speakerWRITE

Create a speaker. Only `name` is required (measured 2026-09-19; the blueprint also lists `phone`, and the server does not). A `photo` URL is downloaded and re-hosted; an unreadable image answers 400 `image_not_readable`. Answers 201 with the speaker's `id`; attach it to sessions through `speakers` on `eventee_post_lecture`.

api
eventee_put_attendee_by_id_checkinWRITE

Mark an attendee as checked in (`checkin: true`) or undo it (`checkin: false`), by the attendee id from `eventee_get_participants`. Answers 200 with the attendee, `checked_at` set to the check-in time (measured) or null. An unknown id answers 404.

api
eventee_put_attendee_inviteWRITE

Invite (import) one or more attendees into the event by email, with an optional profile, group and tickets. Each `users` item needs an `email`. Eventee emails an invitation unless the item says `send_email: false`. Answers 200 with the event's `url` and `qr_code` (not per person); read `eventee_get_participants` back for the new attendee ids. Inviting an address already present updates it rather than duplicating.

api
eventee_put_registration_inviteWRITE

Add one or more registrations (people on the registration list, not yet attendees) by email with an optional profile and group. Each `registrations` item needs an `email`. Eventee emails them unless the item says `send_email: false`. Answers 200 with the event's `url` and `qr_code`; read `eventee_get_registrations` back for the new ids.

api

Put Eventee behind one governed endpoint.

Same permissions, same audit trail, whatever else you connect next.