Integration Guide

How to Connect InstantDM with Calendly (Step-by-Step Guide)

Learn how to send Calendly booking links via Instagram DMs and get notified when Instagram leads book appointments.

Meta Business Partner
30,000+ creators
$9.99/mo flat

Calendly makes scheduling meetings effortless. Connecting InstantDM to Calendly lets you send booking links directly in Instagram DMs and get notified when leads schedule appointments - turning Instagram conversations into booked calls.


Why Connect InstantDM to Calendly?

  • Frictionless booking - one tap from DM to scheduled meeting
  • No back-and-forth - Calendly handles availability and time zones
  • Automatic confirmations - Calendly sends email reminders
  • Two-way sync - get notified when an Instagram lead books, and DM them a confirmation

Common Use Cases

  • Send a booking link when someone asks about consulting or coaching
  • Auto-send a Calendly link after a lead capture flow completes
  • Get notified via DM when an Instagram lead books a call
  • Include booking links as buttons in DM flows
  • Track which Instagram campaigns drive the most bookings

What You'll Need

Requirement Details
InstantDM account Trendsetter, Trendsetter Pro, or any Multi plan
Calendly account Free or paid plan
InstantDM API key Found at Settings → API in your InstantDM dashboard

Method 1: Static Booking Link in DM Flows (Simplest)

Step 1: Get Your Calendly Link

  1. Log in to calendly.com.
  2. Copy your event link (e.g., https://calendly.com/yourname/30min).

Step 2: Add to InstantDM Flow

In the Flow Editor, add a Button node:

  • Button text: "Book a Call"
  • URL: Your Calendly link

Or send via API:

{
  "action": "send_message",
  "type": "buttons",
  "recipient_id": "INSTAGRAM_USER_ID",
  "message": "I'd love to chat! Pick a time that works for you:",
  "buttons": [
    { "title": "Book a 30-Min Call", "url": "https://calendly.com/yourname/30min" }
  ]
}

Pre-Fill Customer Info

Append query parameters to pre-fill the booking form:

https://calendly.com/yourname/30min?name=John+Doe&email=john@example.com

In your webhook receiver:

const name = encodeURIComponent(data.response_variables?.full_name || '');
const email = encodeURIComponent(data.response_variables?.email || '');
const calendlyUrl = `https://calendly.com/yourname/30min?name=${name}&email=${email}`;

Method 2: Get Notified When a Lead Books

Via Calendly Webhooks

  1. In Calendly, go to Integrations → Webhooks (requires Calendly Professional plan).
  2. Create a webhook subscription for invitee.created events.
  3. Point it at your server.

Webhook Receiver

app.post('/calendly-webhook', async (req, res) => {
  const { event, payload } = req.body;
  
  if (event !== 'invitee.created') {
    return res.status(200).json({ status: 'skipped' });
  }
  
  const invitee = payload.invitee;
  const eventDetails = payload.event;
  
  // Check if this came from an Instagram lead (by email match)
  // Look up the Instagram user ID from your database
  const instagramUserId = await lookupInstagramUser(invitee.email);
  
  if (instagramUserId) {
    await fetch('https://api.instantdm.com/api-webhook', {
      method: 'POST',
      headers: {
        'Authorization': `Bearer ${process.env.INSTANTDM_API_KEY}`,
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({
        action: 'send_message',
        type: 'text',
        recipient_id: instagramUserId,
        message: `✅ Your call is booked for ${new Date(eventDetails.start_time).toLocaleString()}! Looking forward to chatting with you.`,
      }),
    });
  }
  
  res.status(200).json({ status: 'processed' });
});

Via Make.com

  1. Set up an InstantDM webhook scenario per the Make.com guide.
  2. After the flow_completed filter, add an HTTP Request module to send the Calendly link via InstantDM API.
  3. For booking notifications: create a separate scenario with a Calendly → Watch Events trigger, then send a DM via InstantDM API.

Troubleshooting

Issue Solution
Calendly link not opening in DM Ensure the URL is a full HTTPS link. Instagram opens URLs in an in-app browser.
Pre-fill not working Check URL encoding. Spaces should be + or %20.
Webhook not firing Calendly webhooks require a Professional plan. Verify the subscription is active.
Can't match booking to Instagram lead Store the email-to-Instagram mapping when the lead is captured, then look it up when the booking webhook fires.

Frequently Asked Questions

Do I need Calendly Pro for this?

The basic integration (sending booking links in DMs) works with Calendly's free plan. Webhooks for booking notifications require Calendly Professional ($10/month).

Can I use Calendly with Make.com or Zapier?

Yes. Both platforms have native Calendly integrations. Use them to trigger actions when bookings are created, cancelled, or rescheduled.

Can I embed Calendly in the DM?

No - Instagram DMs don't support embedded web content. You send a link that opens in the browser. Using a button makes it feel seamless.


What's Next

Ready to Automate Your Instagram DMs?

Join 30,000+ creators and brands using InstantDM today.

Start Your Free Trial

No credit card required. Setup in under 15 minutes.