Partners Support Log In
Frank Hagan


    Back to Top

    Integrating with Calendly via Zapier


    Applies to: ONTRAPORT Plus and above.

    Calendly is a popular scheduling application that ONTRAPORT uses to schedule demo and client success appointments. The integration uses Zapier and Calendly to add or update a Contact Record in ONTRAPORT with the date and time of an appointment.

    Getting Started

    1. Connect your ONTRAPORT account with Zapier following their instructions.
    2. Connect your Calendly account with Zapier following their instructions.
    3. Obtain the Calendly embed code and copy it to a text file for use later. Click your account name in the upper right and select Share Your Link.

      Calendly share your link
    4. Click the Embed on Your Website option.

      embed code
    5. Copy the Embed Code by clicking the Copy Code link. Paste the code into a text file. We will modify this code slightly when we embed it into an ONTRApage Custom HTML block.

      copy inline embed code
    6. In ONTRAPORT create a custom date field. Navigate to Contacts > Settings > Field Editor and add a new field named "Calendly Appt Date". Be sure to make it a Date field.

      Calendly custom date field in ONTRAPORT
    7. Create another field in ONTRAPORT. Name the field "Calendly Appt Time" and make it a Text field in the Field Type drop down.

      Calendly custom text field for the time in ONTRAPORT
    8. If you plan on having more than one appointment possible in the Contact Record, add additional custom fields. Each additional appointment you allow for needs one date field and one text field.
    9. Remember to click the Save button at the top right of the Field Editor when done adding fields.

      save button
    10. Create an ONTRApage to use for your Calendly appointment calendar. Add a Custom HTML Block and paste the Calendly embed code into it. It will look something like this (hover over the image to enlarge):

      embed code

      We are going to modify this code so the appointment calendar is pre-filled with the Contact's name and email address. To do that, look for the data-url= portion of the code. It will look something like this:


      Add the text ?name=[First Name]%20[Last Name]&email=[Email] to the end of the data-url, but still inside the quotes. You can copy and paste that line above if you like. It should look like this:

      data-url="[First Name]%20[Last Name]&email=[Email]"

      This uses the merge fields for first name, last name and email address to prevent errors in registration.
    11. Continue designing your page. In this example, you can see the Calendly calendar doesn't render inside the ONTRApages editor in the Custom HTML block at the bottom but we can design a header, use merge fields for the new contact's first name, etc. This page will be used as the "Thank You" page after they opt in to have the session.

      calendly appointment page in ONTRApages editor
    12. Create another ONTRApage with an opt-in form on it. Name it "Calendly Opt In Page". Use at least the First Name, Last Name and Email fields, and make them all required. On the Smart Form Settings tab, select the appointment calendar page published in step 11 from the drop down box labeled "Use this landing page".

      Set appointment page as thank you page

      This is the method ONTRAPORT uses for setting appointments for demos and new client orientation appointments. The advantage is that the opt in form fields are forwarded to Calendly's appointment form; this eliminates the possibility of errors by the new contact in filling out the second form.
    13. Publish the "Calendly Opt In Page" and test it out! When someone fills out the opt in form on the page you just created in step 12 they are taken to the Calendly appointment page. ONTRAPORT has their contact information and does not need to have them enter it again. The Calendly sign up process can allow them to select the type of appointment, select a day, then a time, and finally confirm the appointment. All of this happens within the Custom HTML Block you added without refreshing the page.

      calendar displayed on thank you page

      The last step is for the contact to schedule the event. Because of the modification to the Calendly code done in step 10 the Contact's first name, last name and email address are pre-filled from the ONTRAPORT Contact Record.

      Calendly fields prefilled

    Use the Pre-Built Zapier Template

    These instructions will show how to connect your ONTRAPORT account to Calendly using a pre-built Zapier template. We will only need to make a few changes to the template.

    1. Login to Zapier, then navigate to the following URL:
    2. Click Create this Zap.
    3. Select Invitee Created, then click Continue.
    4. Select your Calendly account, then click Save + Continue. (If you haven't connected your Calendly account to Zapier yet, follow the instructions found here)
    5. The next screen will talk about sample data. Click Continue, then click Load in Samples.
    6. At this point you'll need to have at least one example Contact in your Calendly account in order for Zapier to be able to test the connection. If you have at least one example Contact, you'll want to select Invitee A, then click Continue.

      pick a sample invitee in Calendly
    7. Select Date/Time (Legacy), then click Continue.
    8. Click the drop-down option under Transform, then choose Format. This allows the date taken from Calendly to be formatted correctly so ONTRAPORT can accept it in a readable version.

      pre-configured Zap date formatting step
    9. Click Continue.
    10. In order to ensure the formatting is correct, click Send Test to Formatter by Zapier. Once the test is complete, click Continue.
    11. Select Date/Time (Legacy), then click Continue
    12. In the field Custom Value for To format, change the formatting to hh:mm A rather than HH:mm A. This will ensure the time will not be formatted into a 24 hour format. step three
    13. On the next step, click Show Advanced Options. You'll see a field called Input. Click into this field and backspace in order to delete what says "Step 1 No Data".

      enter and press backspace in the advanced input field to erase the data
    14. Click the plus sign next to the field, then select Invitee Created. Another drop-down will appear, then scroll down and select Event Start Time.

      edit the event start time
    15. Next we need to select the correct timezones to be converted. You'll see two fields, To Timezone and From Timezone. Select your local timezone in both of these fields.

      format the time zone
    16. After you've selected your timezones, click Continue.
    17. In order to ensure the formatting is correct, click Send Test to Formatter by Zapier. Once the test is complete, click Continue.
    18. On the next page, select Creates or Updates Contact, then click Continue.
    19. Select your ONTRAPORT account, then click Save + Continue. (If you haven't connected your ONTRAPORT account to Zapier yet, follow the instructions found here)
    20. Next to the email field, click the plus symbol to add a value into the field. Select Invitee Created, then choose Event Start Time.

      Edit the invitee created step
    21. Click Show Advanced options then scroll down until you find the custom fields you created in ONTRAPORT. They should be called something like Calendly Date and Calendly Appt Time.
    22. Click the plus symbol next to Calendly Date, then select Date/Time (Legacy) from step 2. Choose Event Start Time.

      Edit event time - legacy - step
    23. Next, click the plus symbol next to Calendly Appt Time, then select Date/Time (Legacy) from step 3. Choose Event Start Time.

      continue editing the event time
    24. Click Continue, then click Sent Test to ONTRAPORT.
    25. If the test was successful, click Finish and toggle the Zap on.
    26. Lastly, you'll want to test and make sure the Zap is working correctly. Navigate to the ONTRApage with the opt-in form on it, fill it out and schedule an appointment on the next page. Once you've done so, your Contact should be added into ONTRAPORT and the date and time should be populated successfully.

    Using the Calendly Date Field

    ONTRAPORT can act when the custom Calendly Appt Date field is updated. You can notify yourself or a team member with an email or SMS message via a Campaign.

    Using the HTML Email Editor for Notification

    Design an email with merge fields for the contact's first name, last name, email address and the contents of the Calendly Appt Date and Appt Time fields to send to yourself or a team member using a "Notify" element in the Campaign:

    email contact owner

    Using ONTRAMail for Notification

    You can also create an ONTRAmail message with the Contact's Calendly Date Merge Fields as well. After creating a new ONTRAmail Message, you'd add a Text block, then select the Merge Field drop-down and add the contact's first name, last name, email and Calendly Appt Date and Appt Time fields:

    ONTRAmail Merge Field

    Creating the Notification Campaign

    You can create a Campaign to notify a team member via email or SMS that someone has scheduled an appointment. You can also automatically send Contacts a reminder email before their appointment. Create a Campaign with a Trigger of "Field is Updated"  and select the "Calendly Date" field. Set the trigger to act on anyone in the account, and to add them again to the element when it is activated. Add Elements after the trigger to notify someone with an email or  SMS. You can add other automation, such as sending an email to the contact one day before the appointment.

    notify someone with an email

    Other Use Cases

    • Calendly seamlessly aggregates your entire team's individual calendars into a single appointment calendar for your new customer to use, selecting the available representative in the background. How can you automate creating a Task for team member Bob Smith instead of Bill Smiley?
      1. In ONTRAPORT, create a Tag for each of your team members using their name.
      2. Add a step right after the first step of the Zap. Choose Filter by Zapier as the application.
      3. The action is Only continue if ....
      4. Use the drop down field in the first box to select Event Assigned To.
      5. For the second drop down box, choose (Text) Exactly Matches.
      6. Type in the team member's name exactly as it appears in Calendly.

        filter by team member name
      7. Go to the last step, Create or Update a Contact in ONTRAPORT and set the Tag field to the team member's name.

        add tag for team member
      8. Use a global Rule triggering on that tag being added to notify the team member they have an appointment using an Email or Task.
      9. Create a separate Zap for each team member. The filter in the second step will ensure that only the Zap for the correct team member will update the Contact Record.


    Q. Can I trigger an SMS or email 30 minutes before the "Calendly Appt Time" field?

    A. No, the Calendly Appt Time field in ONTRAPORT is a text field. You could trigger an SMS or email to go out in a Campaign with a Wait Element based upon a Contact's Calendly Appt Date, and time it for the AM before any of your appointments. Use the merge field for the time field, e.g. - [Calendly Appt Time], to put the time in the SMS or email message as text.

    Q. Does ONTRAPORT really use ONTRAPORT to run its business and Calendly to schedule appointments?

    A. Yes, ONTRAPORT is the software we use to run our business, and we use a slightly more complex version of this integration to schedule appointments with our clients.

    Q. My test Contact has a blank Date Field in ONTRAPORT, what gives?

    A. If you're using the pre-built Zap template, you want to make sure that the input field in both steps two and three have the field Event Start Time chosen from step one.

    Q. My Contact's Calendly Appt Time is coming through as the wrong time?

    A. If the Contact's appointment time is coming through as the correct format but the wrong time, the timezone is more than likely set wrong in the Zap Template. In step two, make sure both the "To Timezone" and "From Timezone" are both set to UTC. In step three, make sure the bot the "To Timezone" and "From Timezone" are both set to your local timezone.

    Q. My Contact's Calendly Appt Time field is coming through in Military Time (17:00)?

    A. In step three of the Zap template, make sure the field Custom Value for To Format is formatted as hh:mm A.

    Articles in this section

    Created - Updated
    Have more questions? Submit a request


    • Avatar
      Brad Dobson

      Just wanted to say thanks for this. I've added a setup to have it also schedule a Zoom meeting, get the Zoom meeting link back into Ontraport, and embed that in the followup messages to the Contact. We're using this for podcast interview schedules, next up will be for client coaching sessions.

    • Avatar
      Frank Hagan

      Thanks Brad! You've shown that It is a technique that can be used to integrate virtually any calendaring application that is supported by Zapier, but it does take some work.