API | Events Endpoint
An Event represents a block of given time at a location not to exceed a span of 24 hours. An Event will always have at least a booking, account, contact, location, and room.
Event Fields Overview
Below is a comprehensive list of the fields within the Events Endpoint. The order displayed below is representative of the order in which they are displayed within a response body of a standard GET request.
| Field Name | Description | Response Example - Key | Value |
| “id” | The ID Number for the Event. | “Id”: (Numerics), |
| “name” | The Name of the Event. | “name”: “(Alphanumerics)”, |
| “event_date” | The date for the Event. | “event_date”: “MM/DD/YYYY”, |
| “event_date_iso8601” | The date for the Event in the iso8601 format. | “event_date_iso8601”: “YYYY-MM-DD”, |
| “status” |
The current Status of the Event itself.
Waitlist will only be available if enabled for the Group in Settings -> Preferences. |
“status”: “(PROSPECT/TENTATIVE/DEFINITE/ CLOSED/LOST/WAITLIST)”, |
| “event_start” | The Date and Timestamp for the start of the Event. | "event_start": "MM/DD/YYYY hh:mm AM/PM", |
| “end_end” | The Date and Timestamp for the end of the Event. | "event_end": "MM/DD/YYYY hh:mm AM/PM", |
| “event_start_utc” | The Date and Timestamp for the start of the Event in UTC. | "event_start_utc": "YYYY-MM-DDThh:mm:ssZ", |
| “event_end_utc” | The Date and Timestamp for the end of the Event in UTC. | "event_end_utc": "YYYY-MM-DDThh:mm:ssZ", |
| “event_start_iso8601” | The Date and Timestamp for the start of the Event in the iso8601 format. | "event_start_iso8601": "YYYY-MM-DDThh:mm:ss-hh:mm", |
| “event_end_iso8601” | The Date and Timestamp for the end of the Event in the iso8601 format. | "event_end_iso8601": "YYYY-MM-DDThh:mm:ss-hh:mm", |
| “event_start_time” | The Start Time for the beginning of the Event. | "event_start_time": "hh:mm AM/PM", |
| “event_end_time” | The Start Time for the ending of the Event. | "event_end_time": "hh:mm AM/PM", |
| “start_date” | The Date for the beginning of the Event. | "start_date": "YYYY-MM-DD", |
| “end_date” | The Date for the ending of the Event. | "end_date": "YYYY-MM-DD", |
| “setup_time” | Additional time added before the beginning of an Event to account for Setup. *The value for the field is displayed in minutes. An example would be an hour will display as 60. |
"setup_time": (Numerics), |
| “teardown_time” | Additional time added after the end of an Event to account for Teardown. *The value for the field is displayed in minutes. An example would be an hour will display as 60. |
"teardown_time": (Numerics), |
| “event_start_time_with_setup_time" | The Start Time for the beginning of the Event with any additional Setup included. | "event_start_time_with_setup_time": "hh:mm AM/PM", |
| “event_end_time_with_teardown_time" | The End Time for the ending of the Event with any additional Teardown included. | "event_end_time_with_teardown_time": "hh:mm AM/PM", |
| “event_start_with_setup_iso8601" | The Start Time for the beginning of the Event with any additional Setup included in iso8601 format. | "event_start_with_setup_iso8601": "YYYY-MM-DDThh:mm:ss-hh:mm", |
| “event_end_with_teardown_iso8601" | The End Time for the ending of the Event with any additional Teardown included in iso8601 format. | "event_end_with_teardown_iso8601": "YYYY-MM-DDThh:mm:ss-hh:mm", |
| “event_timezone" | The Timezone for the Group that the Event’s Location is associated with. | "event_timezone": "(Group Timezone)", |
| “event_style” |
The Event Style set for the Event.
*The available Event Styles are dependent on those that are accepted for the Location in question. The values for these Event Styles are as follows:
On-Premise = onpremise Large Party Reservation = largeparty Full-Service Catering = catering Pick-Up Catering = pickup Drop-Off Catering = dropoff |
"event_style": "(onpremise / largeparty / dropoff / pickup / catering)", |
| “guaranteed_guest_count" | The confirmed or “guaranteed” guest count for the Event. | "guaranteed_guest_count": (Numerics), |
| “guest_count” | The anticipated guest count for the Event. This number may not reflect the confirmed or “guaranteed” guest count. | "guest_count": (Numerics), |
| “food_and_beverage_min" | The minimum spend for Food and Beverage set for the Event. | “food_and_beverage_min": (Numerics), |
| “price_per_person” | The price per person breakdown for each individual attending the Event. | "price_per_person": (Numerics), |
| “deposit_amount” | The amount set to put a Deposit or “confirm” the Event. | "deposit_amount": (Numerics), |
| “rental_fee” | The amount being charged for | "rental_fee": (Numerics), |
| “actual_amount” |
The total Actual Amount for the Event.
*The Actual Amount will be cumulative of all picklist items prior to any Taxes or Fees being applied. |
"actual_amount": (Numerics), |
| “grand_total” |
The total Grand Total for the Event.
*The Grand Total will be a cumulative total of all picklist items in addition to Taxes, Fees, etc. |
“grand_total”: (Numerics), |
| “amount_due” | The amount still due to the Venue for the Event minus any existing payments. *For a $1,000 Event if the $250 Deposit has been paid then the Amount Due would be $750. |
“amount_due”: (Numerics), |
| “description” | The description of the Event as shown in the “Additional Information” field. *This field carries over from the Lead if converted. |
“description”: “(Alphanumerics), |
| “contact_id” | The ID for the primary Contact on the Event. | “contact_id”: (Numerics), |
| “account_id” | The ID for the Account that the primary Contact of the Event belongs to. | “account_id”: (Numerics), |
| “owned_by” | The ID for the User who owns the Event within Tripleseat. | “owned_by”: (Numerics), |
| “created_at” | The Date and Timestamp for when the Event was created. | “created_at”: “MM/DD/YYYY hh:mm AM/PM”, |
| “updated_at” | The Date and Timestamp for when the Event was last updated. | “updated_at”: “MM/DD/YYYY hh:mm AM/PM”, |
| “deleted_at” | The Date and Timestamp for when the Event was deleted. | “deleted_at”: “MM/DD/YYYY hh:mm AM/PM”, |
| “booking_id” | The ID for the Booking that the Event belongs to. | “booking_id”: (Numerics), |
| “updated_by” | The ID for the User who most recently updated the Event. | “updated_by”: (Numerics), |
| “created_by” | The ID for the User who created the Event. | “created_by”: (Numerics), |
| “customer_id” | The ID of the Customer that the Site the Event’s Location belongs to. | “customer_id”: (Numerics), |
| “site_id” | The ID of the Site that the Event’s Location belongs to. | “site_id”: (Numerics), |
| “location_id” | The ID of the Location that the Event belongs to. | “location_id”: (Numerics), |
| “room_ids” | Array | An array or “Collection” of IDs for the Rooms / Areas that the Event is assigned to. |
“room_ids”: [ (Numerics), (Numerics), Etc. ], |
| “managing_user_ids” | Array | An array or “Collection” of IDs for the Users who are indicated as Managers of the Event. |
“managing_users_ids”: [ (Numerics), (Numerics), Etc. ], |
| “unassigned” | An indication of if the Event is classified as “Unassigned.” *Unassigned means that the Event does not have a specified Room / Area. The Unassigned Room can be enabled by Customer Admins in Settings -> Preferences -> Event Status Rules |
“unassigned”: (true/false), |
| “event_type_id” | The ID for the Type of Event. | “event_type_id”: (Numerics), |
| “post_as” |
The display name for the Event.
*This will almost always be the same as the “name” field. |
“post_as”: “(Alphanumerics), |
| “offsite_address” | Object | An array or “Collection” of IDs for the Rooms / Areas that the Event is assigned to. |
“offsite_address”: { "id": (Numerics), "address1": "(Alphanumerics)”, "address2": "(Alphanumerics)", "city": "(Alphanumerics)", "state": "(Alphanumerics)", "country": (Alphanumerics, "zip_code": "(Alphanumerics)", "address_type": "Delivery" }, |
| “document_ids” | The ID of the document set associated with the Event. | “document_ids”: “(Alphanumerics)”, |
| “start_time” | The Date and Time Stamp for the beginning or “Start” of the Event. | "start_time": "MM/DD/YYYY hh:mm AM/PM", |
| “end_time” | The Date and Time Stamp for the End of the Event. | "end_time": "MM/DD/YYYY hh:mm AM/PM", |
| “event_type” | The type of Event that is being held. Ex. Wedding, Birthday, Holiday Party, etc. *This field is a dropdown within Tripleseat. The selections for the dropdown can be managed by Customer Admins in Settings -> Preferences -> Dropdowns |
“event_type”: “(Alphanumerics)”, |
| “rooms” | Array | An array or “Collection” of information related to the Room(s) / Area(s) that the Event is set to occur in. |
“rooms”: { "id": (Numerics), "name": "(Alphanumerics)", "capacity": (Numerics), "description": "(Alphanumerics)", "site_id": (Numerics), "location_id": (Numerics), "is_unassigned": (true/false) } |
| “location” | Object | An object containing the information related to the Location that the Event is occurring at. |
“location”: { "id": (Numerics), "name": "(Alphanumerics)", "customer_id": (Numerics), "site_id": (Numerics } |
| “booking” | Object | An object containing the information related to the Booking that the Event is associated with. | * Please see “API | Bookings Endpoint” for a complete list of the fields present in this object. * |
| “documents” | Array | An array or “Collection” of information related to the Document(s) that are attached to the Event. | * Please see “Pro-Tips” at the bottom of the page for a complete list of fields as well as a full breakdown on how to access these fields. * |
| “custom_fields” | Array | An array or “Collection” of information related to the Custom Field(s) that are associated with the Event. |
“custom_fields: [ { "id": (Numerics), "custom_field_name": "(Alphanumerics)", "custom_field_id": (Numerics), "custom_field_required": (true/false), "custom_field_slug": "(Alphanumerics)", "value": "(Alphnumerics)" }, {...} ], |
| “owner” | Object | An object containing the information related to the Tripleseat User that is the Owner of the Event. |
“owner”: { "id": (Numerics), "first_name": "(Alphanumerics)", "last_name": "(Alphanumerics)", "title": "(Alphanumerics)", "email": "(Alphanumerics)", "created_at": "MM/DD/YYYY hh:mm AM/PM", "updated_at": "1MM/DD/YYYY hh:mm AM/PM", "login_count": (Numerics), "login_at": “MM/DD/YYYY hh:mm AM/PM", "customer_id": (Numerics), "phone_numbers": [] }, |
| “creator” | Object | An object containing the information related to the Tripleseat User that is the Creator of the Event. |
“creator”: { "id": (Numerics), "first_name": "(Alphanumerics)", "last_name": "(Alphanumerics)", "title": "(Alphanumerics)", "email": "(Alphanumerics)", "created_at": "MM/DD/YYYY hh:mm AM/PM", "updated_at": "1MM/DD/YYYY hh:mm AM/PM", "login_count": (Numerics), "login_at": “MM/DD/YYYY hh:mm AM/PM", "customer_id": (Numerics), "phone_numbers": [] }, |
| “updator” | Object | An object containing the information related to the Tripleseat User that most recently updated the Event. |
“updator”: { "id": (Numerics), "first_name": "(Alphanumerics)", "last_name": "(Alphanumerics)", "title": "(Alphanumerics)", "email": "(Alphanumerics)", "created_at": "MM/DD/YYYY hh:mm AM/PM", "updated_at": "1MM/DD/YYYY hh:mm AM/PM", "login_count": (Numerics), "login_at": “MM/DD/YYYY hh:mm AM/PM", "customer_id": (Numerics), "phone_numbers": [] }, |
| “managers” | Array | An array or “Collection” containing the information related to the Tripleseat User(s) that is a Manager of the Event. |
“managers”: { "id": (Numerics), "first_name": "(Alphanumerics)", "last_name": "(Alphanumerics)", "title": "(Alphanumerics)", "email": "(Alphanumerics)", "created_at": "MM/DD/YYYY hh:mm AM/PM", "updated_at": "1MM/DD/YYYY hh:mm AM/PM", "login_count": (Numerics), "login_at": “MM/DD/YYYY hh:mm AM/PM", "customer_id": (Numerics), "phone_numbers": [] }, |
| “Lead” | Object |
An object containing the information related to the Lead that was converted into the Event.
*This information will only populate if the Lead itself was converted into the Event directly. |
* Please see “API | Leads Endpoint” for a complete list of the fields present in this array. * |
| “selected_lead_sources” | Array | An array or “Collection” containing the information related to the Lead Source(s) that are selected for the Event. |
“selected_lead_sources”: [ { "lead_source_id": (Numerics), "lead_source_other": "(Alphanumerics)", "lead_source_name": “(Alphanumerics)” }, {...} ] |
| “contact” | Object | An object containing the information related to the Primary Contact on the Event. |
"contact": { "id": (Numerics), "first_name": "(Alphanumerics)", "last_name": "(Alphanumerics", "account_id": (Numerics), "email_addresses": [], "phone_numbers": [] }, |
| “secondary_contacts” | Array |
An array or “Collection” containing the information related to additional Contacts on the Event.
*Any additional Contacts past the initial “Primary Contact” are considered secondary Contacts. |
“secondary_contacts”: [ { "id": (Numerics), "first_name": "(Alphanumerics)", "last_name": "(Alphanumerics", "account_id": (Numerics), "email_addresses": [], "phone_numbers": [] }, {...} ], |
| “account” | Object | An object containing the information related to the Account for the Primary Contact on the Event. |
“account”: { “id”: (Numerics), “name”: “(Alphanumerics)” }, |
| “status_changes” | Array | An array or “Collection” containing the information related to any Status Changes made to the Event. |
“status_changes”: [ { "status": "(PROSPECT/TENTATIVE/DEFINITE/ CLOSED/LOST/WAITLIST)", "previous_status": "(PROSPECT/TENTATIVE/DEFINITE/ CLOSED/LOST/WAITLIST)", "created_at": "MM/DD/YYYY hh:mm AM/PM", "created_by": (Numerics) }, |
| “attachments” | Array |
An array or “Collection” containing the information related to any Files Attached to the Event.
*In-App these are displayed under the “Attached Files” section to the right of the Event itself. |
“attachments”: [ { “Content_type: “(image / text / application / etc.)”, “filename”: “(Alphanumerics)”, “url”: “(Alphanumerics)” } ] |
| "lost_reason" | Object | The reason the Event was moved to the Lost status. | "lost_reason": { "name": "(Alphanumerics)", "id": (Numerics) } |
GET Request Examples:
GET https://api.tripleseat.com/v1/events.(XML | JSON)
This request will pull a paginated list of all Events.
GET https://api.tripleseat.com/v1/events/(Event_ID).(XML | JSON)
This request will pull Event information specific to the ID specified in the request URL.
Events Search:
GET https://api.tripleseat.com/v1/events/search.(XML | JSON)?(Search_Parameters)
This request will pull event information for any records that match the queried parameters. When you query multiple parameters, you can append parameters together using a “&”.
Note: Deleted Events and Events in a 'LOST" status are automatically excluded from results when using the /search endpoint. This matches the general search fucntionality in-app.
| Parameter | Value |
| query | Name, Contact, Account, Email and Phone |
| order | created_at, updated_at, name, and event_start |
| sort_direction | desc, asc |
| contact_id | Querying Events that have the contact_id associated with it |
| account_id | Querying Events that have the account_id associated with it |
| room_ids | comma separated list of room IDs |
| location_ids | comma separated list of location IDs |
| event_start_date | mm/dd/yyyy (Date Range and requires event_end_date) |
| event_end_date | mm/dd/yyyy (Date Range and requires event_start_date) |
| event_created_start_date | mm/dd/yyyy (Date Range and requires event_created_end_date) |
| event_created_end_date | mm/dd/yyyy (Date Range and requires event_created_start_date) |
| event_updated_start_date | mm/dd/yyyy (Date Range and requires event_updated_end_date) |
| event_updated_end_date | mm/dd/yyyy (Date Range and requires event_updated_start_date) |
| status | lost, definite, tentative, prospect and closed |
| active | Setting this parameter to true will exclude all Events that have been Deleted from the results. False will pull only deleted records. |
| page | (Numerics starting at 1) |
| site_id | numerics |
Example: ?page=1&order=event_start&sort_direction=desc
The above example would Search the Events list on Page 1, in descending order and ordered by the event_start field.
DELETE Request Example:
DELETE https://api.tripleseat.com/v1/events/(Event_ID).(XML | JSON)
This request will delete the Event with the associated ID specified in the request URL.
POST Request Example:
Creating Events via the API can be done by either:
Appending the Event information to the end of the URL. This would look similar to the following
POST https://api.tripleseat.com/v1/events.json?event[name]=Tripleseat NYE Party&event[event_start]=12/31/2024 10:00 pm&event[event_end]=12/31/2024 11:59 pm&event[account_id]=17727220&event[contact_id]=37285579&event[location_id]=19667&event[room_ids][]=230487&event[status]=DEFINITE
Including the Event information in the Body of the Request. The following is the URL and the Body which is in the JSON format
POST https://api.tripleseat.com/v1/events.(XML | JSON)
{
"event": {
"name": "(Alphanumerics)",
"event_start": "MM/DD/YYYY hh:mm am/pm",
"event_end": "MM/DD/YYYY hh:mm am/pm",
"account_id": (Numerics),
"contact_id": (Numerics,
"location_id": (Numerics),
"room_ids": [ (Numerics) ],
"status": "PROSPECT / TENTATIVE / DEFINITE / CLOSED / LOST / WAITLIST"
}
}
Required Fields for creating an Event:
- “name”
- “event_start”
- “event_end”
- “account_id”
- “contact_id”
- “location_id”
- “room_ids”
- “status
PUT Request Example:
Updating Events via the API require the Event ID be identified in the URL similar to the GET Example from earlier in this article. Once the URL is adjusted, the update format can be done by either:
Appending the Event information that needs to be updated to the end of the URL. This would look similar to the following:
PUT https://api.tripleseat.com/v1/events/(Event_ID).(XML | JSON)?event[status]=CLOSED
Including the Account information that needs to be updated in the Body of the Request. This would look similar to the following:
PUT https://api.tripleseat.com/v1/events/(Event_ID).(XML | JSON)
{
"event": {
"Status”: “CLOSED”
}
}
Pro-Tips
Adding tasks to an event
POST api.tripleseat.com/v1/events/{event_id}/tasks.json
All the following key/value pairs are required to create a task on an event, example payload below:
{
"body": "This is a test task",
"due_date": "String", // Date/time in ISO 8601 format,
"priority": integer, // (1 = Low, 2 = Medium, 3 = High)
"task_type_id": integer, // unique ID for the desired task type (See Sites API)
"assignee_ids": [], // array containing comma separated User IDs that should be assigned the task (See Users API)
"site_id": integer, // unique ID for the site the event belongs to
}Please note: At this time, there is no way to retrieve or update tasks associated to an event via GET/PUT.
Event Financial Fields
These are only visible by adding the parameter '&show_financial=true'. This will add the following financial details under the documents array:
| Field Name | Description | Response Example - Key | Value |
| “id” | The ID Number or “Record” for this particular Document set. | “Id”: (Numerics), |
| “title” | The Title or “Name” of the Document set. | “title”: “(Alphanumerics)”, |
| “document_template_id” | The ID Number for the Document Template used when adding the Document set to the Booking. | “document_template_id”: (Numerics), |
| “views” | Array | The View(s) or Document Layouts that exist within the Document Set associated with the Booking. |
“views”: [ { “name”: “(Alphanumerics)”, “url”: “(Alphanumerics)” }, {...} ], |
| “billing_totals” | Array | An array or “Collection” of information related to the Billing Details present on the Document set associated with the Booking. |
“billing_totals”: [ { "description": "(Alphanumerics)", "value": "(Numerics)", "total_price": "(Numerics)” }, {...} ], |
| “financials” | Object |
An object containing the most frequently sought after financials on the Document set associated with the Booking.
*This Object will only contain Amount Due, Grand Total, and Discounts Total |
“financials”: { "amount_due": "131.45", "grand_total": "131.45", "discounts_total": "0.0" }, |
| “payment_set” | The Payment Set represents a collection of key and value pairs related to the payments attached to the Documents that are associated with the Event. |
“Payment_set”: { "amount_due": "(Numerics)", "running_balance": "(Numerics)", "remaining_payment_amount": "(Numerics)", "document_name": "(Alphanumerics)", "payments": [ { "id": (Numerics), "amount": "(Numerics)", "state": "(new/paid/deleted/refunded/partially_refunded)” "custom_title": "(Alphanumerics)", "created_at": "DD/MM/YYYY hh:mm AM/PM", "due_at": “DD/MM/YYYY”, "paid_at": “DD/MM/YYYY”, "payable_by_guest": (true/false), "unpaid_at": “DD/MM/YYYY”, "billing_kind": “(Alphanumerics)”, "payment_method": “(Alphanumerics)”, “credit_card_type": “(Alphanumerics)”, "refunded_at": “DD/MM/YYYY”, "amount_refunded": (Numerics), "refund_reason": “(Alphanumerics), "paid_by": “(Alphanumerics), "custom_field": “(Alphanumerics) }, {...} ]
|
| "category_totals" | Category totals represent each menu item category and their financials in a document set. | "category_totals": [ { "name": "(String)", "total": "(Numerics)" } ], |
| "line_items" | Line Items represent a selection of Key and Value pairs for the individual picklist items on an events document set. |
"line_items": [ "long_description": "(String)", |
Events Call Rate Limits
There is a rate limit of 10 requests per second for the following endpoints:
'/v1/events',
'/v1/events.json',
'/v1/events.xml',
'/v1/events/search',
'/v1/events/search.xml',
'/v1/events/search.json'