{ "openapi": "3.0.4", "info": { "title": "The Events Calendar REST API", "version": "1.0.0", "description": "The Events Calendar REST API allows accessing upcoming events information easily and conveniently.", "contact": { "name": "The Events Calendar", "email": "support@theeventscalendar.com" } }, "tags": [ { "name": "Events", "description": "These operations are introduced by The Events Calendar." }, { "name": "Common", "description": "These operations are introduced by the Common library." } ], "components": { "schemas": { "TEC_Post_Entity": { "type": "object", "title": "TEC Post Entity", "description": "A TEC post object as returned by the REST API", "properties": { "date": { "description": "The date the entity was published, in the site's timezone. In RFC3339 format.", "nullable": true, "type": "string", "format": "date-time", "pattern": "^\\d{4}-\\d{2}-\\d{2}[Tt ]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}(?::\\d{2})?)?$", "example": "2025-06-04T23:36:56+01:00" }, "date_gmt": { "description": "The date the entity was published, as GMT. In RFC3339 format.", "nullable": true, "type": "string", "format": "date-time", "pattern": "^\\d{4}-\\d{2}-\\d{2}[Tt ]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}(?::\\d{2})?)?$", "example": "2025-06-04T22:36:56Z" }, "guid": { "description": "The globally unique identifier for the entity.", "nullable": true, "readOnly": true, "type": "object", "properties": { "rendered": { "description": "The globally unique identifier for the entity.", "type": "string", "format": "uri", "example": "https://example.com/?p=12345" } } }, "id": { "description": "Unique identifier for the entity.", "readOnly": true, "type": "integer", "example": 12345 }, "link": { "description": "URL to the entity.", "readOnly": true, "type": "string", "format": "uri", "example": "https://example.com/my-awesome-title" }, "modified": { "description": "The date the entity was last modified, in the site's timezone. In RFC3339 format.", "readOnly": true, "type": "string", "format": "date-time", "pattern": "^\\d{4}-\\d{2}-\\d{2}[Tt ]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}(?::\\d{2})?)?$", "example": "2025-06-05T19:06:56-03:30" }, "modified_gmt": { "description": "The date the entity was last modified, as GMT. In RFC3339 format.", "readOnly": true, "type": "string", "format": "date-time", "pattern": "^\\d{4}-\\d{2}-\\d{2}[Tt ]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}(?::\\d{2})?)?$", "example": "2025-06-05T22:36:56Z" }, "slug": { "description": "An alphanumeric identifier for the entity unique to its type", "type": "string", "example": "my-awesome-title" }, "status": { "description": "A named status for the entity.", "type": "string", "default": "publish", "enum": [ "publish", "pending", "draft", "future", "private" ], "example": "publish" }, "permalink_template": { "description": "Permalink template for the entity.", "readOnly": true, "type": "string", "example": "https://example.com/sample/" }, "generated_slug": { "description": "Slug automatically generated from the entity title", "readOnly": true, "type": "string", "example": "my-awesome-title" }, "title": { "description": "The globally unique identifier for the entity.", "type": "object", "properties": { "rendered": { "description": "HTML title for the entity, transformed for display", "type": "string", "example": "My Awesome Title" } } }, "content": { "description": "The content for the entity.", "type": "object", "properties": { "rendered": { "description": "HTML content for the entity, transformed for display", "type": "string", "example": "This is the content..." }, "protected": { "description": "Whether the content is protected with a password", "type": "boolean", "example": false } } }, "excerpt": { "description": "The excerpt for the entity.", "type": "object", "properties": { "rendered": { "description": "HTML excerpt for the entity, transformed for display", "type": "string", "example": "This is the excerpt..." }, "protected": { "description": "Whether the excerpt is protected with a password", "type": "boolean", "example": false } } }, "author": { "description": "The ID for the author of the entity.", "type": "integer", "example": 1 }, "featured_media": { "description": "The ID of the featured media for the entity.", "type": "integer", "example": 123 }, "comment_status": { "description": "Whether or not comments are open on the entity.", "type": "string", "default": "open", "enum": [ "open", "closed" ], "example": "open" }, "ping_status": { "description": "Whether or not the entity can be pinged", "type": "string", "default": "open", "enum": [ "open", "closed" ], "example": "open" }, "format": { "description": "The format for the entity.", "type": "string", "default": "standard", "enum": [ "standard", "aside", "chat", "gallery", "link", "image", "quote", "status", "video", "audio" ], "example": "standard" }, "sticky": { "description": "Whether or not the entity should be treated as sticky", "type": "boolean", "default": false, "example": false }, "template": { "description": "The theme file to use to display the entity.", "type": "string", "example": "templates-full.php" }, "tags": { "description": "The terms assigned to the entity in the post_tag taxonomy", "type": "array", "items": { "type": "integer" }, "uniqueItems": true, "example": [ 2, 8, 15 ] } } }, "TEC_Post_Entity_Request_Body": { "title": "TEC Post Entity Request Body", "description": "A TEC post object as expected by the REST API", "type": "object", "properties": { "date": { "description": "The date the entity was published, in the site's timezone. In RFC3339 format.", "nullable": true, "type": "string", "format": "date-time", "pattern": "^\\d{4}-\\d{2}-\\d{2}[Tt ]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}(?::\\d{2})?)?$", "example": "2025-06-04T23:36:56+01:00" }, "date_gmt": { "description": "The date the entity was published, as GMT. In RFC3339 format.", "nullable": true, "type": "string", "format": "date-time", "pattern": "^\\d{4}-\\d{2}-\\d{2}[Tt ]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}(?::\\d{2})?)?$", "example": "2025-06-04T22:36:56Z" }, "slug": { "description": "An alphanumeric identifier for the entity unique to its type", "type": "string", "example": "my-awesome-title" }, "status": { "description": "A named status for the entity.", "type": "string", "default": "publish", "enum": [ "publish", "pending", "draft", "future", "private" ], "example": "publish" }, "title": { "description": "HTML title for the entity, transformed for display", "type": "string", "example": "My Awesome Title" }, "content": { "description": "HTML content for the entity, transformed for display", "type": "string", "example": "This is the content..." }, "excerpt": { "description": "HTML excerpt for the entity, transformed for display", "type": "string", "example": "This is the excerpt..." }, "author": { "description": "The ID for the author of the entity.", "type": "integer", "example": 1 }, "featured_media": { "description": "The ID of the featured media for the entity.", "type": "integer", "example": 123 }, "comment_status": { "description": "Whether or not comments are open on the entity.", "type": "string", "default": "open", "enum": [ "open", "closed" ], "example": "open" }, "ping_status": { "description": "Whether or not the entity can be pinged", "type": "string", "default": "open", "enum": [ "open", "closed" ], "example": "open" }, "format": { "description": "The format for the entity.", "type": "string", "default": "standard", "enum": [ "standard", "aside", "chat", "gallery", "link", "image", "quote", "status", "video", "audio" ], "example": "standard" }, "sticky": { "description": "Whether or not the entity should be treated as sticky", "type": "boolean", "default": false, "example": false }, "template": { "description": "The theme file to use to display the entity.", "type": "string", "example": "templates-full.php" }, "tags": { "description": "The terms assigned to the entity in the post_tag taxonomy", "type": "array", "items": { "type": "integer" }, "uniqueItems": true, "example": [ 2, 8, 15 ] } } }, "Event": { "allOf": [ { "$ref": "#/components/schemas/TEC_Post_Entity" }, { "type": "object", "description": "An event", "title": "Event", "properties": { "tribe_events_cat": { "description": "The terms assigned to the entity in the tribe_events_cat taxonomy", "type": "array", "items": { "type": "integer" }, "uniqueItems": true, "example": [ 1, 5, 12 ] }, "start_date": { "description": "The start date of the event", "type": "string", "format": "date-time", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$", "example": "2025-06-05 12:00:00" }, "start_date_utc": { "description": "The start date of the event in UTC", "type": "string", "format": "date-time", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$", "example": "2025-06-05 09:00:00" }, "end_date": { "description": "The end date of the event", "type": "string", "format": "date-time", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$", "example": "2025-06-05 16:00:00" }, "end_date_utc": { "description": "The end date of the event in UTC", "type": "string", "format": "date-time", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$", "example": "2025-06-05 13:00:00" }, "dates": { "$ref": "#/components/schemas/DateDetails" }, "timezone": { "description": "The timezone of the event", "type": "string", "example": "Europe/Athens" }, "duration": { "description": "The duration of the event in seconds", "type": "integer", "example": 14400 }, "multiday": { "description": "Whether the event is multiday", "type": "boolean", "example": false }, "is_past": { "description": "Whether the event is in the past", "type": "boolean", "example": false }, "is_now": { "description": "Whether the event is happening now", "type": "boolean", "example": false }, "all_day": { "description": "Whether the event is all day", "type": "boolean", "example": false }, "starts_this_week": { "description": "Whether the event starts this week", "nullable": true, "type": "boolean", "example": false }, "ends_this_week": { "description": "Whether the event ends this week", "nullable": true, "type": "boolean", "example": false }, "happens_this_week": { "description": "Whether the event happens this week", "nullable": true, "type": "boolean", "example": false }, "this_week_duration": { "description": "The duration of the event in the current week", "nullable": true, "type": "integer", "example": 3600 }, "displays_on": { "description": "The days of the week that the event displays on", "type": "array", "items": { "type": "string", "format": "date", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$" }, "uniqueItems": true, "example": [ "2025-06-05" ] }, "featured": { "description": "Whether the event is featured", "type": "boolean", "example": false }, "sticky": { "description": "Whether the event is sticky", "type": "boolean", "example": false }, "cost": { "description": "The cost of the event", "type": "string", "example": "$10" }, "organizer_names": { "description": "The names of the organizers of the event", "type": "array", "items": { "type": "string" }, "uniqueItems": true, "example": [ "John Doe", "Jane Doe" ] }, "organizers": { "description": "The organizers of the event", "type": "array", "items": { "$ref": "#/components/schemas/Organizer" } }, "venues": { "description": "The venues of the event", "type": "array", "items": { "$ref": "#/components/schemas/Venue" } }, "ticketed": { "description": "Array of ticket providers or false if the event is not ticketed.", "type": "array", "items": { "type": "string" }, "uniqueItems": true, "example": [ "tc" ] }, "schedule_details": { "description": "The schedule details of the event", "type": "string", "example": "10:00 - 12:00" }, "short_schedule_details": { "description": "The schedule details of the event in HTML", "type": "string", "example": "
10:00 - 12:00
" } } } ] }, "Event_Request_Body": { "allOf": [ { "$ref": "#/components/schemas/TEC_Post_Entity_Request_Body" }, { "title": "Event Request Body", "description": "The request body for the event endpoint", "type": "object", "properties": { "tribe_events_cat": { "description": "The terms assigned to the entity in the tribe_events_cat taxonomy", "type": "array", "items": { "type": "integer" }, "uniqueItems": true, "example": [ 1, 5, 12 ] }, "start_date": { "description": "The start date of the event", "type": "string", "format": "date-time", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$", "example": "2025-06-05 12:00:00" }, "start_date_utc": { "description": "The start date of the event in UTC", "type": "string", "format": "date-time", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$", "example": "2025-06-05 09:00:00" }, "end_date": { "description": "The end date of the event", "type": "string", "format": "date-time", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$", "example": "2025-06-05 16:00:00" }, "end_date_utc": { "description": "The end date of the event in UTC", "type": "string", "format": "date-time", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$", "example": "2025-06-05 13:00:00" }, "timezone": { "description": "The timezone of the event", "type": "string", "example": "Europe/Athens" }, "duration": { "description": "The duration of the event in seconds", "type": "integer", "example": 14400 }, "all_day": { "description": "Whether the event is all day", "type": "boolean", "example": false }, "featured": { "description": "Whether the event is featured", "type": "boolean", "example": false }, "sticky": { "description": "Whether the event is sticky", "type": "boolean", "example": false }, "cost": { "description": "The cost of the event", "type": "string", "example": "$10" }, "organizers": { "description": "The organizers of the event", "type": "array", "items": { "type": "integer" }, "uniqueItems": true, "example": [ 1, 2 ] }, "venues": { "description": "The venues of the event", "type": "array", "items": { "type": "integer" }, "uniqueItems": true, "example": [ 7 ] } } } ] }, "Organizer_Request_Body": { "allOf": [ { "$ref": "#/components/schemas/TEC_Post_Entity_Request_Body" }, { "type": "object", "title": "Organizer Request Body", "description": "The request body for the organizer endpoint", "properties": { "phone": { "description": "The organizer's phone number", "type": "string", "format": "tel", "example": "123-456-7890" }, "website": { "description": "The organizer's website", "type": "string", "format": "uri", "example": "https://example.com" }, "email": { "description": "The organizer's email address", "type": "string", "format": "email", "example": "example@theeventscalendar.com" } } } ] }, "Venue_Request_Body": { "allOf": [ { "$ref": "#/components/schemas/TEC_Post_Entity_Request_Body" }, { "type": "object", "title": "Venue Request Body", "description": "The request body for the venue endpoint", "properties": { "address": { "description": "The venue address", "type": "string", "example": "Example" }, "country": { "description": "The venue country", "type": "string", "example": "Example" }, "city": { "description": "The venue city", "type": "string", "example": "Example" }, "state_province": { "description": "The venue state/province", "type": "string", "example": "Example" }, "state": { "description": "The venue state", "type": "string", "example": "Example" }, "province": { "description": "The venue province", "type": "string", "example": "Example" }, "zip": { "description": "The venue zip code", "type": "string", "example": "Example" }, "phone": { "description": "The venue phone number", "type": "string", "example": "Example" }, "website": { "description": "The venue website", "type": "string", "format": "uri", "example": "https://example.com" } } } ] }, "Organizer": { "allOf": [ { "$ref": "#/components/schemas/TEC_Post_Entity" }, { "type": "object", "title": "Organizer", "description": "An organizer", "properties": { "phone": { "description": "The organizer's phone number", "type": "string", "format": "tel", "example": "123-456-7890" }, "website": { "description": "The organizer's website", "type": "string", "format": "uri", "example": "https://example.com" }, "email": { "description": "The organizer's email address", "type": "string", "format": "email", "example": "example@theeventscalendar.com" } } } ] }, "Venue": { "allOf": [ { "$ref": "#/components/schemas/TEC_Post_Entity" }, { "title": "Venue", "description": "A venue", "type": "object", "properties": { "address": { "description": "The venue address", "type": "string", "example": "Example" }, "country": { "description": "The venue country", "type": "string", "example": "Example" }, "city": { "description": "The venue city", "type": "string", "example": "Example" }, "state_province": { "description": "The venue state/province", "type": "string", "example": "Example" }, "state": { "description": "The venue state", "type": "string", "example": "Example" }, "province": { "description": "The venue province", "type": "string", "example": "Example" }, "zip": { "description": "The venue zip code", "type": "string", "example": "Example" }, "phone": { "description": "The venue phone number", "type": "string", "example": "Example" }, "website": { "description": "The venue website", "type": "string", "format": "uri", "example": "https://example.com" }, "directions_link": { "description": "The venue directions link", "type": "string", "format": "uri", "example": "https://example.com" } } } ] }, "Date": { "type": "object", "properties": { "date": { "description": "The date", "type": "string", "format": "date-time", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{6}$", "example": "2025-07-10 08:00:00.000000" }, "timezone_type": { "description": "The timezone type", "type": "integer", "example": 1 }, "timezone": { "description": "The timezone of the date", "type": "string", "example": "Europe/Athens" } } }, "DateDetails": { "type": "object", "properties": { "start": { "$ref": "#/components/schemas/Date" }, "start_utc": { "$ref": "#/components/schemas/Date" }, "start_site": { "$ref": "#/components/schemas/Date" }, "start_display": { "$ref": "#/components/schemas/Date" }, "end": { "$ref": "#/components/schemas/Date" }, "end_utc": { "$ref": "#/components/schemas/Date" }, "end_site": { "$ref": "#/components/schemas/Date" }, "end_display": { "$ref": "#/components/schemas/Date" } } }, "OpenApiDocumentation": { "type": "object", "properties": { "openapi": { "type": "string", "description": "The OpenAPI version." }, "info": { "type": "object", "description": "The API info.", "properties": { "title": { "type": "string", "description": "The API title." }, "version": { "type": "string", "description": "The TEC REST API version." }, "description": { "type": "string", "description": "The API description." }, "contact": { "type": "object", "description": "The API contact.", "properties": { "name": { "type": "string", "description": "The name of the contact." }, "email": { "type": "string", "description": "The email of the contact.", "format": "email" } } } } }, "components": { "type": "object", "description": "The OpenAPI components.", "properties": { "schemas": { "type": "object", "description": "The OpenAPI schemas." } } }, "servers": { "type": "array", "description": "The OpenAPI servers.", "items": { "type": "object", "description": "A server.", "properties": { "url": { "type": "string", "description": "The server URL.", "format": "uri" } } } }, "paths": { "type": "object", "description": "The OpenAPI paths.", "properties": { "OpenApiPath": { "$ref": "#/components/schemas/OpenApiPath" } } } } }, "OpenApiPath": { "type": "object", "properties": { "get": { "type": "object", "description": "The GET method for the path.", "properties": { "description": { "type": "string", "description": "The description of the GET method." }, "parameters": { "type": "array", "description": "The parameters of the GET method.", "items": { "type": "object", "description": "A parameter.", "properties": { "name": { "type": "string", "description": "The name of the parameter." }, "in": { "type": "string", "description": "The location of the parameter." }, "required": { "type": "boolean", "description": "Whether the parameter is required." }, "schema": { "type": "object", "description": "The schema of the parameter." } } } }, "responses": { "type": "object", "description": "The responses of the GET method.", "properties": { "200": { "type": "object", "description": "The response for the GET method.", "properties": { "content": { "type": "object", "description": "The content of the response.", "properties": { "application/json": { "type": "object", "description": "The JSON content of the response.", "properties": { "schema": { "type": "object", "description": "The schema of the content.", "properties": { "type": { "type": "string", "description": "The type of the content." } } } } } } } } } } } } } } } }, "securitySchemes": { "BasicAuth": { "type": "http", "scheme": "basic" } } }, "servers": [ { "url": "https://www.employinc.com/wp-json/tec/v1" } ], "paths": { "/events": { "get": { "summary": "Retrieve Events", "security": [], "description": "Returns a list of events", "operationId": "getEvents", "tags": [ "Events" ], "parameters": [ { "name": "page", "in": "query", "description": "The collection page number.", "required": false, "schema": { "type": "integer", "default": 1, "minimum": 1 }, "example": 1 }, { "name": "per_page", "in": "query", "description": "Maximum number of items to be returned in result set.", "required": false, "schema": { "type": "integer", "default": 10, "maximum": 100, "minimum": 1 }, "example": 51 }, { "name": "start_date", "in": "query", "description": "Limit events to those starting after the specified date.", "required": false, "schema": { "type": "string", "format": "date-time" }, "example": "2025-06-05T12:00:00Z" }, { "name": "end_date", "in": "query", "description": "Limit events to those ending before the specified date.", "required": false, "schema": { "type": "string", "format": "date-time" }, "example": "2025-06-05T12:00:00Z" }, { "name": "search", "in": "query", "description": "Limit results to those matching a string.", "required": false, "schema": { "type": "string" }, "example": "Example" }, { "name": "categories", "in": "query", "description": "Limit result set to events assigned specific categories.", "required": false, "explode": false, "schema": { "type": "array", "items": { "type": "integer" }, "uniqueItems": true }, "example": [ 126 ] }, { "name": "tags", "in": "query", "description": "Limit result set to events assigned specific tags.", "required": false, "explode": false, "schema": { "type": "array", "items": { "type": "integer" }, "uniqueItems": true }, "example": [ 126 ] }, { "name": "venue", "in": "query", "description": "Limit result set to events assigned to specific venues.", "required": false, "explode": false, "schema": { "type": "array", "items": { "type": "integer" }, "uniqueItems": true }, "example": [ 126 ] }, { "name": "organizer", "in": "query", "description": "Limit result set to events assigned to specific organizers.", "required": false, "explode": false, "schema": { "type": "array", "items": { "type": "integer" }, "uniqueItems": true }, "example": [ 126 ] }, { "name": "featured", "in": "query", "description": "Limit result set to featured events only.", "required": false, "schema": { "type": "boolean" }, "example": true }, { "name": "status", "in": "query", "description": "Limit result set to events with specific status.", "required": false, "explode": false, "schema": { "type": "array", "items": { "type": "string", "enum": [ "publish", "pending", "draft", "future", "private" ] }, "default": [ "publish" ], "uniqueItems": true }, "example": [ "publish" ] }, { "name": "post_parent", "in": "query", "description": "Limit result set to events with specific post parent.", "required": false, "schema": { "type": "integer" }, "example": 126 }, { "name": "starts_before", "in": "query", "description": "Limit result set to events starting before the specified date.", "required": false, "schema": { "type": "string", "format": "date-time" }, "example": "2025-06-05T12:00:00Z" }, { "name": "starts_after", "in": "query", "description": "Limit result set to events starting after the specified date.", "required": false, "schema": { "type": "string", "format": "date-time" }, "example": "2025-06-05T12:00:00Z" }, { "name": "ends_before", "in": "query", "description": "Limit result set to events ending before the specified date.", "required": false, "schema": { "type": "string", "format": "date-time" }, "example": "2025-06-05T12:00:00Z" }, { "name": "ends_after", "in": "query", "description": "Limit result set to events ending after the specified date.", "required": false, "schema": { "type": "string", "format": "date-time" }, "example": "2025-06-05T12:00:00Z" }, { "name": "ticketed", "in": "query", "description": "Limit result set to events with tickets.", "required": false, "schema": { "type": "boolean" }, "example": true }, { "name": "orderby", "in": "query", "description": "Sort collection by event attribute.", "required": false, "schema": { "type": "string", "default": "event_date", "enum": [ "date", "event_date", "title", "menu_order", "modified" ] }, "example": "date" }, { "name": "order", "in": "query", "description": "Order sort attribute ascending or descending.", "required": false, "schema": { "type": "string", "default": "ASC", "enum": [ "ASC", "DESC" ] }, "example": "ASC" } ], "responses": { "200": { "description": "Returns the list of events", "headers": { "X-WP-Total": { "description": "The total number of events matching the request.", "required": true, "schema": { "type": "integer" } }, "X-WP-TotalPages": { "description": "The total number of pages for the request.", "required": true, "schema": { "type": "integer" } }, "Link": { "description": "RFC 5988 Link header for pagination. Contains navigation links with relationships:\n\t\t\t\t`rel=\"next\"` for the next page (if not on last page),\n\t\t\t\t`rel=\"prev\"` for the previous page (if not on first page).\n\t\t\t\tHeader is omitted entirely if there's only one page", "required": false, "schema": { "type": "array", "items": { "type": "string", "format": "uri" } } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Event" } } } } }, "400": { "description": "A required parameter is missing or an input parameter is in the wrong format" }, "404": { "description": "The requested page was not found" } } }, "post": { "summary": "Create an Event", "security": [ { "BasicAuth": [] } ], "description": "Creates a new event", "operationId": "createEvent", "tags": [ "Events" ], "requestBody": { "description": "The event data to create.", "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Event_Request_Body" }, "example": { "date": "2025-06-04T23:36:56+01:00", "date_gmt": "2025-06-04T22:36:56Z", "slug": "my-awesome-title", "status": "publish", "title": "My Awesome Title", "content": "This is the content...", "excerpt": "This is the excerpt...", "author": 1, "featured_media": 123, "comment_status": "open", "ping_status": "open", "format": "standard", "sticky": false, "template": "templates-full.php", "tags": [ 2, 8, 15 ], "tribe_events_cat": [ 1, 5, 12 ], "start_date": "2025-06-05 12:00:00", "start_date_utc": "2025-06-05 09:00:00", "end_date": "2025-06-05 16:00:00", "end_date_utc": "2025-06-05 13:00:00", "timezone": "Europe/Athens", "duration": 14400, "all_day": false, "featured": false, "cost": "$10", "organizers": [ 1, 2 ], "venues": [ 7 ] } } } }, "parameters": [], "responses": { "201": { "description": "Event created successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Event" } } } }, "400": { "description": "Invalid request data" }, "401": { "description": "You are not logged in" }, "403": { "description": "You do not have permission to create events" }, "500": { "description": "Failed to create the event" } } } }, "/events/{id}": { "get": { "summary": "Retrieve an Event", "security": [], "description": "Returns a single event", "operationId": "getEvent", "tags": [ "Events" ], "parameters": [ { "name": "id", "in": "path", "description": "Unique identifier for the event.", "required": true, "schema": { "type": "integer" }, "example": 126 } ], "responses": { "200": { "description": "Returns the event", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Event" } } } }, "404": { "description": "The requested event was not found" } } }, "put": { "summary": "Update an Event", "security": [ { "BasicAuth": [] } ], "description": "Updates an existing event", "operationId": "updateEvent", "tags": [ "Events" ], "requestBody": { "description": "The event data to update.", "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Event_Request_Body" }, "example": { "date": "2025-06-04T23:36:56+01:00", "date_gmt": "2025-06-04T22:36:56Z", "slug": "my-awesome-title", "status": "publish", "title": "My Awesome Title", "content": "This is the content...", "excerpt": "This is the excerpt...", "author": 1, "featured_media": 123, "comment_status": "open", "ping_status": "open", "format": "standard", "sticky": false, "template": "templates-full.php", "tags": [ 2, 8, 15 ], "tribe_events_cat": [ 1, 5, 12 ], "start_date": "2025-06-05 12:00:00", "start_date_utc": "2025-06-05 09:00:00", "end_date": "2025-06-05 16:00:00", "end_date_utc": "2025-06-05 13:00:00", "timezone": "Europe/Athens", "duration": 14400, "all_day": false, "featured": false, "cost": "$10", "organizers": [ 1, 2 ], "venues": [ 7 ] } } } }, "parameters": [ { "name": "id", "in": "path", "description": "Unique identifier for the event.", "required": true, "schema": { "type": "integer" }, "example": 126 } ], "responses": { "200": { "description": "Event updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Event" } } } }, "400": { "description": "Invalid request data" }, "401": { "description": "You are not logged in" }, "403": { "description": "You do not have permission to update this event" }, "404": { "description": "The requested event was not found" }, "500": { "description": "Failed to update the event" } } }, "delete": { "summary": "Delete an Event", "security": [ { "BasicAuth": [] } ], "description": "Deletes an existing event", "operationId": "deleteEvent", "tags": [ "Events" ], "parameters": [ { "name": "id", "in": "path", "description": "Unique identifier for the event.", "required": true, "schema": { "type": "integer" }, "example": 126 }, { "name": "force", "in": "query", "description": "Whether to bypass Trash and force deletion.", "required": false, "schema": { "type": "boolean", "default": false }, "example": true } ], "responses": { "200": { "description": "Event deleted successfully" }, "401": { "description": "You are not logged in" }, "403": { "description": "You do not have permission to delete this event" }, "404": { "description": "The requested event was not found" }, "410": { "description": "The event has already been trashed" }, "500": { "description": "Failed to delete the event" }, "501": { "description": "The event does not support trashing. Set force=true to delete" } } } }, "/organizers": { "get": { "summary": "Get organizers", "security": [], "description": "Returns a list of organizers", "operationId": "getOrganizers", "tags": [ "Events" ], "parameters": [ { "name": "page", "in": "query", "description": "The collection page number.", "required": false, "schema": { "type": "integer", "default": 1, "minimum": 1 }, "example": 1 }, { "name": "per_page", "in": "query", "description": "Maximum number of items to be returned in result set.", "required": false, "schema": { "type": "integer", "default": 10, "maximum": 100, "minimum": 1 }, "example": 51 }, { "name": "search", "in": "query", "description": "Limit results to those matching a string.", "required": false, "schema": { "type": "string" }, "example": "Example" }, { "name": "event", "in": "query", "description": "Limit result set to organizers with specific event.", "required": false, "schema": { "type": "integer" }, "example": 126 }, { "name": "has_events", "in": "query", "description": "Limit result set to organizers with events.", "required": false, "schema": { "type": "boolean" }, "example": true }, { "name": "only_with_upcoming", "in": "query", "description": "Limit result set to organizers with upcoming events.", "required": false, "schema": { "type": "boolean" }, "example": true }, { "name": "status", "in": "query", "description": "Limit result set to organizers with specific status.", "required": false, "explode": false, "schema": { "type": "array", "items": { "type": "string", "enum": [ "publish", "pending", "draft", "future", "private" ] }, "default": [ "publish" ], "uniqueItems": true }, "example": [ "publish" ] } ], "responses": { "200": { "description": "Returns the list of organizers", "headers": { "X-WP-Total": { "description": "The total number of organizers matching the request.", "required": true, "schema": { "type": "integer" } }, "X-WP-TotalPages": { "description": "The total number of pages for the request.", "required": true, "schema": { "type": "integer" } }, "Link": { "description": "RFC 5988 Link header for pagination. Contains navigation links with relationships:\n\t\t\t\t`rel=\"next\"` for the next page (if not on last page),\n\t\t\t\t`rel=\"prev\"` for the previous page (if not on first page).\n\t\t\t\tHeader is omitted entirely if there's only one page", "required": false, "schema": { "type": "array", "items": { "type": "string", "format": "uri" } } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Organizer" } } } } }, "400": { "description": "A required parameter is missing or an input parameter is in the wrong format" }, "404": { "description": "The requested page was not found" } } }, "post": { "summary": "Create an Organizer", "security": [ { "BasicAuth": [] } ], "description": "Creates a new organizer", "operationId": "createOrganizer", "tags": [ "Events" ], "requestBody": { "description": "The organizer data to create.", "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Organizer_Request_Body" }, "example": { "date": "2025-06-04T23:36:56+01:00", "date_gmt": "2025-06-04T22:36:56Z", "slug": "my-awesome-title", "status": "publish", "title": "My Awesome Title", "content": "This is the content...", "excerpt": "This is the excerpt...", "author": 1, "featured_media": 123, "comment_status": "open", "ping_status": "open", "format": "standard", "sticky": false, "template": "templates-full.php", "tags": [ 2, 8, 15 ], "phone": "123-456-7890", "website": "https://example.com", "email": "example@theeventscalendar.com" } } } }, "parameters": [], "responses": { "201": { "description": "Organizer created successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Organizer" } } } }, "400": { "description": "Invalid request data" }, "401": { "description": "You are not logged in" }, "403": { "description": "You do not have permission to create organizers" }, "500": { "description": "Failed to create the organizer" } } } }, "/organizers/{id}": { "get": { "summary": "Retrieve an Organizer", "security": [], "description": "Returns a single organizer", "operationId": "getOrganizer", "tags": [ "Events" ], "parameters": [ { "name": "id", "in": "path", "description": "Unique identifier for the organizer.", "required": true, "schema": { "type": "integer" }, "example": 126 } ], "responses": { "200": { "description": "Returns the organizer", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Organizer" } } } }, "404": { "description": "The requested organizer was not found" } } }, "put": { "summary": "Update an Organizer", "security": [ { "BasicAuth": [] } ], "description": "Updates an existing organizer", "operationId": "updateOrganizer", "tags": [ "Events" ], "requestBody": { "description": "The organizer data to update.", "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Organizer_Request_Body" }, "example": { "date": "2025-06-04T23:36:56+01:00", "date_gmt": "2025-06-04T22:36:56Z", "slug": "my-awesome-title", "status": "publish", "title": "My Awesome Title", "content": "This is the content...", "excerpt": "This is the excerpt...", "author": 1, "featured_media": 123, "comment_status": "open", "ping_status": "open", "format": "standard", "sticky": false, "template": "templates-full.php", "tags": [ 2, 8, 15 ], "phone": "123-456-7890", "website": "https://example.com", "email": "example@theeventscalendar.com" } } } }, "parameters": [ { "name": "id", "in": "path", "description": "Unique identifier for the organizer.", "required": true, "schema": { "type": "integer" }, "example": 126 } ], "responses": { "200": { "description": "Organizer updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Organizer" } } } }, "400": { "description": "Invalid request data" }, "401": { "description": "You are not logged in" }, "403": { "description": "You do not have permission to update this organizer" }, "404": { "description": "The requested organizer was not found" }, "500": { "description": "Failed to update the organizer" } } }, "delete": { "summary": "Delete an Organizer", "security": [ { "BasicAuth": [] } ], "description": "Deletes an existing organizer", "operationId": "deleteOrganizer", "tags": [ "Events" ], "parameters": [ { "name": "id", "in": "path", "description": "Unique identifier for the organizer.", "required": true, "schema": { "type": "integer" }, "example": 126 }, { "name": "force", "in": "query", "description": "Whether to bypass Trash and force deletion.", "required": false, "schema": { "type": "boolean", "default": false }, "example": true } ], "responses": { "200": { "description": "Organizer deleted successfully" }, "401": { "description": "You are not logged in" }, "403": { "description": "You do not have permission to delete this organizer" }, "404": { "description": "The requested organizer was not found" }, "410": { "description": "The organizer has already been trashed" }, "500": { "description": "Failed to delete the organizer" }, "501": { "description": "The organizer does not support trashing. Set force=true to delete" } } } }, "/venues": { "get": { "summary": "Get venues", "security": [], "description": "Returns a list of venues", "operationId": "getVenues", "tags": [ "Events" ], "parameters": [ { "name": "page", "in": "query", "description": "The collection page number.", "required": false, "schema": { "type": "integer", "default": 1, "minimum": 1 }, "example": 1 }, { "name": "per_page", "in": "query", "description": "Maximum number of items to be returned in result set.", "required": false, "schema": { "type": "integer", "default": 10, "maximum": 100, "minimum": 1 }, "example": 51 }, { "name": "search", "in": "query", "description": "Limit results to those matching a string.", "required": false, "schema": { "type": "string" }, "example": "Example" }, { "name": "event", "in": "query", "description": "Limit result set to venues with specific event.", "required": false, "schema": { "type": "integer" }, "example": 126 }, { "name": "has_events", "in": "query", "description": "Limit result set to venues with events.", "required": false, "schema": { "type": "boolean" }, "example": true }, { "name": "only_with_upcoming", "in": "query", "description": "Limit result set to venues with upcoming events.", "required": false, "schema": { "type": "boolean" }, "example": true }, { "name": "status", "in": "query", "description": "Limit result set to venues with specific status.", "required": false, "explode": false, "schema": { "type": "array", "items": { "type": "string", "enum": [ "publish", "pending", "draft", "future", "private" ] }, "default": [ "publish" ], "uniqueItems": true }, "example": [ "publish" ] } ], "responses": { "200": { "description": "Returns the list of venues", "headers": { "X-WP-Total": { "description": "The total number of venues matching the request.", "required": true, "schema": { "type": "integer" } }, "X-WP-TotalPages": { "description": "The total number of pages for the request.", "required": true, "schema": { "type": "integer" } }, "Link": { "description": "RFC 5988 Link header for pagination. Contains navigation links with relationships:\n\t\t\t\t`rel=\"next\"` for the next page (if not on last page),\n\t\t\t\t`rel=\"prev\"` for the previous page (if not on first page).\n\t\t\t\tHeader is omitted entirely if there's only one page", "required": false, "schema": { "type": "array", "items": { "type": "string", "format": "uri" } } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Venue" } } } } }, "400": { "description": "A required parameter is missing or an input parameter is in the wrong format" }, "404": { "description": "The requested page was not found" } } }, "post": { "summary": "Create a Venue", "security": [ { "BasicAuth": [] } ], "description": "Creates a new venue", "operationId": "createVenue", "tags": [ "Events" ], "requestBody": { "description": "The venue data to create.", "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Venue_Request_Body" }, "example": { "date": "2025-06-04T23:36:56+01:00", "date_gmt": "2025-06-04T22:36:56Z", "slug": "my-awesome-title", "status": "publish", "title": "My Awesome Title", "content": "This is the content...", "excerpt": "This is the excerpt...", "author": 1, "featured_media": 123, "comment_status": "open", "ping_status": "open", "format": "standard", "sticky": false, "template": "templates-full.php", "tags": [ 2, 8, 15 ], "address": "Example", "country": "Example", "city": "Example", "state_province": "Example", "state": "Example", "province": "Example", "zip": "Example", "phone": "Example", "website": "https://example.com" } } } }, "parameters": [], "responses": { "201": { "description": "Venue created successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Venue" } } } }, "400": { "description": "Invalid request data" }, "401": { "description": "You are not logged in" }, "403": { "description": "You do not have permission to create venues" }, "500": { "description": "Failed to create the venue" } } } }, "/venues/{id}": { "get": { "summary": "Retrieve a Venue", "security": [], "description": "Returns a single venue", "operationId": "getVenue", "tags": [ "Events" ], "parameters": [ { "name": "id", "in": "path", "description": "Unique identifier for the venue.", "required": true, "schema": { "type": "integer" }, "example": 126 } ], "responses": { "200": { "description": "Returns the venue", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Venue" } } } }, "404": { "description": "The requested venue was not found" } } }, "put": { "summary": "Update a Venue", "security": [ { "BasicAuth": [] } ], "description": "Updates an existing venue", "operationId": "updateVenue", "tags": [ "Events" ], "requestBody": { "description": "The venue data to update.", "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Venue_Request_Body" }, "example": { "date": "2025-06-04T23:36:56+01:00", "date_gmt": "2025-06-04T22:36:56Z", "slug": "my-awesome-title", "status": "publish", "title": "My Awesome Title", "content": "This is the content...", "excerpt": "This is the excerpt...", "author": 1, "featured_media": 123, "comment_status": "open", "ping_status": "open", "format": "standard", "sticky": false, "template": "templates-full.php", "tags": [ 2, 8, 15 ], "address": "Example", "country": "Example", "city": "Example", "state_province": "Example", "state": "Example", "province": "Example", "zip": "Example", "phone": "Example", "website": "https://example.com" } } } }, "parameters": [ { "name": "id", "in": "path", "description": "Unique identifier for the venue.", "required": true, "schema": { "type": "integer" }, "example": 126 } ], "responses": { "200": { "description": "Venue updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Venue" } } } }, "400": { "description": "Invalid request data" }, "401": { "description": "You are not logged in" }, "403": { "description": "You do not have permission to update this venue" }, "404": { "description": "The requested venue was not found" }, "500": { "description": "Failed to update the venue" } } }, "delete": { "summary": "Delete a Venue", "security": [ { "BasicAuth": [] } ], "description": "Deletes an existing venue", "operationId": "deleteVenue", "tags": [ "Events" ], "parameters": [ { "name": "id", "in": "path", "description": "Unique identifier for the venue.", "required": true, "schema": { "type": "integer" }, "example": 126 }, { "name": "force", "in": "query", "description": "Whether to bypass Trash and force deletion.", "required": false, "schema": { "type": "boolean", "default": false }, "example": true } ], "responses": { "200": { "description": "Venue deleted successfully" }, "401": { "description": "You are not logged in" }, "403": { "description": "You do not have permission to delete this venue" }, "404": { "description": "The requested venue was not found" }, "410": { "description": "The venue has already been trashed" }, "500": { "description": "Failed to delete the venue" }, "501": { "description": "The venue does not support trashing. Set force=true to delete" } } } }, "/docs": { "get": { "summary": "Get the documentation for the TEC REST API", "security": [], "description": "Returns the documentation for The Events Calendar REST API in Swagger consumable format.", "operationId": "getOpenApiDocs", "tags": [ "Common" ], "parameters": [], "responses": { "200": { "description": "Returns the documentation for The Events Calendar REST API in Swagger consumable format.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OpenApiDocumentation" } } } } } } } } }