{"info":{"_postman_id":"622aa30c-6e66-4230-ba3e-907036f90cf3","name":"TeleCalendar API","description":"<html><head></head><body><h2 id=\"introduction\"><strong>Introduction</strong></h2>\n<p>The TeleCalendar API allows you to interact with an organization in TeleCalendar. The API is RESTful and uses JSON to transport information.</p>\n<p>The main use case for interacting with a TeleCalendar organization through the API is to manipulate appointments.</p>\n<p>This documentation aims to provide comprehensive information on how developers can use the TeleCalendar API to start building integrations with TeleCalendar.</p>\n<p>Please don't hesitate to reach out if you have any questions!</p>\n<p><a href=\"mailto:info@telecalendar.com\">info@telecalendar.com</a></p>\n<hr>\n<h1 id=\"api-basics\"><strong>API Basics</strong></h1>\n<p>Each API resource that you use will have a clearly defined path structure. This documentation contains a reference for each resource in the API.</p>\n<p>Before you can use these resources, below is the basic structure of an API resource:</p>\n<h2 id=\"api-path\"><strong>API Path</strong></h2>\n<p>The TeleCalendar API path has the following structure (depending on the endpoint):</p>\n<p><a href=\"https://api.telecalendar.com/api\"><code>https://api.telecalendar.com/api</code></a><br>OR<br><a href=\"https://api.telecalendar.com/api\"><code>https://app.telecalendar.com/api</code></a>  </p>\n<h2 id=\"requests\"><strong>Requests</strong></h2>\n<p>There are different approaches for making requests to our API. The command line tool cURL is easy and fast for testing our API. When you want to integrate the API into your own software, you can choose to use a general purpose REST library based on your application language. The documentation of each resource shows specific ways in which you can make request for each resource.</p>\n<p>A REST API uses HTTP methods to determine which action to perform on the resource. GET, POST, PUT and DELETE are some of the common methods used in the TeleCalendar API resources. The type of method is also indicated in the resource documentation.</p>\n<hr>\n<h1 id=\"authentication\"><strong>Authentication</strong></h1>\n<p>In order to access the TeleCalendar API, you have to be an authenticated user. TeleCalendar uses HTTP authentication via Bearer (token) authorization.</p>\n<h2 id=\"generating-an-api-token\"><strong>Generating an API token</strong></h2>\n<p>Your TeleCalendar admin can generate and provide you with the API token that you can use. Each API token is linked to a TeleCalendar organization user.</p>\n<h2 id=\"authorization\"><strong>Authorization</strong></h2>\n<p>Once you have an API token, it can be passed in the header of the request to authenticate your request:</p>\n<p>'Authorization: Bearer *<em>\\</em>'</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"API Basics","slug":"api-basics"},{"content":"Authentication","slug":"authentication"}],"owner":"39543393","collectionId":"622aa30c-6e66-4230-ba3e-907036f90cf3","publishedId":"2sAYBbe9WS","public":true,"customColor":{"top-bar":"E2E8F0","right-sidebar":"1E293B","highlight":"94a3b8"},"publishDate":"2025-09-21T15:47:24.000Z"},"item":[{"name":"Appointments","item":[{"name":"Create appointment","id":"5daa2189-ad77-455b-aa39-aafa1105c6aa","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{"content-type":true}},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {api_token}"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"start\": \"2026-01-30T16:15:00.000+01:00\",\n  \"eventTypeId\": 4169488,\n  \"attendee\": {\n    \"name\": \"John Doe\",\n    \"email\": \"john@example.com\",\n    \"timeZone\": \"Europe/Amsterdam\",\n    \"language\": \"nl\"\n  },\n  \"location\": {\n      \"type\": \"integration\",\n      \"integration\": \"google-meet\"\n  },\n  \"guests\": [\"info@telecalendar.com\"],\n  \"bookingFieldsResponses\": {\n      \"BEDRIJFSNAAM\": \"Business 123\"\n  }\n}"},"url":"https://api.telecalendar.com/api/appointments","urlObject":{"protocol":"https","path":["api","appointments"],"host":["api","telecalendar","com"],"query":[],"variable":[]}},"response":[{"id":"9fe02019-ba76-4943-ae20-a6c2a5f06426","name":"Create appointment","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {api_token}"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"start\": \"2025-09-29T07:00:00.000Z\",\n  \"eventTypeId\": 3019502,\n  \"location\": {\n    \"type\": \"attendeeAddress\",\n    \"address\": \"herengracht 597, Amsterdam\"\n  },\n  \"attendee\": {\n    \"name\": \"John Doe\",\n    \"email\": \"john@example.com\",\n    \"timeZone\": \"Europe/Amsterdam\",\n    \"language\": \"nl\"\n  },\n  \"guests\": [\"info@telecalendar.com\"],\n  \"lengthInMinutes\": 30\n}"},"url":"https://api.telecalendar.com/api/appointments"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"data\": {\n        \"id\": 11067325,\n        \"uid\": \"rTq4W3t5CDTvAAYficfyUq\",\n        \"title\": \"Appointment example\",\n        \"description\": \"\",\n        \"hosts\": [\n            {\n                \"id\": 1678431,\n                \"name\": \"Accountmanager Test\",\n                \"email\": \"info@telecalendar.com\",\n                \"timeZone\": \"Europe/Amsterdam\"\n            }\n        ],\n        \"status\": \"accepted\",\n        \"start\": \"2025-09-29T07:00:00.000Z\",\n        \"end\": \"2025-09-29T07:30:00.000Z\",\n        \"duration\": 30,\n        \"eventTypeId\": 3019502,\n        \"location\": \"herengracht 597, Amsterdam\",\n        \"createdAt\": \"2025-09-21T07:44:00.857Z\",\n        \"updatedAt\": \"2025-09-21T07:44:01.407Z\",\n        \"metadata\": {},\n        \"attendees\": [\n            {\n                \"name\": \"John Doe\",\n                \"email\": \"john@example.com\",\n                \"timeZone\": \"Europe/Amsterdam\",\n                \"language\": \"nl\",\n                \"absent\": false\n            },\n            {\n                \"name\": \"\",\n                \"email\": \"info@telecalendar.com\",\n                \"timeZone\": \"Europe/Amsterdam\",\n                \"language\": \"en\",\n                \"absent\": false\n            }\n        ],\n        \"guests\": [\n            \"info@telecalendar.com\"\n        ],\n        \"bookingFieldsResponses\": {\n            \"email\": \"john@example.com\",\n            \"name\": \"John Doe\",\n            \"guests\": [\n                \"info@telecalendar.com\"\n            ],\n            \"location\": {\n                \"value\": \"attendeeInPerson\",\n                \"optionValue\": \"herengracht 597, Amsterdam\"\n            }\n        }\n    }\n}"}],"_postman_id":"5daa2189-ad77-455b-aa39-aafa1105c6aa"},{"name":"Get appointments","id":"151a7a4a-f783-40b4-b936-1f3c1db74015","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {api_token}","type":"text"}],"url":"https://api.telecalendar.com/api/appointments?status=upcoming,past&afterStart=2026-02-01T00:00:00.000Z&beforeEnd=2026-02-27T23:59:59.999Z&afterCreatedAt&beforeCreatedAt&sortStart=asc&sortEnd&sortCreated&sortUpdatedAt&take=100&skip=0","urlObject":{"protocol":"https","path":["api","appointments"],"host":["api","telecalendar","com"],"query":[{"description":{"content":"<p>OPTIONAL</p>\n<p>Type: <code>enum&lt;string&gt;[]</code></p>\n<p>Filter bookings by status.\nIf filtering by multiple statuses, separate them with a comma.</p>\n<p>Allowed values:\nupcoming,\nrecurring,\npast,\ncancelled,\nunconfirmed</p>\n<p>Example:\n?status=upcoming,past</p>\n","type":"text/plain"},"key":"status","value":"upcoming,past"},{"description":{"content":"<p>OPTIONAL</p>\n<p>Type: <code>string</code>\nFormat: UTC ISO 8601 datetime</p>\n<p>Filter bookings that start after this date/time.</p>\n<p>Example:\n?afterStart=2026-02-01T00:00:00.000Z</p>\n","type":"text/plain"},"key":"afterStart","value":"2026-02-01T00:00:00.000Z"},{"description":{"content":"<p>OPTIONAL</p>\n<p>Type: <code>string</code>\nFormat: UTC ISO 8601 datetime</p>\n<p>Filter bookings that end before this date/time.</p>\n<p>Example:\n?beforeEnd=2026-02-27T23:59:59.999Z</p>\n","type":"text/plain"},"key":"beforeEnd","value":"2026-02-27T23:59:59.999Z"},{"description":{"content":"<p>OPTIONAL</p>\n<p>Type: <code>string</code>\nFormat: UTC ISO 8601 datetime</p>\n<p>Filter bookings created after this date/time.</p>\n<p>Example:\n?afterCreatedAt=2026-02-01T00:00:00.000Z</p>\n","type":"text/plain"},"key":"afterCreatedAt","value":null},{"description":{"content":"<p>OPTIONAL</p>\n<p>Type: <code>string</code>\nFormat: UTC ISO 8601 datetime</p>\n<p>Filter bookings created before this date/time.</p>\n<p>Example:\n?beforeCreatedAt=2026-02-27T23:59:59.999Z</p>\n","type":"text/plain"},"key":"beforeCreatedAt","value":null},{"description":{"content":"<p>OPTIONAL</p>\n<p>Type: <code>enum&lt;string&gt;</code></p>\n<p>Sort results by start time.</p>\n<p>Allowed values:\n• asc\n• desc</p>\n<p>Example:\n?sortStart=asc</p>\n","type":"text/plain"},"key":"sortStart","value":"asc"},{"description":{"content":"<p>OPTIONAL</p>\n<p>Type: <code>enum&lt;string&gt;</code></p>\n<p>Sort results by end time.</p>\n<p>Allowed values:\n• asc\n• desc</p>\n<p>Example:\n?sortEnd=desc</p>\n","type":"text/plain"},"key":"sortEnd","value":null},{"description":{"content":"<p>OPTIONAL</p>\n<p>Type: <code>enum&lt;string&gt;</code></p>\n<p>Sort results by booking creation time.</p>\n<p>Allowed values:\n• asc\n• desc</p>\n<p>Example:\n?sortCreated=asc</p>\n","type":"text/plain"},"key":"sortCreated","value":null},{"description":{"content":"<p>OPTIONAL</p>\n<p>Type: <code>enum&lt;string&gt;</code></p>\n<p>Sort results by last updated time (e.g. status change).</p>\n<p>Allowed values:\n• asc\n• desc</p>\n<p>Example:\n?sortUpdatedAt=desc</p>\n","type":"text/plain"},"key":"sortUpdatedAt","value":null},{"key":"take","value":"100"},{"key":"skip","value":"0"}],"variable":[]}},"response":[{"id":"852a391c-b18f-4be1-b41d-e15008ff4ce2","name":"Get appointments","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {api_token}","type":"text"}],"url":{"raw":"https://api.telecalendar.com/api/appointments?status=upcoming,past&afterStart=2026-02-01T00:00:00.000Z&beforeEnd=2026-02-27T23:59:59.999Z&afterCreatedAt&beforeCreatedAt&sortStart=asc&sortEnd&sortCreated&sortUpdatedAt&take=100&skip=0","protocol":"https","host":["api","telecalendar","com"],"path":["api","appointments"],"query":[{"key":"status","value":"upcoming,past","description":"OPTIONAL\n\nType: `enum<string>[]`\n\nFilter bookings by status.\nIf filtering by multiple statuses, separate them with a comma.\n\nAllowed values:\nupcoming,\nrecurring,\npast,\ncancelled,\nunconfirmed\n\nExample:\n?status=upcoming,past"},{"key":"afterStart","value":"2026-02-01T00:00:00.000Z","description":"OPTIONAL\n\nType: `string`\nFormat: UTC ISO 8601 datetime\n\nFilter bookings that start after this date/time.\n\nExample:\n?afterStart=2026-02-01T00:00:00.000Z"},{"key":"beforeEnd","value":"2026-02-27T23:59:59.999Z","description":"OPTIONAL\n\nType: `string`\nFormat: UTC ISO 8601 datetime\n\nFilter bookings that end before this date/time.\n\nExample:\n?beforeEnd=2026-02-27T23:59:59.999Z"},{"key":"afterCreatedAt","value":null,"description":"OPTIONAL\n\nType: `string`\nFormat: UTC ISO 8601 datetime\n\nFilter bookings created after this date/time.\n\nExample:\n?afterCreatedAt=2026-02-01T00:00:00.000Z"},{"key":"beforeCreatedAt","value":null,"description":"OPTIONAL\n\nType: `string`\nFormat: UTC ISO 8601 datetime\n\nFilter bookings created before this date/time.\n\nExample:\n?beforeCreatedAt=2026-02-27T23:59:59.999Z"},{"key":"sortStart","value":"asc","description":"OPTIONAL\n\nType: `enum<string>`\n\nSort results by start time.\n\nAllowed values:\n• asc\n• desc\n\nExample:\n?sortStart=asc"},{"key":"sortEnd","value":null,"description":"OPTIONAL\n\nType: `enum<string>`\n\nSort results by end time.\n\nAllowed values:\n• asc\n• desc\n\nExample:\n?sortEnd=desc"},{"key":"sortCreated","value":null,"description":"OPTIONAL\n\nType: `enum<string>`\n\nSort results by booking creation time.\n\nAllowed values:\n• asc\n• desc\n\nExample:\n?sortCreated=asc"},{"key":"sortUpdatedAt","value":null,"description":"OPTIONAL\n\nType: `enum<string>`\n\nSort results by last updated time (e.g. status change).\n\nAllowed values:\n• asc\n• desc\n\nExample:\n?sortUpdatedAt=desc"},{"key":"take","value":"100"},{"key":"skip","value":"0"}]}},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 14949767,\n            \"uid\": \"nUho54GLCh9fgqBPzLRmro\",\n            \"title\": \"Gesprek TeleCalendar / Business\",\n            \"description\": \"\",\n            \"hosts\": [\n                {\n                    \"id\": 1439126,\n                    \"name\": \"Rob Koopman\",\n                    \"email\": \"rob+cm659txbu00ueqn1o67siko1k@telecalendar.com\",\n                    \"displayEmail\": \"rob@telecalendar.com\",\n                    \"username\": \"rob-cm659txbu00ueqn1o67siko1k-telecalendar-com\",\n                    \"timeZone\": \"Europe/Amsterdam\"\n                }\n            ],\n            \"status\": \"accepted\",\n            \"cancellationReason\": \"\",\n            \"cancelledByEmail\": \"\",\n            \"rescheduledByEmail\": null,\n            \"start\": \"2026-02-06T10:00:00.000Z\",\n            \"end\": \"2026-02-06T10:30:00.000Z\",\n            \"duration\": 30,\n            \"eventTypeId\": 2627143,\n            \"eventType\": {\n                \"id\": 2647143,\n                \"slug\": \"klantgesprek\"\n            },\n            \"meetingUrl\": \"https://meet.google.com/avj-aeay-rtd\",\n            \"location\": \"https://meet.google.com/avj-aeay-rtd\",\n            \"absentHost\": false,\n            \"createdAt\": \"2026-01-23T10:14:42.343Z\",\n            \"updatedAt\": \"2026-01-23T10:14:45.767Z\",\n            \"metadata\": {},\n            \"rating\": null,\n            \"attendees\": [\n                {\n                    \"name\": \"Customer\",\n                    \"email\": \"Customer+cm659txbu00ueqn1o67siko1k@gmail.nl\",\n                    \"displayEmail\": \"customer@gmail.nl\",\n                    \"timeZone\": \"Europe/Amsterdam\",\n                    \"language\": \"en\",\n                    \"absent\": false\n                }\n            ],\n            \"guests\": [],\n            \"bookingFieldsResponses\": {\n                \"email\": \"customer+cm659txbu00ueqn1o67siko1k@gmail.nl\",\n                \"name\": \"Customer\",\n                \"guests\": [],\n                \"location\": {\n                    \"value\": \"integrations:google:meet\",\n                    \"optionValue\": \"\"\n                },\n                \"BEDRIJFSNAAM\": \"Business\",\n                \"displayEmail\": \"customer@gmail.nl\",\n                \"displayGuests\": []\n            }\n        },\n    ],\n    \"pagination\": {\n        \"returnedItems\": 1,\n        \"totalItems\": 89,\n        \"itemsPerPage\": 100,\n        \"remainingItems\": 0,\n        \"currentPage\": 1,\n        \"totalPages\": 1,\n        \"hasNextPage\": false,\n        \"hasPreviousPage\": false\n    }\n}"}],"_postman_id":"151a7a4a-f783-40b4-b936-1f3c1db74015"}],"id":"5f3d2e9e-004b-460d-b34f-755423a4de90","description":"<h2 id=\"body\">Body</h2>\n<p><strong>Content-Type:</strong> <code>application/json</code></p>\n<p><strong>Create appointment</strong></p>\n<hr />\n<h3 id=\"🔹-common-fields\">🔹 Common Fields</h3>\n<h4 id=\"start\"><code>start</code></h4>\n<p><strong>Type:</strong> <code>string</code> (ISO 8601, UTC)<br /><strong>Required</strong><br />The start time of the booking. Must be expressed in UTC.</p>\n<p>Example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">\"2024-08-13T09:00:00Z\"\n\n</code></pre>\n<h4 id=\"attendee\"><code>attendee</code></h4>\n<p><strong>Type:</strong> <code>object</code><br /><strong>Required</strong></p>\n<p>The attendee’s details.</p>\n<p><strong>Child attributes:</strong></p>\n<ul>\n<li><strong><code>name</code></strong> — <code>string</code>, required. Full name of attendee.</li>\n<li><strong><code>email</code></strong> — <code>string</code>, required. Email of attendee.</li>\n<li><strong><code>timeZone</code></strong> — <code>string</code>, required. Valid IANA time zone (e.g. <code>\"Europe/Amsterdam\"</code>).</li>\n<li><strong><code>language</code></strong> — <code>string</code>, optional. ISO language code (e.g. <code>\"en\"</code>).</li>\n</ul>\n<h4 id=\"bookingfieldsresponses\"><code>bookingFieldsResponses</code></h4>\n<p><strong>Type:</strong> <code>object</code></p>\n<p>Optional responses to custom booking fields. (Important for EMAIL/SMS VARIABLES)</p>\n<p>Example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{ \"customField\": \"customValue\" }\n\n</code></pre><h4 id=\"eventtypeid\"><code>eventTypeId</code></h4>\n<p><strong>Type:</strong> <code>number</code><br /><strong>Required</strong> unless you provide <code>eventTypeSlug</code> + <code>username</code> (or <code>teamSlug</code>).</p>\n<p>The ID of the event type being booked.</p>\n<p>Example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>3019502\n\n</code></pre><h4 id=\"guests\"><code>guests</code></h4>\n<p><strong>Type:</strong> <code>string[]</code></p>\n<p>Optional list of guest emails.</p>\n<p>Example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\"guest1@example.com\", \"guest2@example.com\"]\n\n</code></pre><h4 id=\"location\"><code>location</code></h4>\n<p><strong>Type:</strong> <code>object</code></p>\n<p>Optional. One of the event type’s supported locations.</p>\n<p><strong>Child attributes depend on type</strong>, for example:</p>\n<ul>\n<li><strong><code>type</code></strong> — <code>\"attendeeAddress\" | \"integration\"</code></li>\n<li><strong><code>address</code></strong> — <code>string</code> (if <code>type = attendeeAddress</code>).</li>\n<li><strong><code>integration</code></strong> — <code>\"google-meet\" | \"zoom\" | \"office365-video\"</code>(if <code>type = integration</code>).</li>\n</ul>\n<p>Example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{ \"type\": \"attendeeAddress\", \"address\": \"Herengracht 597, Amsterdam\" }\n\n</code></pre><h4 id=\"lengthinminutes\"><code>lengthInMinutes</code></h4>\n<p><strong>Type:</strong> <code>number</code></p>\n<p>Optional. Length of the appointment in minutes.</p>\n<p>If omitted, the default event type length is used.</p>\n<p>Example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>30\n\n</code></pre>","_postman_id":"5f3d2e9e-004b-460d-b34f-755423a4de90"},{"name":"Time slots","item":[{"name":"Get available time slots","id":"849b1a9d-f9aa-4a67-b9be-72d243f94082","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://api.telecalendar.com/api/time-slots?eventTypeId=2142121&start=2025-10-24&end=2025-10-24&duration=30&timeZone=Europe/Amsterdam","urlObject":{"protocol":"https","path":["api","time-slots"],"host":["api","telecalendar","com"],"query":[{"description":{"content":"<p><strong>Type:</strong> <code>string</code><br />The ID of the event type for which available slots should be checked.<br /><strong>REQUIRED</strong></p>\n","type":"text/plain"},"key":"eventTypeId","value":"2142121"},{"description":{"content":"<p><strong>Type:</strong> <code>string</code><br />Format: UTC ISO8601 date<br />Start date/time of the availability window.<br /><strong>REQUIRED</strong></p>\n","type":"text/plain"},"key":"start","value":"2025-10-24"},{"description":{"content":"<p><strong>Type:</strong> <code>string</code><br />Format: UTC ISO8601 date<br />End date/time of the availability window.<br /><strong>REQUIRED</strong></p>\n","type":"text/plain"},"key":"end","value":"2025-10-24"},{"description":{"content":"<p><strong>Type:</strong> <code>string</code><br />Slot duration in minutes. If the event type supports multiple possible durations, you can specify the desired duration here.<br /><strong>OPTIONAL</strong></p>\n","type":"text/plain"},"key":"duration","value":"30"},{"description":{"content":"<p><strong>Type:</strong> <code>string</code><br />Time zone in which the available slots should be returned.<br />Defaults to <code>UTC</code>. Example: <code>Europe/Amsterdam</code>.<br /><strong>OPTIONAL</strong></p>\n","type":"text/plain"},"key":"timeZone","value":"Europe/Amsterdam"}],"variable":[]}},"response":[{"id":"7bd7b216-a3b9-4bc9-800f-9cb3730e8fbb","name":"Get available time slots","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Authorization","value":"Bearer 9094e7543d8a88919c66707cc2017e80975ad867a4d5cc9503f9c1b5c89af7b87596adbf5d6c33e3a0a17a364fd6a5dd67699c8c24f1a90a8289eb08c0905fa7ec429b34c3deaa03c92ba19e87e4dd34392c33142e309fdef065b0779b0d5304722d470caa5ec9269a57862e0dd64a92e1878bd03329463e1d1c9de433b786f4","disabled":true}],"url":{"raw":"https://api.telecalendar.com/api/time-slots?eventTypeId=3019502&start=2025-09-29&end=2025-09-30&duration=30&timeZone=Europe/Amsterdam","protocol":"https","host":["api","telecalendar","com"],"path":["api","time-slots"],"query":[{"key":"eventTypeId","value":"3019502","description":"**Type:** `string`  \nThe ID of the event type for which available slots should be checked.  \n**REQUIRED**"},{"key":"start","value":"2025-09-29","description":"**Type:** `string`  \nFormat: UTC ISO8601 date  \nStart date of the availability window.  \n**REQUIRED**\n"},{"key":"end","value":"2025-09-30","description":"**Type:** `string`  \nFormat: UTC ISO8601 date  \nEnd date of the availability window.  \n**REQUIRED**"},{"key":"duration","value":"30","description":"**Type:** `string`  \nSlot duration in minutes. If the event type supports multiple possible durations, you can specify the desired duration here.  \n**OPTIONAL**\n"},{"key":"timeZone","value":"Europe/Amsterdam","description":"**Type:** `string`  \nTime zone in which the available slots should be returned.  \nDefaults to `UTC`. Example: `Europe/Amsterdam`.  \n**OPTIONAL**"}]}},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"2025-09-29\": [\n            {\n                \"start\": \"2025-09-29T09:00:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-29T09:30:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-29T10:00:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-29T10:30:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-29T11:00:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-29T11:30:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-29T12:00:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-29T12:30:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-29T13:00:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-29T13:30:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-29T14:00:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-29T14:30:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-29T15:00:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-29T15:30:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-29T16:00:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-29T16:30:00.000+02:00\"\n            }\n        ],\n        \"2025-09-30\": [\n            {\n                \"start\": \"2025-09-30T09:00:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-30T09:30:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-30T10:00:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-30T10:30:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-30T11:00:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-30T11:30:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-30T12:00:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-30T12:30:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-30T13:00:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-30T13:30:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-30T14:00:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-30T14:30:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-30T15:00:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-30T15:30:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-30T16:00:00.000+02:00\"\n            },\n            {\n                \"start\": \"2025-09-30T16:30:00.000+02:00\"\n            }\n        ]\n    },\n    \"status\": \"success\"\n}"}],"_postman_id":"849b1a9d-f9aa-4a67-b9be-72d243f94082"},{"name":"Get team recommendations","id":"f12d90ff-cd2b-4bc3-8c79-593b2dc1b688","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"eventTypeId\": \"4977046\",\n    \"date\": \"2026-03-11\",\n    \"address\": \"Palamedeestraat 38, 2026VX Haarlem\",\n    \"maxCommuteMinutes\": 60\n}"},"url":"https://app.telecalendar.com/api/route-planning/team-recommendations","description":"<p><strong><code>eventTypeId</code></strong> — <code>4977046</code><br />Type: <code>string</code><br />The ID of the TeleCalendar campaign event type to find team slots for.<br /><strong>REQUIRED</strong></p>\n<p><strong><code>date</code></strong> — <code>2026-03-11</code><br />Type: <code>string</code><br />Format: <code>YYYY-MM-DD</code> or <code>DD-MM-YYYY</code><br />Any date within the target week. The endpoint searches the full Mon–Sun window.<br /><strong>REQUIRED</strong></p>\n<p><strong><code>address</code></strong> — <code>Palamedeestraat 38, 2026VX Haarlem</code><br />Type: <code>string</code><br />The destination address. Used to calculate travel feasibility per account manager.<br /><strong>REQUIRED</strong></p>\n<p><strong><code>maxCommuteMinutes</code></strong> — <code>60</code><br />Type: <code>number</code><br />Override the campaign's default max commute time in minutes (max travel time between appointments).<br />OPTIONAL</p>\n<hr />\n<p><strong>RESPONSE</strong></p>\n<hr />\n<p><strong><code>date</code></strong> — <code>2026-03-11</code><br />Type: <code>string</code><br />The normalised date from the request, returned as <code>YYYY-MM-DD</code>.</p>\n<hr />\n<p><strong><code>slots</code></strong> — <code>[]</code><br />Type: <code>array</code><br />Up to 5 ranked available slots across the full Mon–Sun week, sorted by soonest start time.</p>\n<p><strong><code>slots[].eventTypeId</code></strong> — <code>4986435</code><br />Type: <code>number</code><br />The child (host-specific) account manager event type ID used for this slot.</p>\n<p><strong><code>slots[].hostUserId</code></strong> — <code>1439196</code><br />Type: <code>number</code><br />The user ID of the account manager assigned to this slot.</p>\n<p><strong><code>slots[].hostName</code></strong> — <code>Rob Koopman</code><br />Type: <code>string</code><br />Display name of the account manager.</p>\n<p><strong><code>slots[].start</code></strong> — <code>2026-03-10T13:00:00.000Z</code><br />Type: <code>string</code><br />Format: UTC ISO8601. Start time of the available slot.</p>\n<p><strong><code>slots[].end</code></strong> — <code>2026-03-10T14:00:00.000Z</code><br />Type: <code>string</code><br />Format: UTC ISO8601. End time of the available slot.</p>\n<p><strong><code>slots[].date</code></strong> — <code>2026-03-10</code><br />Type: <code>string</code><br />The calendar date of this slot in YYYY-MM-DD. May differ from the request date as the endpoint searches the full week.</p>\n<p><strong><code>slots[].baselineTravelSeconds</code></strong> — <code>18</code><br />Type: <code>number</code><br />Travel time in seconds between the preceding and following event without the new appointment (A→C direct). Used to compute the detour cost.</p>\n<p><strong><code>slots[].detourSeconds</code></strong> — <code>2850</code><br />Type: <code>number</code><br />Extra travel added by inserting this slot: (A→B + B→C) - (A→C). Lower is better.</p>\n<p><strong><code>slots[].waitAtBSeconds</code></strong> — <code>18369</code><br />Type: <code>number</code><br />Idle time the host would spend waiting at the destination before the slot starts.</p>\n<p><strong><code>slots[].checks</code></strong> — <code>[]</code><br />Type: <code>array</code><br />Travel feasibility checks for the legs around this slot (before and after).</p>\n<p><strong><code>slots[].checks[].leg</code></strong> — <code>before</code><br />Type: <code>string</code><br />Enum: <code>before</code>, <code>after</code>. Which leg this check covers: travel to the slot (before) or away from it (after).</p>\n<p><strong><code>slots[].checks[].travelSeconds</code></strong> — <code>1431</code><br />Type: <code>number</code><br />Estimated travel time in seconds for this leg.</p>\n<p><strong><code>slots[].checks[].availableSeconds</code></strong> — <code>19800</code><br />Type: <code>number</code><br />Time buffer available for travel on this leg.</p>\n<p><strong><code>slots[].checks[].feasible</code></strong> — <code>true</code><br />Type: <code>boolean</code><br />Whether travel is feasible within the available window.</p>\n<p><strong><code>slots[].checks[].exceededMaxCommute</code></strong> — <code>false</code><br />Type: <code>boolean</code><br />Whether this leg exceeds the campaign's maxCommuteMinutes cap.</p>\n<p><strong><code>slots[].checks[].hidden</code></strong> — <code>true</code><br />Type: <code>boolean</code><br />If true, this check is a homebase anchor within 30 min and is suppressed in the UI.<br />OPTIONAL</p>\n<p><strong><code>slots[].checks[].conflictEvent.id</code></strong> — <code>homebase-start-2026-03-10T07:30:00.000Z</code><br />Type: <code>string</code><br />Unique event ID. IDs prefixed with homebase- are synthetic anchors from the host's home base.</p>\n<p><strong><code>slots[].checks[].conflictEvent.start</code></strong> — <code>2026-03-10T07:30:00.000Z</code><br />Type: <code>string</code><br />Format: UTC ISO8601. Start time of the anchor event.</p>\n<p><strong><code>slots[].checks[].conflictEvent.end</code></strong> — <code>2026-03-10T07:30:00.000Z</code><br />Type: <code>string</code><br />Format: UTC ISO8601. End time of the anchor event.</p>\n<p><strong><code>slots[].checks[].conflictEvent.location</code></strong> — <code>Eosstraat, 1076DT, Amsterdam</code><br />Type: <code>string</code><br />Address or location string of the anchor event.</p>\n<p><strong><code>slots[].checks[].conflictEvent.title</code></strong> — <code>Rob Koopman - Rob Koopman</code><br />Type: <code>string</code><br />Title of the anchor event. Not present on homebase anchors.<br />OPTIONAL</p>\n<p><strong><code>slots[].checks[].conflictEvent.duration</code></strong> — <code>45</code><br />Type: <code>number</code><br />Duration of the anchor event in minutes. Not present on homebase anchors.<br />OPTIONAL</p>\n<p><strong><code>slots[].badges.shortestTravel</code></strong> — <code>false</code><br />Type: <code>boolean</code><br />True for the slot(s) with the lowest detourSeconds among the 5 returned.</p>\n<p><strong><code>slots[].badges.soonest</code></strong> — <code>true</code><br />Type: <code>boolean</code><br />True for the slot with the earliest start time among the 5 returned.</p>\n","urlObject":{"protocol":"https","path":["api","route-planning","team-recommendations"],"host":["app","telecalendar","com"],"query":[],"variable":[]}},"response":[{"id":"2e83d117-ace1-4de2-88d7-5e235eebd0a1","name":"Get team recommendations","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"eventTypeId\": \"4977046\",\n    \"date\": \"2026-03-11\",\n    \"address\": \"Palamedeestraat 38, 2026VX Haarlem\",\n    \"maxCommuteMinutes\": 60\n}"},"url":"https://app.telecalendar.com/api/route-planning/team-recommendations"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"date\": \"2026-03-11\",\n    \"slots\": [\n        {\n            \"eventTypeId\": 4986435,\n            \"hostUserId\": 1439196,\n            \"hostName\": \"Rob Koopman\",\n            \"start\": \"2026-03-10T13:00:00.000Z\",\n            \"end\": \"2026-03-10T14:00:00.000Z\",\n            \"date\": \"2026-03-10\",\n            \"checks\": [\n                {\n                    \"leg\": \"before\",\n                    \"travelSeconds\": 1431,\n                    \"availableSeconds\": 19800,\n                    \"feasible\": true,\n                    \"exceededMaxCommute\": false,\n                    \"conflictEvent\": {\n                        \"id\": \"homebase-start-2026-03-10T07:30:00.000Z\",\n                        \"start\": \"2026-03-10T07:30:00.000Z\",\n                        \"end\": \"2026-03-10T07:30:00.000Z\",\n                        \"location\": \"Eosstraat, 1076DT, Amsterdam\",\n                        \"address\": \"Eosstraat, 1076DT, Amsterdam\"\n                    },\n                    \"hidden\": true\n                },\n                {\n                    \"leg\": \"after\",\n                    \"travelSeconds\": 1437,\n                    \"availableSeconds\": 18000,\n                    \"feasible\": true,\n                    \"exceededMaxCommute\": false,\n                    \"conflictEvent\": {\n                        \"id\": \"_dpk74ojfedmnih3bahh42k22d5t7ihr885ok0gr1dgn66rrd\",\n                        \"start\": \"2026-03-10T19:00:00Z\",\n                        \"end\": \"2026-03-10T19:45:00Z\",\n                        \"location\": \"Eosstraat 414, Amsterdam\",\n                        \"title\": \"Rob Koopman - Rob Koopman\",\n                        \"duration\": 45\n                    }\n                }\n            ],\n            \"baselineTravelSeconds\": 18,\n            \"detourSeconds\": 2850,\n            \"waitAtBSeconds\": 18369,\n            \"badges\": {\n                \"shortestTravel\": false,\n                \"soonest\": true\n            }\n        },\n        {\n            \"eventTypeId\": 4986435,\n            \"hostUserId\": 1439196,\n            \"hostName\": \"Rob Koopman\",\n            \"start\": \"2026-03-10T14:00:00.000Z\",\n            \"end\": \"2026-03-10T15:00:00.000Z\",\n            \"date\": \"2026-03-10\",\n            \"checks\": [\n                {\n                    \"leg\": \"before\",\n                    \"travelSeconds\": 1431,\n                    \"availableSeconds\": 23400,\n                    \"feasible\": true,\n                    \"exceededMaxCommute\": false,\n                    \"conflictEvent\": {\n                        \"id\": \"homebase-start-2026-03-10T07:30:00.000Z\",\n                        \"start\": \"2026-03-10T07:30:00.000Z\",\n                        \"end\": \"2026-03-10T07:30:00.000Z\",\n                        \"location\": \"Eosstraat, 1076DT, Amsterdam\",\n                        \"address\": \"Eosstraat, 1076DT, Amsterdam\"\n                    },\n                    \"hidden\": true\n                },\n                {\n                    \"leg\": \"after\",\n                    \"travelSeconds\": 1437,\n                    \"availableSeconds\": 14400,\n                    \"feasible\": true,\n                    \"exceededMaxCommute\": false,\n                    \"conflictEvent\": {\n                        \"id\": \"_dpk74ojfedmnih3bahh42k22d5t7ihr885ok0gr1dgn66rrd\",\n                        \"start\": \"2026-03-10T19:00:00Z\",\n                        \"end\": \"2026-03-10T19:45:00Z\",\n                        \"location\": \"Eosstraat 414, Amsterdam\",\n                        \"title\": \"Rob Koopman - Rob Koopman\",\n                        \"duration\": 45\n                    }\n                }\n            ],\n            \"baselineTravelSeconds\": 18,\n            \"detourSeconds\": 2850,\n            \"waitAtBSeconds\": 21969,\n            \"badges\": {\n                \"shortestTravel\": false,\n                \"soonest\": false\n            }\n        },\n        {\n            \"eventTypeId\": 4978888,\n            \"hostUserId\": 2238621,\n            \"hostName\": \"Rob eu\",\n            \"start\": \"2026-03-11T08:00:00.000Z\",\n            \"end\": \"2026-03-11T09:00:00.000Z\",\n            \"date\": \"2026-03-11\",\n            \"checks\": [\n                {\n                    \"leg\": \"before\",\n                    \"travelSeconds\": 1431,\n                    \"availableSeconds\": 28800,\n                    \"feasible\": true,\n                    \"exceededMaxCommute\": false,\n                    \"conflictEvent\": {\n                        \"id\": \"homebase-start-2026-03-11T00:00:00.000Z\",\n                        \"start\": \"2026-03-11T00:00:00.000Z\",\n                        \"end\": \"2026-03-11T00:00:00.000Z\",\n                        \"location\": \"Eosstraat, 1076DT, Amsterdam\",\n                        \"address\": \"Eosstraat, 1076DT, Amsterdam\"\n                    },\n                    \"hidden\": true\n                },\n                {\n                    \"leg\": \"after\",\n                    \"travelSeconds\": 4845,\n                    \"availableSeconds\": 6300,\n                    \"feasible\": true,\n                    \"exceededMaxCommute\": false,\n                    \"conflictEvent\": {\n                        \"id\": \"6jf80r6h0bk69t4kfjud6tnn7r_20260311T104500Z\",\n                        \"start\": \"2026-03-11T10:45:00Z\",\n                        \"end\": \"2026-03-11T11:45:00Z\",\n                        \"location\": \"Landgoedlaan 26, 7325 AW Apeldoorn\",\n                        \"title\": \"Landgoedlaan 26, 7325 AW Apeldoorn\",\n                        \"duration\": 60\n                    }\n                }\n            ],\n            \"baselineTravelSeconds\": 3967,\n            \"detourSeconds\": 2309,\n            \"waitAtBSeconds\": 27369,\n            \"badges\": {\n                \"shortestTravel\": true,\n                \"soonest\": false\n            }\n        },\n        {\n            \"eventTypeId\": 4978888,\n            \"hostUserId\": 2238621,\n            \"hostName\": \"Rob eu\",\n            \"start\": \"2026-03-12T08:00:00.000Z\",\n            \"end\": \"2026-03-12T09:00:00.000Z\",\n            \"date\": \"2026-03-12\",\n            \"checks\": [\n                {\n                    \"leg\": \"before\",\n                    \"travelSeconds\": 1431,\n                    \"availableSeconds\": 28800,\n                    \"feasible\": true,\n                    \"exceededMaxCommute\": false,\n                    \"conflictEvent\": {\n                        \"id\": \"homebase-start-2026-03-12T00:00:00.000Z\",\n                        \"start\": \"2026-03-12T00:00:00.000Z\",\n                        \"end\": \"2026-03-12T00:00:00.000Z\",\n                        \"location\": \"Eosstraat, 1076DT, Amsterdam\",\n                        \"address\": \"Eosstraat, 1076DT, Amsterdam\"\n                    },\n                    \"hidden\": true\n                },\n                {\n                    \"leg\": \"after\",\n                    \"travelSeconds\": 5577,\n                    \"availableSeconds\": 9900,\n                    \"feasible\": true,\n                    \"exceededMaxCommute\": false,\n                    \"conflictEvent\": {\n                        \"id\": \"2d4vbe1lrvca0fah7911er0430_20260312T114500Z\",\n                        \"start\": \"2026-03-12T11:45:00Z\",\n                        \"end\": \"2026-03-12T13:00:00Z\",\n                        \"location\": \"Beekhuizenseweg 70-72, 6881 AM Velp, Netherlands\",\n                        \"title\": \"Beekhuizenseweg 70-72, 6881 AM Velp\",\n                        \"duration\": 75\n                    }\n                }\n            ],\n            \"baselineTravelSeconds\": 4699,\n            \"detourSeconds\": 2309,\n            \"waitAtBSeconds\": 27369,\n            \"badges\": {\n                \"shortestTravel\": true,\n                \"soonest\": false\n            }\n        },\n        {\n            \"eventTypeId\": 4978888,\n            \"hostUserId\": 2238621,\n            \"hostName\": \"Rob eu\",\n            \"start\": \"2026-03-12T09:00:00.000Z\",\n            \"end\": \"2026-03-12T10:00:00.000Z\",\n            \"date\": \"2026-03-12\",\n            \"checks\": [\n                {\n                    \"leg\": \"before\",\n                    \"travelSeconds\": 1431,\n                    \"availableSeconds\": 32400,\n                    \"feasible\": true,\n                    \"exceededMaxCommute\": false,\n                    \"conflictEvent\": {\n                        \"id\": \"homebase-start-2026-03-12T00:00:00.000Z\",\n                        \"start\": \"2026-03-12T00:00:00.000Z\",\n                        \"end\": \"2026-03-12T00:00:00.000Z\",\n                        \"location\": \"Eosstraat, 1076DT, Amsterdam\",\n                        \"address\": \"Eosstraat, 1076DT, Amsterdam\"\n                    },\n                    \"hidden\": true\n                },\n                {\n                    \"leg\": \"after\",\n                    \"travelSeconds\": 5577,\n                    \"availableSeconds\": 6300,\n                    \"feasible\": true,\n                    \"exceededMaxCommute\": false,\n                    \"conflictEvent\": {\n                        \"id\": \"2d4vbe1lrvca0fah7911er0430_20260312T114500Z\",\n                        \"start\": \"2026-03-12T11:45:00Z\",\n                        \"end\": \"2026-03-12T13:00:00Z\",\n                        \"location\": \"Beekhuizenseweg 70-72, 6881 AM Velp, Netherlands\",\n                        \"title\": \"Beekhuizenseweg 70-72, 6881 AM Velp\",\n                        \"duration\": 75\n                    }\n                }\n            ],\n            \"baselineTravelSeconds\": 4699,\n            \"detourSeconds\": 2309,\n            \"waitAtBSeconds\": 30969,\n            \"badges\": {\n                \"shortestTravel\": true,\n                \"soonest\": false\n            }\n        }\n    ]\n}"}],"_postman_id":"f12d90ff-cd2b-4bc3-8c79-593b2dc1b688"}],"id":"a9dd2ffb-0abe-4b2a-a3fa-c870208f0042","_postman_id":"a9dd2ffb-0abe-4b2a-a3fa-c870208f0042","description":""}],"variable":[{"key":"api_token","value":"fa612a252e8356700b3dad92ae5d536cb06422f6c35665be361a5308c8f394d4d0f2d2f69b66da87edb50f2bde1992c4c8854360a3fbbcb5bf8d2973aec8fe3733e42114852af98d8eb7a23512489942ed3add23bc709e5e83fe73a0ce49532d7522036ffe5183d082db14bf746e9c9f6c79da8072ef4c794d83d2f027ff49a1"}]}