# Common Issues

## Connection issues

<details>

<summary>My API key is rejected when connecting</summary>

Double-check that you copied the full API key from Cal.com — they can be long and easy to truncate. Go to **Settings → Developer → API Keys** in Cal.com and regenerate a new key if needed. Also make sure the key hasn't been manually expired or deleted.

</details>

<details>

<summary>I can connect but get no data back</summary>

This usually means the API key belongs to a user account that has no data for the selected entity. For example, if you select **Bookings** but haven't received any bookings yet, the response will be empty. Try selecting **My profiles** first to confirm the connection is working and returning your user info.

</details>

## Missing data

<details>

<summary>Cancelled bookings are missing from my export</summary>

By default, some API responses filter by status. Coupler.io pulls all bookings regardless of status, so if cancelled bookings aren't appearing, check whether you've applied a filter in your destination (e.g., a Google Sheets filter view). The `status` field in the Bookings entity includes `cancelled` records — make sure you're not filtering them out.

</details>

<details>

<summary>I don't see bookings from my team members, only my own</summary>

Cal.com's API is scoped to the authenticated user. The API key you provide only returns data for that user's account. To pull data for multiple team members, you need to create separate data flows using each member's API key, then use the **Append** transformation in Coupler.io to combine them into one dataset.

</details>

<details>

<summary>Attendee fields are missing or appear as a single concatenated string</summary>

Attendees are returned as a nested array by the Cal.com API. Coupler.io flattens this automatically, but in some destinations the data may appear differently depending on how many attendees a booking has. If attendee emails or names look merged, check the column structure in your destination and consider splitting the field manually.

</details>

## Permission errors

<details>

<summary>I get a 401 Unauthorized error</summary>

This means your API key is invalid or has been revoked. Go to **Settings → Developer → API Keys** in Cal.com and confirm the key is still active. If you recently rotated your key, update it in Coupler.io under the source settings for your data flow.

</details>

<details>

<summary>I get a 403 Forbidden error on certain entities</summary>

Some entities may require specific account types or permissions. If you're on a free Cal.com plan, certain API endpoints may have restricted access. Check Cal.com's documentation for any plan-level API restrictions.

</details>

## Data discrepancies

<details>

<summary>The booking count in Coupler.io doesn't match what I see in Cal.com</summary>

Cal.com's dashboard may show bookings differently depending on whether it includes recurring instances, rescheduled bookings, or pending bookings. In Coupler.io, check the `status` field to make sure you're counting only `accepted` bookings if that's what the Cal.com dashboard is showing. Recurring bookings may also appear as multiple rows.

</details>

## Rate limits

<details>

<summary>My data flow fails with a rate limit error</summary>

Cal.com enforces API rate limits that vary by plan. If you're running large data flows frequently or have multiple data flows hitting the API at the same time, you may hit this limit. Try reducing the frequency of scheduled runs or staggering multiple data flows so they don't all run simultaneously.

</details>
