Skip to content
Blog

How to Connect TidyCal to n8n with the HTTP Request Node

To connect TidyCal to n8n, create a TidyCal personal access token, save it as a Bearer Auth credential in n8n, then send a GET request to https://tidycal.com/api/booking-types. The endpoint lists the booking types in the authenticated TidyCal account. It is a read-only first call before you build a workflow around bookings or contacts.

TidyCal's API requires a paid TidyCal plan. This guide follows TidyCal's API reference and help center, plus the HTTP Request fields visible in n8n. The endpoint returned 401 Unauthorized when checked without a token. The response fields below come from TidyCal's API reference, so compare them with the output your own account returns.

What you need

  • A TidyCal account on a plan with API access. TidyCal's API setup guide lists Individual, Pro, and Agency plans.
  • Access to an n8n editor where you can create a workflow and credential.
  • A personal access token from your own TidyCal account. Keep it out of screenshots, URLs, and workflow text fields.

Step 1: Create a TidyCal personal access token

Sign in to TidyCal and open Integrations → Automations. Scroll to the API card and click Manage API keys. In the Personal tokens tab, click Create token, give it a name you will recognize in n8n, and click Create. Copy the token when TidyCal shows it; the official instructions say it is shown only once.

Integrations Automations page with the API card and Manage API keys button

TidyCal API settings with the Personal tokens tab and Create token button

Both screenshots are from TidyCal's own help center. Its current help article calls the section Automations; its developer reference also mentions Advanced. Follow Manage API keys in your signed-in account if the section name differs.

Step 2: Store the token in an n8n credential

Create a workflow in n8n with Trigger manually, then add an HTTP Request node. Open the node's Parameters tab. Under Authentication, choose Generic Credential Type. Set Generic Auth Type to Bearer Auth, then create a new Bearer Auth credential and paste the TidyCal token into its token field. Name the credential TidyCal personal token or another clear name and save it.

n8n sends bearer credentials in the Authorization header. TidyCal expects Authorization: Bearer YOUR_TOKEN, so do not add a second manual Authorization header. Check the selected credential name before testing; a credential for another service will not authenticate a TidyCal request.

Step 3: Configure the read-only request

Set these HTTP Request parameters:

Field Value
Method GET
URL https://tidycal.com/api/booking-types
Authentication Generic Credential Type
Generic Auth Type Bearer Auth
Bearer Auth credential Your saved TidyCal credential
Send Query Parameters Off for the first request
Send Headers Off; Bearer Auth supplies the Authorization header
Send Body Off

TidyCal documents this exact List booking types endpoint. Do not use a public booking-page URL here; the REST API path starts with https://tidycal.com/api/.

Step 4: Execute and read the response

Click Execute step. If the token, account access, and endpoint are correct, n8n should show a JSON response in OUTPUT. TidyCal's API reference shows a top-level data array for this endpoint. Each booking type can include fields such as id, title, duration_minutes, url_slug, and url.

Read the actual item returned by your account before mapping fields into another node. An account with no booking types can return an empty data array. Titles, IDs, URLs, and the number of items are account-specific; the sample values in TidyCal's docs are examples, not results from this workflow.

For a quick check, confirm that the output contains data and inspect the first booking type's title and duration_minutes if the array is not empty. Save a redacted screenshot of the n8n settings and output only after a successful authenticated run. Never include the token or private booking details in a public article.

Fix common connection errors

401 Unauthorized: TidyCal rejects the request when the token is missing, invalid, or not sent as a bearer token. Confirm that the selected n8n credential is the TidyCal credential and that Generic Auth Type is Bearer Auth. The endpoint returned 401 in a no-token check for this guide.

The API controls are missing in TidyCal: Confirm that the account has API access. TidyCal's help center lists API access on paid Individual, Pro, and Agency plans. If your account has access but the navigation differs, find Manage API keys inside Integrations.

Wrong URL or empty output: Check that the URL is https://tidycal.com/api/booking-types. A successful response with data: [] means the request worked but returned no booking types for that account. A request error is different; inspect n8n's error message and TidyCal's response before changing other settings.

Too many requests: TidyCal's help center states a limit of 60 API requests per minute per account. For a scheduled workflow, keep the polling interval and number of requests inside that limit. Fetching the first page is enough to prove this connection; if you later need every booking type, check TidyCal's page parameter and response before configuring pagination.

Turn the response into one item per booking type

The HTTP Request node returns the whole response as one item, with the booking types inside data. Most later nodes work better with one item per booking type. Add a Split Out node after the request and set Fields To Split Out to data. Each booking type then becomes its own item, and you can map {{ $json.title }} or {{ $json.duration_minutes }} directly in the next node.

A simple first workflow looks like this:

Step Node What it does
1 Manual Trigger or Schedule Trigger Starts the workflow
2 HTTP Request GET https://tidycal.com/api/booking-types with your Bearer Auth credential
3 Split Out Splits data into one item per booking type
4 Filter (optional) Keeps only the booking types you care about, for example by title
5 Google Sheets, Slack, or another node Uses each booking type's fields

Run the workflow once with Execute workflow and check the item count after Split Out against the number of booking types in your account.

Fetch more than one page

The list endpoint accepts a page parameter. If your account has more booking types than one response returns, use the HTTP Request node's built-in pagination instead of building a loop:

  1. Open Options → Add option → Pagination.
  2. Set Pagination Mode to Update a Parameter in Each Request.
  3. Add a parameter with Type Query, Name page, and Value {{ $pageCount + 1 }}. Check TidyCal's reference to confirm the first page number.
  4. Set Pagination Complete When to Other with the expression {{ $response.body.data.length === 0 }}.
  5. Set Limit Pages Fetched to a safe maximum while you test.

Each page arrives as a separate item, so keep the Split Out node after the request. Confirm the stop condition against TidyCal's documented response before you rely on it in a scheduled workflow.

Stay inside the rate limit

With a 60-requests-per-minute limit per account, a workflow that loops over many items can hit the limit quickly. Two built-in settings help:

  • Options → Batching on the HTTP Request node sends requests in batches. For example, 10 items per batch with a 10,000 ms interval keeps the node around 60 requests a minute.
  • Settings → Retry On Fail retries a failed request after a wait. Use a wait of several seconds so a brief 429 response has time to clear.

Count every workflow that uses the same TidyCal account, because the limit is shared across them.

After the first request works

The HTTP Request node is a direct way to call TidyCal's API, but each new operation needs its own method, URL, inputs, and response handling. The NativeShip guide to choosing HTTP Request or a custom node explains when that work is worth packaging into a dedicated integration. For a concrete TidyCal example, read how we built the TidyCal community node from its OpenAPI specification. That package still has an authentication mismatch under review, so use the HTTP Request setup above for this guide's TidyCal connection. How to check a community node before installing it walks through that review, and choosing API operations for an n8n node shows how the booking flow maps to node actions. The NativeShip node directory lists ready-made nodes for other services.

Frequently asked questions

Use n8n's HTTP Request node. The URL starts with https://, which makes this an HTTPS request.

TidyCal's current help center lists API access on paid Individual, Pro, and Agency plans. Check your account's API card if your plan or entitlements have changed.

Enter the token itself in a Bearer Auth credential. n8n adds the bearer authorization format when it sends the request. Do not also add a manual Authorization header.

A token can authenticate requests allowed by its TidyCal account. Name and manage credentials so you know which account each workflow uses, and delete or replace a token in TidyCal if it is exposed.

The request succeeded, but the authenticated account returned no booking types. Check that the token belongs to the account you expect and that the account has booking types. If you use pagination, an empty data array on a later page is also the normal stop signal.

No. GET /api/booking-types reads booking types. Creating or changing TidyCal data uses other documented endpoints and requires its own inputs and tests.

Yes. Keep the TidyCal credential, then use the method, path, parameters, and body in TidyCal's API reference for each new operation. Test read-only calls first and inspect each endpoint's real output.

Ready to launch your n8n, Make, Zapier or Activepieces integration?

Give your customers another way to use your product.

Get started