Cal.com

Estimated reading: 4 minutes

Cal.com is an open source scheduling platform and a popular Calendly alternative. With Advanced Form Integration (AFI), you can create a Cal.com booking automatically whenever someone submits a form on your WordPress site. For example, a consultation request form can book the visitor straight into your “30 Minute Call” event type, or an intake form can schedule a demo and pass the visitor’s answers into the booking questions.

Supported Features

  • Create Booking: create a new booking against any Cal.com event type, including its custom booking questions.
  • Cancel Booking (AFI Pro): cancel an existing booking by its booking UID, with an optional reason.
  • Reschedule Booking (AFI Pro): move an existing booking to a new start time.
  • Mark Attendee No-Show (AFI Pro): mark an attendee (or the host) absent on a booking.

What You’ll Need

  • A Cal.com account with at least one event type.
  • A Cal.com API key.
  • AFI free for Create Booking. AFI Pro for Cancel, Reschedule, and Mark No-Show.
  • A WordPress form plugin supported by AFI (WPForms, Contact Form 7, Gravity Forms, and many more).

Connecting Cal.com to AFI

AFI authenticates with a Cal.com API key sent as a Bearer token to the Cal.com v2 API.

  1. Sign in to Cal.com and open Settings > Developer > API keys.
  2. Click Add to generate a new API key. Give it a descriptive name, such as WordPress, and pick an expiry.
  3. Copy the key right away. Cal.com only shows the secret once. It usually starts with cal_live_.

Cal.com Settings > Developer > API keys page with the Add button and a newly generated key visible

  1. In your WordPress dashboard, go to AFI > Settings and open the Cal.com tab.
  2. Click to add a new account, give it a title, paste the API key into the API Key field, and save.

AFI Settings, Cal.com tab, with the API Key field filled in and the account saved in the accounts table

You can save more than one Cal.com account. Each integration picks the account it should use.

How to Create the Integration

  1. Go to AFI > Add New.
  2. Rename the auto-filled Integration Title to something meaningful, such as “Consultation Form to Cal.com”.
  3. Under Trigger, select your form plugin and the specific form.
  4. Under Action, select Cal.com in the Platform dropdown. Pro users can select Cal.com [PRO] for the extra tasks.
  5. Choose the Task, for example Create Booking.
  6. Select your Cal.com Account.
  7. Select the Event Type. The booking is created against this event type, and its booking questions load below.
  8. Map the fields (see the table below).
  9. Click Save Integration.

AFI integration editor showing the Cal.com action with the Event Type dropdown and mapped fields

Field Mapping

Create Booking

Field Description
Start Booking start time in ISO 8601 UTC, for example 2026-01-15T10:00:00Z. Required.
Attendee Name The attendee’s full name. Required.
Attendee Email The attendee’s email address. Required.
Attendee Timezone IANA timezone, such as America/New_York. Defaults to your site timezone.
Attendee Language ISO 639-1 code. Defaults to en.
Attendee Phone Phone number in E.164 format, used for SMS reminders.
Guests Extra guest emails, comma separated.
Length in Minutes Booking length, for variable-length event types.
Recurrence Count Number of occurrences, for recurring event types.
[Question] fields Any custom booking questions on the selected event type appear as extra fields. Required questions must be mapped or Cal.com rejects the booking.

If Start, Attendee Name, or Attendee Email is missing at send time, AFI skips the request instead of sending one that Cal.com would reject.

Cancel Booking (AFI Pro)

Field Description
Booking UID The booking uid, for example from a Cal.com webhook. Required.
Cancellation Reason Optional reason text.

Reschedule Booking (AFI Pro)

Field Description
Booking UID The booking to move. Required.
New Start New start time in ISO 8601 UTC. Required.
Rescheduling Reason Optional reason text.

Mark Attendee No-Show (AFI Pro)

Field Description
Booking UID The booking to update. Required.
Attendee Email The attendee to mark absent. Leave blank to mark the host absent.

Troubleshooting

Authentication errors (401 or 403)

Check that you copied the full API key and that it has not expired. Cal.com keys can be created with an expiry date. Generate a fresh key under Settings > Developer > API keys and update it in AFI > Settings > Cal.com.

Bookings are not appearing in Cal.com

Open AFI > Log and find the entry for your submission. The log shows the exact request and Cal.com’s response. A common cause is an invalid Start value. It must be a future time in ISO 8601 UTC format, and it must fall inside the event type’s availability.

A required booking question is missing

If the event type has required custom questions, Cal.com rejects bookings that leave them blank. Reopen the integration, make sure the [Question] fields are mapped, and save again.

Related Docs