
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.
From your ROASForm dashboard, navigate to Integrations in the sidebar.
Find the Calendly card - it shows a Beta badge and a Requires Paid Calendly Account badge.
Click the Connect button.
On Calendly's authorization page, review the permissions and click Allow.
You'll be redirected back to ROASForm. The card shows a green Connected badge and a Manage button.
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.
Choose Calendly from the calendar provider dropdown.
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
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.
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.
When a visitor completes your form and reaches a calendar ending:
Availability loads - The form fetches real-time availability from Calendly
Visitor picks a slot - They choose a date and time from available slots
Booking is created - ROASForm creates the booking via the Calendly Scheduling API
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.
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.
Calendly requires both a name and email for every booking. ROASForm enforces this automatically.
When you save a Calendly calendar ending:
Form state
What happens
Has both name + email | Both are marked |
Has only name | Name is marked |
Has only email | Email is marked |
Has neither | Both name + email elements are auto-injected (both required) |
You cannot delete a name or email element while a Calendly calendar ending exists. A toast notification identifies which ending requires it:
"Name element is required by calendar ending: Calendar 2"
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"
If multiple calendar endings exist, the toast messages list all affected endings:
"Name element is required by calendar ending: Calendar 2, Calendar 3"
When you select a Calendly event type, ROASForm automatically inspects it for required data.
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.
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.
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 |
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 types are organized into groups in the dropdown:
Personal - solo event types owned by you (shown without a group header)
Team / Shared - team-based event types (round robin, collective, or team-owned) shown under their team or profile name
Go to Integrations in the sidebar
Click Manage on the Calendly card to expand it
Click Disconnect
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.
When adding logic rules, some questions in the "jump to" dropdown may appear greyed out (disabled). This prevents jumping over required questions - whether they're regular required fields or Calendly-locked elements.
Tooltip explanation: Hovering over a disabled item shows a tooltip explaining why:
"Jumping here would skip "New Email Question" which is required to be answered"
For Calendly-locked elements, the tooltip explicitly identifies the integration:
"Jumping here would skip "Phone Number" (required by Calendly) which is required to be answered"
For multiple skipped questions:
"Jumping here would skip "New Email Question", "Phone Number" (required by Calendly) which are required to be answered"
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: Reorder your questions so the required field comes before the jump source, or make the blocking question optional (if it's not a Calendly-locked or calendar-enforced field).
If a calendar ending shows a red warning badge 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.
Your Calendly account is likely on the free plan. The Scheduling API requires Calendly Standard or above. Upgrade your Calendly plan.
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.
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
If you're a paid non-admin user, organization-level event types may not appear (user-level event types will still load)
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.
A Calendly calendar ending requires both name and email. The toast notification tells you which ending. To remove the restriction, delete or change the calendar ending.
Same reason as above - Calendly requires both name and email to be mandatory. See the toast notification for which ending is enforcing it.
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.