company logo

Help center

All collectionsCalendars & IntegrationsCalendly Calendar Integration

Calendly Calendar Integration

Connect your Calendly calendar to ROASForm and let your form visitors book appointments directly, no redirects, no extra steps.

Jovan StojanovicยทOctober 9, 2026

Requirements

  • A paid Calendly account (Standard plan or above). Free Calendly accounts can connect to ROASForm, but bookings will not go through. Calendly restricts third-party bookings on free plans.

  • At least one active event type in your Calendly account (e.g., "30 Minute Meeting").

Important: If you're on a free Calendly plan, everything will appear to work during setup, but your form visitors will get an error when they try to book. Upgrade to Calendly Standard or above to enable bookings.

Connecting Your Calendly Account

  1. From your ROASForm dashboard, navigate to Connect > Integrations.

  2. Find the Calendly card. It shows a Requires Paid Calendly Account badge.

  3. Click the Connect button.

  4. On Calendly's authorization page, review the permissions and click Allow.

  5. You'll be redirected back to ROASForm. The card shows a green Connected badge and a Manage button.

Adding a Calendar to Your Form

Step 1) Create or Edit a Form Ending

In the form builder, click on an ending (or create a new one) and set its type to Calendar. The calendar settings modal opens automatically for new endings.

Step 2) Select Calendly as the Provider

Choose Calendly from the calendar provider dropdown.

Step 3) Pick an Event Type

Select the Calendly event type you want visitors to book. Each event type shows:

  • A green or red dot indicating whether it's active or inactive (inactive types are disabled)

  • The event kind in parentheses (e.g., "Round Robin", "Group")

  • A blue โ„น info icon if the event has multiple locations configured

Paid Event Types

Event types that require payment (configured in your Calendly account) are automatically disabled in the dropdown and cannot be selected. Hovering over a disabled paid event type shows a tooltip:

"Requires payment - cannot be booked via third-party integrations"

This restriction comes from Calendly: paid event types cannot be booked through external APIs. To use these event types, remove the payment requirement in your Calendly settings.

Step 4) Save

Click Save to apply. The form builder will automatically handle contact field enforcement and inject any required custom question or location fields.

Tip: Use the ๐Ÿ”„ refresh button next to the dropdown to re-fetch your latest event types if you've made changes in your Calendly account.

How Booking Works

When a visitor completes your form and reaches a calendar ending:

  1. Availability loads: The form fetches real-time availability from Calendly

  2. Visitor picks a slot: They choose a date and time from available slots

  3. Booking is created: ROASForm creates the booking via the Calendly Scheduling API

  4. Confirmation: The visitor sees a confirmation, and both they and the host receive calendar invites

The booking happens server-side through the Calendly API. The visitor never leaves your form: there's no redirect to an external booking page.

Live Preview in the Form Builder

The form builder shows real availability from your Calendly account, not mock data. You can browse dates and time slots directly in the builder to verify your calendar is working correctly before publishing.

Tip: Preview mode doesn't create real bookings. You can safely click through the calendar without affecting your schedule.

Contact Field Enforcement

Calendly requires both a name and email for every booking. ROASForm enforces this automatically.

Auto-Injection Rules

When you save a Calendly calendar ending:

Form state

What happens

Has both name + email

Both are marked required if they aren't already

Has only name

Name is marked required; email element is auto-injected

Has only email

Email is marked required; name element is auto-injected

Has neither

Both name + email elements are auto-injected (both required)

Deletion Guard

You cannot delete the last Name or Email element while a Calendly calendar ending uses it (deleting one of several is allowed). A toast notification identifies which ending requires it:

"Name element is required by calendar ending: Calendar 2"

Required Toggle Guard

You cannot toggle required off on a name or email element while a Calendly calendar ending exists:

"Name must be required for calendar ending: Calendar 2"

Multiple Calendar Endings

If multiple calendar endings exist, the toast messages list all affected endings:

"Name element is required by calendar ending: Calendar 2, Calendar 3"

Custom Questions & Location Fields

When you select a Calendly event type, ROASForm automatically inspects it for required data.

Custom Questions

If the event type has required custom questions (configured in your Calendly account), they are automatically added to the top of your form as locked elements.

How it works:

  • Required questions are injected when you save the calendar settings

  • Each question is mapped to the appropriate form element type:

Calendly Question Type

Form Element

Single line text

Short text

Multi-line text

Long text

Radio buttons

Single choice

Checkboxes

Multiple choice

Phone number

Phone

Locked behavior:

  • These elements show a ๐Ÿ”’ Calendly badge in the sidebar and a blue banner in the settings panel:
    "Calendly Required Question: This element is managed by Calendly and cannot be edited to ensure your calendar bookings work correctly"

  • You cannot edit the label, type, description, or options: they are synced from Calendly

  • You cannot delete them: they are removed automatically when the calendar is changed or removed

  • You can reorder them by dragging

  • The sidebar context menu (duplicate/delete) is hidden for locked elements

Shared elements: If two endings use the same event type with the same custom question, one shared element is created. It's only removed when no endings reference it anymore.

Location Fields

Calendly event types have a location configuration. Only locations that require visitor input are injected as form elements:

Location Type, What It Means, What's Injected

Outbound Call

Host calls the invitee: needs their phone number

Phone number input (required, locked)

Invitee Specified

Invitee chooses where to meet

Short text input (required, locked)

In-Person Meeting

Static address set by the host

No form element: handled by the backend automatically

Custom Location

Static custom value set by the host

No form element: handled by the backend automatically

Conference locations (Zoom, Google Meet, Microsoft Teams, GoTo Meeting, Webex, etc.) are handled automatically by Calendly: no form field is needed.

Location field banner: Location fields show a distinct banner:
"Calendly Location Field: This location field is required by Calendly. You can customize the label and description."
Unlike custom question elements, location fields allow editing the label and description.

If an event type has multiple location options, only one location field is injected: the first location that requires visitor input.

Multi-location indicator: Event types with multiple locations show a blue โ„น info icon in the event type dropdown. Hovering over it displays a tooltip:

"This event has 3 locations. Only the first supported location type will be used for the booking form."

Location fields follow the same locked lifecycle as custom questions: auto-injected on save, removed on calendar change or disconnect.

Supported Event Types

ROASForm supports all Calendly event type formats:

Event Kind

Description

One-on-one

Standard 1:1 meeting between host and invitee

Group

Multiple invitees can book the same time slot

Round Robin

Automatically assigns the meeting to an available team member

Collective

Requires all selected team members to be available

Multi-pool

Considers availability across separate pools of team members

All active event types from your Calendly account appear automatically in the form builder. Inactive event types appear greyed out and cannot be selected.

Event Type Grouping

Event types are organized into groups in the dropdown:

  • By profile: each event type is listed under its Calendly profile name (the host or the team)

  • Shared Events: shared event types with no profile name appear under this header

Disconnecting Your Calendar

  1. Go to Connect > Integrations

  2. Click Manage on the Calendly card to expand it

  3. Click Disconnect

  4. A confirmation dialog appears with these details:

  • All locked Calendly elements will be removed from your forms

  • Calendar endings will become inactive (no event type selected)

  • Existing bookings already made through Calendly are not affected

You can reconnect at any time.

Auto-cleanup: When you next open the form builder after disconnecting, any orphaned locked elements are automatically cleaned up even if the form wasn't saved during disconnect.

Logic Jump Guards

When adding logic rules, some questions in the "jump to" dropdown may appear greyed out (disabled). Only questions a calendar ending needs block a jump: for Calendly, its locked questions plus Name and Email. Other required questions can be skipped.

Tooltip explanation: Hovering over a disabled item shows a tooltip headed Required by "<ending name>": followed by a bulleted list of the questions that jump would skip.

Ending Validation

Calendar endings in the "jump to" dropdown may also appear disabled if the ending itself has configuration issues (e.g., missing calendar selection or missing required contact fields). A tooltip explains the specific issue.

To unlock a target: Move that question earlier, so it comes before the jump source, or fix the ending.

Troubleshooting

Calendar ending shows a warning icon

If a calendar ending shows a red warning icon in the sidebar, it means the ending has a configuration issue. Common causes:

  • No calendar/event type is selected

  • Required contact fields (name + email) are missing from the form

  • Required custom questions are not mapped to form elements

Open the calendar settings modal to view the specific issue and resolve it.

Booking fails on the live form

The visitor sees Calendly's message followed by "Please try again later.", or "Failed to book appointment. Please try again." Your Calendly account is likely on the free plan. The Scheduling API requires Calendly Standard or above. Upgrade your Calendly plan.

"This time slot was just booked by someone else. Please select another time."

Another visitor booked the same slot before your visitor could confirm. The form will display an error and the visitor can choose a different time.

Event types not showing up

  • Make sure the event type is active in your Calendly account (inactive types appear greyed out)

  • Click the ๐Ÿ”„ refresh button to re-fetch

  • If you're on a team plan, ensure your account has access to the event types

  • Shared and round robin event types only go missing on an older connection that lacks a newer Calendly permission; reconnecting Calendly fixes it

Locked elements won't go away

Locked elements are tied to calendar endings. To remove them:

  • Change the event type on the ending, or

  • Delete the calendar ending, or

  • Switch the ending away from Calendly

If elements persist after a page refresh, open the calendar settings and save. This triggers a cleanup cycle. The form builder also runs an auto-cleanup when Calendly is disconnected.

Can't delete email / name element

A Calendly calendar ending requires both name and email, so you can't delete the last Name or Email element while the ending uses it. The toast notification tells you which ending. To remove the restriction, delete or change the calendar ending.

Can't toggle "required" off on a contact field

Same reason as above: Calendly requires both name and email to be mandatory. See the toast notification for which ending is enforcing it.

Custom question mapping validation errors

If you see a warning on the calendar ending like "X required question(s) need mapping", it means:

  • The event type has required custom questions that aren't mapped to form elements, or

  • A mapped form element isn't marked as required

Save the calendar settings to auto-inject the missing locked elements, or manually map them using the question mapping UI.

Did this answer your question?
๐Ÿ˜ž
๐Ÿ˜
๐Ÿ˜