Duplicate a scheduling link
Create a copy of an existing scheduling link.
OAuth 2.0 authorization code flow
In: header
Path Parameters
Link ID to duplicate
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/links/link_01J5KC2G3MHPCECSQ6KM6FMDPC/duplicate"{ "default_duration": 30, "description": "A brief meeting to discuss your needs", "durations": [ 15, 30, 45 ], "fields": [ { "id": "field_123", "is_required": true, "label": "Company", "options": [], "type": "short_text" } ], "id": "link_01J5KC2G3MHPCECSQ6KM6FMDPC", "increment": 15, "name": "30 Minute Meeting", "private_name": "Quick sync with prospects", "scope": { "id": "scope_01J5KC4R7NHQFGT8V2WD9Y8H6X", "name": "Sales Team", "slug": "sales" }, "slug": "30min", "state": "active"}Update a scheduling link PATCH
Update an existing scheduling link.
Get available time slots GET
Get available time slots for booking on a scheduling link. If the link organizer has configured multiple durations, we'll return all possible time slots for each duration. For example, if the organizer allows schedulers to book either 30 or 60 minutes, then you may see slots that start at the same time (or overlap) with different durations: ```javascript [ { start_at: "2021-06-01T00:00:00Z", end_at: "2021-06-01T00:30:00Z", duration: 30, rank: 1 }, { start_at: "2021-06-01T00:00:00Z", end_at: "2021-06-01T01:00:00Z", duration: 60, rank: 1 } ] ``` If the organizer is using ranked availability, then the response may include slots with different `rank` values: ```javascript [ // A slot with "first" preference { start_at: "2021-06-01T00:00:00Z", end_at: "2021-06-01T00:30:00Z", duration: 30, rank: 1 }, // A slot with "second" preference { start_at: "2021-06-01T03:00:00Z", end_at: "2021-06-01T03:30:00Z", duration: 60, rank: 2 } ] ``` Slots with rank `1` are those the organizer prefers the most. Slots with rank `2` (and higher) will include all the slot times from lower ranks, plus additional times available in that rank. This means if you want to get the "expanded" availability (e.g. up to rank 2), you simply need to filter the list for slots where `rank === 2` (not where `rank === 1 || rank === 2`). Here's some JavaScript pseudo-code to demonstrate: ```javascript const slots = await fetchSlots(); // Includes just the rank 1 times const preferredAvailability = slots.filter(({ rank } => rank === 1)); // Includes all rank 1 AND rank 2 times const expandedAvailability = slots.filter(({ rank } => rank === 2)); // Includes all rank 1, rank 2 and rank 3 times const moreExpandedAvailability = slots.filter(({ rank } => rank === 3)); ```