Read an Eventee event's program, participants and reviews; create sessions, speakers; invite.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
WRITE: check a participant in at the event (sets checked_at to now) or undo the check-in. Use the participant `id` from eventee_list_participants. Fails if the person is not a participant of the event. PATCH /public/api/v1/attendee/{attendee_id}/checkin.
true = check in, false = undo the check-in.
Participant id (eventee_list_participants → id).
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
WRITE: check a participant in at the event (sets checked_at to now) or undo the check-in. Use the participant `id` from eventee_list_participants. Fails if the person is not a participant of the event. PATCH /public/api/v1/attendee/{attendee_id}/checkin.
| Argument | Type | Description |
|---|---|---|
| checkin* | boolean | true = check in, false = undo the check-in. |
| attendee_id* | integer | Participant id (eventee_list_participants → id). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"attendee_id",
"checkin"
],
"properties": {
"checkin": {
"type": "boolean",
"description": "true = check in, false = undo the check-in."
},
"attendee_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Participant id (eventee_list_participants → id).",
"exclusiveMinimum": 0
}
}
}WRITE: add a break (coffee, lunch...) to the event program on the day of `start` (created if missing). POST /public/api/v1/pause.
| Argument | Type | Description |
|---|---|---|
| end* | string | Local time in the event's time zone, 'yyyy-mm-dd hh:mm:ss' (e.g. 2026-06-01 09:00:00). |
| name* | string | Name of the break. |
| start* | string | Local time in the event's time zone, 'yyyy-mm-dd hh:mm:ss' (e.g. 2026-06-01 09:00:00). |
| description | string | Optional description. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name",
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2}) (\\d{2}):(\\d{2}):(\\d{2})$",
"description": "Local time in the event's time zone, 'yyyy-mm-dd hh:mm:ss' (e.g. 2026-06-01 09:00:00)."
},
"name": {
"type": "string",
"maxLength": 128,
"minLength": 1,
"description": "Name of the break."
},
"start": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2}) (\\d{2}):(\\d{2}):(\\d{2})$",
"description": "Local time in the event's time zone, 'yyyy-mm-dd hh:mm:ss' (e.g. 2026-06-01 09:00:00)."
},
"description": {
"type": "string",
"maxLength": 5000,
"description": "Optional description."
}
}
}WRITE: add a hall (room, stage or virtual space) to the event. Use the returned id as hall_id for sessions. POST /public/api/v1/hall.
| Argument | Type | Description |
|---|---|---|
| name* | string | Name of the hall. |
| order | integer | Position in the agenda (0 = first). Default: the end. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 255,
"minLength": 1,
"description": "Name of the hall."
},
"order": {
"type": "integer",
"maximum": 10000,
"minimum": 0,
"description": "Position in the agenda (0 = first). Default: the end."
}
}
}WRITE: add a label (track) for sessions, with a colour. Use the returned id in label_ids of a session. POST /public/api/v1/label.
| Argument | Type | Description |
|---|---|---|
| name* | string | Name of the label. |
| color* | string | Colour as a hex code, e.g. #3B82F6. |
| order | integer | Position in lists (0 = first). Default: the end. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name",
"color"
],
"properties": {
"name": {
"type": "string",
"maxLength": 191,
"minLength": 1,
"description": "Name of the label."
},
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$",
"description": "Colour as a hex code, e.g. #3B82F6."
},
"order": {
"type": "integer",
"maximum": 10000,
"minimum": 0,
"description": "Position in lists (0 = first). Default: the end."
}
}
}WRITE: add a session (lecture or workshop) to the event program. It appears in the event app for attendees. The event day is taken from `start` and created if missing. The hall, speakers and labels must already exist (create them first and pass their ids). POST /public/api/v1/lecture.
| Argument | Type | Description |
|---|---|---|
| end* | string | Local time in the event's time zone, 'yyyy-mm-dd hh:mm:ss' (e.g. 2026-06-01 09:00:00). |
| name* | string | Title of the session. |
| type | string | lecture (default) or workshop (bookable, limited capacity). |
| start* | string | Local time in the event's time zone, 'yyyy-mm-dd hh:mm:ss' (e.g. 2026-06-01 09:00:00). |
| checkin | boolean | Enable attendee check-in at the session (workshops only). Default false. |
| hall_id | integer | Hall id (eventee_get_program → halls). |
| polling | boolean | Allow live polls. Default false. |
| capacity | integer | Seats for a workshop (bookable). Default 0; only applies to workshops. |
WRITE: add a speaker profile to the event (shown in the event app). Use the returned id in speaker_ids of a session. The photo, if given, is downloaded by Eventee from the URL. POST /public/api/v1/speaker.
| Argument | Type | Description |
|---|---|---|
| bio | string | Biography (plain text or simple HTML). |
| web | string | Website URL. |
| name* | string | Full name. |
| string | Email address. | |
| phone | string | Phone number. |
| company | string | Company or organisation. |
| country | string | Country, two-letter ISO code (e.g. CZ). |
| string | X (Twitter) profile URL. | |
| string | Facebook profile URL. | |
| language | string | Language the speaker presents in (e.g. en, cs). |
WRITE, IRREVERSIBLE: delete a session (lecture or workshop) together with its questions, polls, workshop bookings and ratings. Needs confirm: true (without it: a preview, nothing deleted). DELETE /public/api/v1/lecture/{session_id}.
| Argument | Type | Description |
|---|---|---|
| confirm | boolean | Must be true to run. Without it nothing is changed and a preview is returned; ask the user to approve first. |
| session_id* | integer | Session id to delete. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"session_id"
],
"properties": {
"confirm": {
"type": "boolean",
"description": "Must be true to run. Without it nothing is changed and a preview is returned; ask the user to approve first."
},
"session_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Session id to delete.",
"exclusiveMinimum": 0
}
}
}The whole program of the event the API token belongs to: halls, event days, sessions (`lectures`, type 0), workshops (type 1, with capacity and bookings), breaks (`pauses`), speakers and labels (`tracks`). Use it to read back ids (hall_id, speaker ids, label ids, session ids) before changing anything. Replies are compact: long texts are clipped (description_max), each part is paged (limit/offset, `more` maps each part with further rows to the offset to continue from; the reply is cut to a size budget, so for big events read one part at a time with `parts`) and `parts` selects what to read. Times are in the event's time zone. GET /public/api/v1/content.
| Argument | Type | Description |
|---|---|---|
| date | string | Only this day's program (yyyy-mm-dd). Days without content return empty lists. |
| limit | integer | Max rows per part, 1-200 (default 50). |
| parts | array | Only these parts (default: all): halls, days, sessions, workshops, breaks, speakers, labels. |
| offset | integer | Rows to skip in every part (default 0); With several parts the offset applies to all of them: page a big event one part at a time. |
| description_max | integer | Characters kept of each description / speaker bio (default 300). Raise it to read a full text. |
| with_overlapping | boolean | Also list event days that have no content yet in `days`. |
WRITE: add up to 100 people to the event as attendees, optionally with a group and tickets. People who already have an Eventee account are added directly; others get a profile that links when they sign up with the same email. With send_email=true Eventee SENDS AN INVITATION EMAIL to every person listed (default false: no email); sending needs confirm: true (without it: a preview, nothing sent or added). Invalid entries and the event's admins/moderators are skipped silently by Eventee, so re-read eventee_list_participants to confirm. The first 25 are processed immediately, the rest in the background. Tickets replace the person's existing tickets. PUT /public/api/v1/attendee/invite.
| Argument | Type | Description |
|---|---|---|
| users* | array | The people to add (1-100). |
| confirm | boolean | Required (true) only with send_email=true. Without it nothing is sent or added and a preview is returned; ask the user to approve the recipients first. |
| group_id | integer | Default attendee group for people without their own group_id (eventee_list_groups). |
| send_email | boolean | Send each person the invitation email. Default false. Needs confirm: true. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"users"
],
"properties": {
"users": {
"type": "array",
"items": {
"type": "object",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"maxLength": 191,
"description": "Email address."
},
"phone": {
"type": "string",
"maxLength": 32,
"description": "Phone number."
},
"company": {
"type": "string",
"maxLength": 128,
"description": "Company."
},
"tickets": {
"type": "array",
"items": {
"type": "object",
"required": [
"number"
],
"properties": {
"type": {
"enum": [
"plain",
"barcode",
"qr"
],
"type": "string",
"description": "How the ticket number is displayed."
},
"title": {
"type": "string",
"maxLength": 256,
"description": "Ticket name."
},
"number": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "Ticket number or code."
}
}
},
"maxItems": 20,
"description": "Tickets of the person (replace existing ones)."
},
"group_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Attendee group for this person (overrides the default group_id).",
"exclusiveMinimum": 0
},
"position": {
"type": "string",
"maxLength": 512,
"description": "Job title."
},
"last_name": {
"type": "string",
"maxLength": 191,
"description": "Last name."
},
"first_name": {
"type": "string",
"maxLength": 191,
"description": "First name."
}
}
},
"maxItems": 100,
"minItems": 1,
"description": "The people to add (1-100)."
},
"confirm": {
"type": "boolean",
"description": "Required (true) only with send_email=true. Without it nothing is sent or added and a preview is returned; ask the user to approve the recipients first."
},
"group_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Default attendee group for people without their own group_id (eventee_list_groups).",
"exclusiveMinimum": 0
},
"send_email": {
"type": "boolean",
"description": "Send each person the invitation email. Default false. Needs confirm: true."
}
}
}Attendee groups of the event with the app features enabled for each (agenda, questions, polling, networking, ratings, ...), the ticket names that put people into the group automatically, and which group is the default. Use the ids as group_id when inviting or registering people. GET /public/api/v1/groups.
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many rows to return, 1-200 (default 50). |
| offset | integer | Rows to skip (default 0). Pass the previous reply's next_offset. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"description": "How many rows to return, 1-200 (default 50).",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Rows to skip (default 0). Pass the previous reply's next_offset."
}
}
}Participants of the event (attendees, speakers, moderators, admins) with role, group, tickets, check-in time and registration time. `role`: a = admin, m = moderator, l = speaker, e = attendee. `checked_at` is null until checked in. Anonymous participants and deleted accounts have a placeholder email without '@'. The personal app link of each participant is not returned. Filters apply after the full list is read; use limit/offset for large events. GET /public/api/v1/participants.
| Argument | Type | Description |
|---|---|---|
| role | string | Only this role. |
| limit | integer | How many rows to return, 1-200 (default 50). |
| offset | integer | Rows to skip (default 0). Pass the previous reply's next_offset. |
| search | string | Keep participants whose name, email or company contains this text. |
| group_id | integer | Only this attendee group (ids from eventee_list_groups). |
| checked_in | boolean | true = only checked-in people, false = only those not yet checked in. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"role": {
"enum": [
"attendee",
"speaker",
"moderator",
"admin"
],
"type": "string",
"description": "Only this role."
},
"limit": {
"type": "integer",
"maximum": 200,
"description": "How many rows to return, 1-200 (default 50).",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Rows to skip (default 0). Pass the previous reply's next_offset."
},
"search": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Keep participants whose name, email or company contains this text."
},
"group_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only this attendee group (ids from eventee_list_groups).",
"exclusiveMinimum": 0
},
"checked_in": {
"type": "boolean",
"description": "true = only checked-in people, false = only those not yet checked in."
}
}
}Partners (sponsors and exhibitors) of the event with company details, contact data, code and page sections. GET /public/api/v1/partners.
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many rows to return, 1-200 (default 50). |
| offset | integer | Rows to skip (default 0). Pass the previous reply's next_offset. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"description": "How many rows to return, 1-200 (default 50).",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Rows to skip (default 0). Pass the previous reply's next_offset."
}
}
}Registrations of the event (people who registered or were pre-registered) with status (pending / confirmed / declined), group, contact details and registration-form answers. Filters apply after the full list is read; use limit/offset for large events. GET /public/api/v1/registrations.
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many rows to return, 1-200 (default 50). |
| offset | integer | Rows to skip (default 0). Pass the previous reply's next_offset. |
| search | string | Keep registrations whose name, email or company contains this text. |
| status | string | Only this registration status. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"description": "How many rows to return, 1-200 (default 50).",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Rows to skip (default 0). Pass the previous reply's next_offset."
},
"search": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Keep registrations whose name, email or company contains this text."
},
"status": {
"enum": [
"pending",
"confirmed",
"declined"
],
"type": "string",
"description": "Only this registration status."
}
}
}Session ratings left by attendees (1-5 stars with optional comment), each with the rated session, plus a per-session summary (count and average stars; the 50 most reviewed sessions, `summary_truncated` says if more exist: use session_id for a specific one). Filters apply after the full list is read. GET /public/api/v1/reviews.
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many rows to return, 1-200 (default 50). |
| offset | integer | Rows to skip (default 0). Pass the previous reply's next_offset. |
| max_stars | integer | Only reviews with at most this many stars. |
| min_stars | integer | Only reviews with at least this many stars. |
| session_id | integer | Only reviews of this session (id from eventee_get_program). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"description": "How many rows to return, 1-200 (default 50).",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Rows to skip (default 0). Pass the previous reply's next_offset."
},
"max_stars": {
"type": "integer",
"maximum": 5,
"minimum": 1,
"description": "Only reviews with at most this many stars."
},
"min_stars": {
"type": "integer",
"maximum": 5,
"minimum": 1,
"description": "Only reviews with at least this many stars."
},
"session_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only reviews of this session (id from eventee_get_program).",
"exclusiveMinimum": 0
}
}
}WRITE: pre-register up to 100 people for the event (an existing registration with the same email is updated, not duplicated). With send_email=true Eventee SENDS A REGISTRATION EMAIL to every person listed (default false: no email); sending needs confirm: true (without it: a preview, nothing sent or registered). Invalid entries are skipped silently by Eventee, so re-read eventee_list_registrations to confirm. PUT /public/api/v1/registration/invite.
| Argument | Type | Description |
|---|---|---|
| confirm | boolean | Required (true) only with send_email=true. Without it nothing is sent or registered and a preview is returned; ask the user to approve the recipients first. |
| group_id | integer | Default attendee group for people without their own group_id (eventee_list_groups). |
| send_email | boolean | Send each person the registration email. Default false. Needs confirm: true. |
| registrations* | array | The people to register (1-100). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"registrations"
],
"properties": {
"confirm": {
"type": "boolean",
"description": "Required (true) only with send_email=true. Without it nothing is sent or registered and a preview is returned; ask the user to approve the recipients first."
},
"group_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Default attendee group for people without their own group_id (eventee_list_groups).",
"exclusiveMinimum": 0
},
"send_email": {
"type": "boolean",
"description": "Send each person the registration email. Default false. Needs confirm: true."
},
"registrations": {
"type": "array",
"items": {
"type": "object",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"maxLength": 191,
"description": "Email address."
},
"phone": {
"type": "string",
"maxLength": 32,
"description": "Phone number."
},
"company": {
"type": "string",
"maxLength": 128,
"description": "Company."
},
"group_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Attendee group for this person (overrides the default group_id).",
"exclusiveMinimum": 0
},
"position": {
"type": "string",
"maxLength": 512,
"description": "Job title."
},
"last_name": {
"type": "string",
"maxLength": 191,
"description": "Last name."
},
"first_name": {
"type": "string",
"maxLength": 191,
"description": "First name."
}
}
},
"maxItems": 100,
"minItems": 1,
"description": "The people to register (1-100)."
}
}
}WRITE, IRREVERSIBLE: remove the person with this email from the event: their participation, invitation and tickets for this event are deleted (their Eventee account is not). Eventee reports success even when nobody had that email. Needs confirm: true (without it: a preview, nothing removed). DELETE /public/api/v1/attendee?email=.
| Argument | Type | Description |
|---|---|---|
| email* | string | Email of the attendee to remove. |
| confirm | boolean | Must be true to run. Without it nothing is changed and a preview is returned; ask the user to approve first. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"maxLength": 191,
"description": "Email of the attendee to remove."
},
"confirm": {
"type": "boolean",
"description": "Must be true to run. Without it nothing is changed and a preview is returned; ask the user to approve first."
}
}
}WRITE, IRREVERSIBLE: delete the registration with this email. Eventee reports success even when no such registration exists. Needs confirm: true (without it: a preview, nothing deleted). DELETE /public/api/v1/registration?email=.
| Argument | Type | Description |
|---|---|---|
| email* | string | Email of the registration to delete. |
| confirm | boolean | Must be true to run. Without it nothing is changed and a preview is returned; ask the user to approve first. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"maxLength": 191,
"description": "Email of the registration to delete."
},
"confirm": {
"type": "boolean",
"description": "Must be true to run. Without it nothing is changed and a preview is returned; ask the user to approve first."
}
}
}WRITE: replace a session (full update, not a patch). Eventee RESETS what is omitted: speakers, labels, type, capacity and the Q&A / moderation / polling switches, so `type`, `speaker_ids`, `label_ids`, `capacity`, `discussion`, `moderating` and `polling` are required here; read the session first with eventee_get_program and pass its current values (an empty list removes all). The hall and live stream are kept when omitted. `start` must fall on an existing day of the event. PATCH /public/api/v1/lecture/{session_id}.
| Argument | Type | Description |
|---|---|---|
| end* | string | Local time in the event's time zone, 'yyyy-mm-dd hh:mm:ss' (e.g. 2026-06-01 09:00:00). |
| name* | string | Title of the session. |
| type* | string | lecture or workshop (required: an omitted type turns a workshop into a lecture). |
| start* | string | Local time in the event's time zone, 'yyyy-mm-dd hh:mm:ss' (e.g. 2026-06-01 09:00:00). |
| hall_id | integer | Hall id (eventee_get_program → halls). |
| polling* | boolean | Live polls on/off (required: omitted = off). Pass the current value. |
| label_ids |
| array |
| Label (track) ids to attach. |
| discussion | boolean | Allow attendee questions (Q&A). Default false. |
| moderating | boolean | Questions need moderator approval first. Default false. |
| stream_url | string | Live stream URL (YouTube, Vimeo, Twitch, Zoom...). |
| description | string | Description (plain text or simple HTML). |
| speaker_ids | array | Speaker ids in display order. |
| virtual_meeting_url | string | Virtual meeting URL attendees can join (Zoom, Google Meet...). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name",
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2}) (\\d{2}):(\\d{2}):(\\d{2})$",
"description": "Local time in the event's time zone, 'yyyy-mm-dd hh:mm:ss' (e.g. 2026-06-01 09:00:00)."
},
"name": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Title of the session."
},
"type": {
"enum": [
"lecture",
"workshop"
],
"type": "string",
"description": "lecture (default) or workshop (bookable, limited capacity)."
},
"start": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2}) (\\d{2}):(\\d{2}):(\\d{2})$",
"description": "Local time in the event's time zone, 'yyyy-mm-dd hh:mm:ss' (e.g. 2026-06-01 09:00:00)."
},
"checkin": {
"type": "boolean",
"description": "Enable attendee check-in at the session (workshops only). Default false."
},
"hall_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Hall id (eventee_get_program → halls).",
"exclusiveMinimum": 0
},
"polling": {
"type": "boolean",
"description": "Allow live polls. Default false."
},
"capacity": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Seats for a workshop (bookable). Default 0; only applies to workshops."
},
"label_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"description": "Label (track) ids to attach."
},
"discussion": {
"type": "boolean",
"description": "Allow attendee questions (Q&A). Default false."
},
"moderating": {
"type": "boolean",
"description": "Questions need moderator approval first. Default false."
},
"stream_url": {
"type": "string",
"format": "uri",
"maxLength": 2000,
"description": "Live stream URL (YouTube, Vimeo, Twitch, Zoom...)."
},
"description": {
"type": "string",
"maxLength": 10000,
"description": "Description (plain text or simple HTML)."
},
"speaker_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"description": "Speaker ids in display order."
},
"virtual_meeting_url": {
"type": "string",
"format": "uri",
"maxLength": 2000,
"description": "Virtual meeting URL attendees can join (Zoom, Google Meet...)."
}
}
}| string |
| LinkedIn profile URL. |
| position | string | Job title. |
| string | Instagram profile URL. |
| photo_url | string | URL of a profile photo. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name"
],
"properties": {
"bio": {
"type": "string",
"maxLength": 20000,
"description": "Biography (plain text or simple HTML)."
},
"web": {
"type": "string",
"format": "uri",
"maxLength": 512,
"description": "Website URL."
},
"name": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Full name."
},
"email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"maxLength": 255,
"description": "Email address."
},
"phone": {
"type": "string",
"maxLength": 32,
"description": "Phone number."
},
"company": {
"type": "string",
"maxLength": 128,
"description": "Company or organisation."
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "Country, two-letter ISO code (e.g. CZ)."
},
"twitter": {
"type": "string",
"format": "uri",
"maxLength": 512,
"description": "X (Twitter) profile URL."
},
"facebook": {
"type": "string",
"format": "uri",
"maxLength": 512,
"description": "Facebook profile URL."
},
"language": {
"type": "string",
"maxLength": 24,
"description": "Language the speaker presents in (e.g. en, cs)."
},
"linkedin": {
"type": "string",
"format": "uri",
"maxLength": 512,
"description": "LinkedIn profile URL."
},
"position": {
"type": "string",
"maxLength": 128,
"description": "Job title."
},
"instagram": {
"type": "string",
"format": "uri",
"maxLength": 512,
"description": "Instagram profile URL."
},
"photo_url": {
"type": "string",
"format": "uri",
"maxLength": 2000,
"description": "URL of a profile photo."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"date": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "Only this day's program (yyyy-mm-dd). Days without content return empty lists."
},
"limit": {
"type": "integer",
"maximum": 200,
"description": "Max rows per part, 1-200 (default 50).",
"exclusiveMinimum": 0
},
"parts": {
"type": "array",
"items": {
"enum": [
"halls",
"days",
"sessions",
"workshops",
"breaks",
"speakers",
"labels"
],
"type": "string"
},
"minItems": 1,
"description": "Only these parts (default: all): halls, days, sessions, workshops, breaks, speakers, labels."
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Rows to skip in every part (default 0); With several parts the offset applies to all of them: page a big event one part at a time."
},
"description_max": {
"type": "integer",
"maximum": 5000,
"minimum": 0,
"description": "Characters kept of each description / speaker bio (default 300). Raise it to read a full text."
},
"with_overlapping": {
"type": "boolean",
"description": "Also list event days that have no content yet in `days`."
}
}
}| capacity* |
| integer |
| Workshop seats (required: an omitted capacity is reset to 0); pass the current value, 0 for a lecture. |
| label_ids* | array | Label (track) ids; [] removes all labels. |
| discussion* | boolean | Attendee questions (Q&A) on/off (required: omitted = off). Pass the current value. |
| moderating* | boolean | Questions need moderator approval (required: omitted = off). Pass the current value. |
| session_id* | integer | Session id (eventee_get_program → lectures / workshops). |
| stream_url | string | Live stream URL (YouTube, Vimeo, Twitch, Zoom...). |
| description | string | Description (plain text or simple HTML). |
| speaker_ids* | array | Speaker ids in display order; [] removes all speakers. |
| virtual_meeting_url | string | Virtual meeting URL attendees can join (Zoom, Google Meet...). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"session_id",
"name",
"start",
"end",
"discussion",
"moderating",
"polling",
"capacity",
"type",
"speaker_ids",
"label_ids"
],
"properties": {
"end": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2}) (\\d{2}):(\\d{2}):(\\d{2})$",
"description": "Local time in the event's time zone, 'yyyy-mm-dd hh:mm:ss' (e.g. 2026-06-01 09:00:00)."
},
"name": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Title of the session."
},
"type": {
"enum": [
"lecture",
"workshop"
],
"type": "string",
"description": "lecture or workshop (required: an omitted type turns a workshop into a lecture)."
},
"start": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2}) (\\d{2}):(\\d{2}):(\\d{2})$",
"description": "Local time in the event's time zone, 'yyyy-mm-dd hh:mm:ss' (e.g. 2026-06-01 09:00:00)."
},
"hall_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Hall id (eventee_get_program → halls).",
"exclusiveMinimum": 0
},
"polling": {
"type": "boolean",
"description": "Live polls on/off (required: omitted = off). Pass the current value."
},
"capacity": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Workshop seats (required: an omitted capacity is reset to 0); pass the current value, 0 for a lecture."
},
"label_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"description": "Label (track) ids; [] removes all labels."
},
"discussion": {
"type": "boolean",
"description": "Attendee questions (Q&A) on/off (required: omitted = off). Pass the current value."
},
"moderating": {
"type": "boolean",
"description": "Questions need moderator approval (required: omitted = off). Pass the current value."
},
"session_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Session id (eventee_get_program → lectures / workshops).",
"exclusiveMinimum": 0
},
"stream_url": {
"type": "string",
"format": "uri",
"maxLength": 2000,
"description": "Live stream URL (YouTube, Vimeo, Twitch, Zoom...)."
},
"description": {
"type": "string",
"maxLength": 10000,
"description": "Description (plain text or simple HTML)."
},
"speaker_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"description": "Speaker ids in display order; [] removes all speakers."
},
"virtual_meeting_url": {
"type": "string",
"format": "uri",
"maxLength": 2000,
"description": "Virtual meeting URL attendees can join (Zoom, Google Meet...)."
}
}
}