Skip to main content

Create a One-Time Link

One-time links are single-use URLs that allow a visitor to schedule a meeting. Once the link has been used to successfully book a meeting, it expires and cannot be used again. Links that are never consumed are automatically deleted after 90 days.

This feature is available for both Booking Calendars and Master Pages.

Use Cases

  • Exclusive invitations: Send a unique booking link to a specific guest so only they can schedule a meeting.
  • Lead generation: Generate a one-time link after a form submission or chatbot conversation to route the visitor to book immediately.
  • Limited-time offers: Create urgency by providing a single-use scheduling link as part of a promotion.
  • Multi-participant meetings: Pre-add co-hosts from your account so they are automatically included when the meeting is booked.
POST /booking-calendars/{id}/one-time-links

Path Parameters

ParameterTypeDescription
idstringID of the booking calendar (e.g. BKC-8DJNDNL86G)

Request Body

ParameterTypeDefaultDescription
hide_url_paramsbooleantrueWhen set to true, the API generates a short one-time-use link with no visible query parameters.
oh_cohostsstring[]List of co-host email addresses to add to the booking. Co-hosts must belong to the same account, have a scheduling license, and must not be deleted. Passed as ?oh_cohosts=email1,email2 in the generated URL.
booking_formobjectPre-fill guest information (name, email, phone, and custom fields) in the booking form.
utm_paramsobjectAttach UTM tracking parameters (source, medium, campaign, term, content).
booking_settingsobjectConfigure booking settings such as co-hosts, host assignment, duration, and steps to skip.

Booking Form Object

ParameterTypeDescription
namestringName of the guest.
emailstringEmail of the guest.
phonestringPhone of the guest.
string_custom_fieldstringPlaceholder for a custom field that accepts a single text value. Replace with your mapped_field_name.
array_custom_fieldarray of stringsPlaceholder for a custom field that accepts multiple values. Replace with your mapped_field_name.

UTM Parameters Object

ParameterTypeDescription
sourcestringIdentifies which site sent the traffic (e.g., facebook).
mediumstringIdentifies what type of link was used (e.g., social).
campaignstringIdentifies a specific promotion or campaign (e.g., webinar_signup).
termstringIdentifies search terms (e.g., online+meeting+scheduler).
contentstringIdentifies what was clicked (e.g., logolink).

Booking Settings Object

ParameterTypeDefaultDescription
hoststringEmail of the team member who should host the booking. Only supported on team booking calendars. If the host is not a part of the team or doesn't have a license, the host is ignored and the distribution method continues as configured.
co_hostsstringComma-separated list of co-host email addresses to add to the booking. Co-hosts must belong to the same account, have a scheduling license, and must not be deleted. Use commas to separate multiple addresses (e.g., cohost1@example.com,cohost2@example.com).
duration_minutesintegerThe meeting duration in minutes. Must be one of the durations configured in the Booking Calendar settings. When set, the guest cannot change the duration. If an unsupported duration is passed, this parameter is ignored.
skipstring[]List of booking flow steps to skip (e.g., contact_info, questions, co_hosts).

Example Request

POST /booking-calendars/BKC-8DJNDNL86G/one-time-links
Content-Type: application/json
API-Key: your-api-key

{
"hide_url_params": true,
"oh_cohosts": [
"cohost1@example.com",
"cohost2@example.com"
],
"booking_form": {
"name": "Carrie Customer",
"email": "carrie.customer@example.com"
},
"utm_params": {
"source": "facebook",
"medium": "social",
"campaign": "webinar_signup"
},
"booking_settings": {
"host": "teamlead@example.com",
"co_hosts": "cohost3@example.com,cohost4@example.com",
"duration_minutes": 30,
"skip": ["contact_info"]
}
}

Response

A successful response returns the one-time link details. By default, hide_url_params is true, so the generated URL is short with no visible query parameters.

{
"id": "QUHVEKLPD93M",
"url": "https://oncehub.com/.QUHVEKLPD93M",
"creation_time": "2024-06-18T14:28:19Z"
}

If hide_url_params is set to false, the response also includes the consolidated url_params string:

{
"id": "QUHVEKLPD93M",
"url": "https://oncehub.com/.QUHVEKLPD93M",
"creation_time": "2024-06-18T14:28:19Z",
"url_params": "oh_cohosts=cohost1%40example.com%2Ccohost2%40example.com&utm_source=facebook"
}
FieldTypeDescription
idstringUnique identifier for the one-time link.
urlstringThe one-time booking URL.
creation_timestringISO 8601 timestamp when the link was created.
url_paramsstringConsolidated query string parameters appended to the URL. Only present when hide_url_params is false.

Errors

Status CodeError TypeExample Message
400invalid_request_errorThis booking calendar does not allow creation of one time links: 'BKC-1234'
401authentication_errorMissing or invalid API key.
404invalid_request_errorNo such booking calendar: '123'
429rate_limit_errorToo many requests.
POST /master-pages/{id}/one-time-links

Path Parameters

ParameterTypeDescription
idstringID of the master page (e.g. BP-EHM6JU50Q3)

Example Request

POST /master-pages/BP-EHM6JU50Q3/one-time-links
API-Key: your-api-key

Response

{
"id": "S617NW9C",
"url": "https://go.oncehub.com/.S617NW9C",
"creation_time": "2023-12-08T10:21:01Z"
}

Errors

Status CodeError TypeExample Message
400invalid_request_errorThis master page is deleted: 'BP-EHM6JU50Q3'
401authentication_errorMissing or invalid API key.
404invalid_request_errorNo such master page: '123'
429rate_limit_errorToo many requests.

URL Query Parameters

You can append the following query parameters to the generated one-time link URL to customize the booking experience.

ParameterTypeDescription
hoststringEmail of the team member who should host the booking. Only supported on team booking calendars. The host must be a member of the team selected on the booking calendar. If the host is not part of the team or doesn't have a license, this parameter is ignored and the distribution method continues as configured.
duration_minutesintegerMeeting duration in minutes. Must be one of the durations configured in the booking calendar settings. When set, the guest cannot change the duration. If an unsupported duration is passed, this parameter is ignored and the duration dropdown is shown as normal.

Important Notes

note

One-time links are only available for published Booking Calendars.

warning

One-time links that haven't been consumed will be automatically deleted after 90 days.

tip

Once a booking is made using a one-time link, it expires immediately and cannot be reused.

See Also