Meetings
Calendly / Cal.com scheduling, booking links, and the meetings timeline.
Meetings are booked calls treated as a first-class part of your pipeline. When a prospect books a call with you, that call shows up in Warmbly automatically, lands on the contact's timeline, and can trigger automations like a Slack ping or a CRM update. You can also log calls yourself, without any external scheduler.
There are two ways a meeting gets into Warmbly:
- Auto: a prospect self-books a time through a Calendly or Cal.com link you connected. The booking, and any later reschedule or cancellation, is captured over that provider's webhook.
- Manual: you schedule or log a call yourself with the "New meeting" button. It is created instantly inside Warmbly with no redirect to an external site.
Either way, the meeting appears on the Meetings page and on the contact's timeline, live, without a refresh.
The Meetings page
The Meetings page lists every booked or logged call. Open it from the CRM section of the dashboard. It updates in real time: when a call is booked, rescheduled, or canceled, the list and the headline numbers change on their own.
Headline numbers
Four counts sit at the top of the page, computed across your whole set of meetings (not just the rows currently loaded):
- Upcoming: calls scheduled for a future time.
- Today: calls scheduled for today.
- Total booked: every meeting on record.
- Canceled: meetings that have been canceled.
Filtering and search
Use the timeframe tabs to narrow the list:
- Upcoming: future calls only.
- Past: calls that have already happened.
- All: everything.
The search box matches a contact's name, email, or the event name. The list loads more rows as you scroll, so large pipelines stay fast.
Reading a row
Each row shows when the call is scheduled, who it is with (the contact name, falling back to the invitee name or email), the meeting name and location, where it came from (Manual, Calendly, or Cal.com), and a status:
| Status | Meaning |
|---|---|
| Booked | The call has been scheduled. |
| Rescheduled | The invitee moved the call to a new time. |
| Canceled | The call was canceled. |
| Completed | The call has taken place. |
| No-show | The invitee did not attend. |
Row actions
Depending on the meeting, a row offers:
- Add to your calendar opens a Google Calendar template or downloads an
.icsfile you can import into any calendar app. This is built locally and needs no calendar connection. - Join call opens the meeting link (for example a Google Meet or Zoom URL) in a new tab.
- Reschedule and Cancel open the provider's own reschedule or cancel page for calls booked through Calendly or Cal.com.
- Delete removes a manually created meeting. This only removes it from Warmbly.
Reschedule and cancel happen on the provider
For auto-booked calls, the Reschedule and Cancel buttons hand off to Calendly or Cal.com. Warmbly does not move or cancel the call itself; it reflects the change once the provider sends the webhook back.
Logging a call manually
Click New meeting to log a call without an external scheduler. The dialog asks for:
- Title: for example "Discovery call". Defaults to "Call" if left blank.
- Contact name and Contact email. You need at least one of the two.
- When: date and time. Defaults to the next hour.
- Duration in minutes (
5to480, default30). - Location (optional) for example an office or phone.
- Meeting link (optional) for example a Google Meet URL.
Warmbly links the meeting to a contact by matching the email you enter against your contacts. When you open the dialog from a place where a contact is already in view, the meeting is locked to that exact contact so attribution is precise.
Connecting Calendly or Cal.com
Connect a scheduling provider so calls prospects book land in Warmbly automatically. Both providers connect the same way, from the Integrations page (reachable from the Meetings page via the Calendars action).
Connecting is webhook-based, not OAuth:
- Add the Calendly or Cal.com integration. Warmbly mints an inbound webhook URL for you.
- Copy that URL into the provider's webhook settings:
- Calendly: subscribe to
invitee.createdandinvitee.canceled. - Cal.com: subscribe to
BOOKING_CREATED,BOOKING_RESCHEDULED, andBOOKING_CANCELLED.
- Calendly: subscribe to
- That is it. The connection shows as connected as soon as the inbound URL exists.
The inbound URL is a shared secret
The minted URL contains a long random secret that authenticates incoming bookings, so treat it like a credential. If it is ever exposed, you can rotate it from the connection settings, which generates a fresh URL you then re-paste into the provider.
Lifecycle events
Once connected, Warmbly turns each provider event into a meeting state change:
| What the prospect does | Warmbly status | Lifecycle event |
|---|---|---|
| Books a new time | Booked | booked |
| Moves the call to a new time | Rescheduled | rescheduled |
| Cancels the call | Canceled | canceled |
Calendly models a reschedule as a cancel of the old slot plus a new booking. Warmbly understands this and shows it as a single Rescheduled event rather than a separate cancellation, so your timeline stays clean.
Inbound bookings are idempotent: if a provider re-delivers the same event, Warmbly updates the existing meeting instead of creating a duplicate.
How a booking is matched to a contact
When a booking arrives, Warmbly attributes it to the right contact in this order:
- By contact hint: if the booking link carried a contact id (see booking links below), Warmbly uses it, after confirming that contact belongs to your workspace. This survives the prospect booking with a different email.
- By email: otherwise it matches the invitee's email against your contacts.
If neither resolves, the meeting still appears on the Meetings page; it just is not tied to a contact yet.
The contact timeline
Every meeting also appears on the contact's activity timeline, alongside emails, replies, and notes. You can filter the timeline down to Meetings to see only calls.
Each meeting entry shows what happened (booked, rescheduled, or canceled), when the call is set for, which calendar it came from, and a one-click Join link when a meeting URL is available and the call is not canceled. Canceled meetings show the cancellation reason when the provider includes one.
This pairs well with the Unibox and Contacts and CRM views: a reply and the call it produced sit on the same record.
Booking links and "Book a call"
A booking link is your public scheduling page (your Calendly or Cal.com URL). Once you save it on the connection, Warmbly surfaces contextual Book a call and Booking link buttons wherever a contact is in view, so you can offer a time without leaving the dashboard.
Set it under the connection's Booking link settings: paste your full https:// scheduling URL, for example https://calendly.com/you/intro. After that:
- A Book a call / Booking link button appears on contact detail and Unibox threads. It opens your scheduling page in a new tab, prefilled with the contact's email and name. If you have several scheduling links connected, it offers a picker.
- A Booking link button in the Unibox reply composer drops the link, prefilled for the recipient, straight into your reply text.
When you book from a place tied to a specific contact, Warmbly embeds that contact's id in the link (as the utm_content parameter). Both providers echo it back in the booking webhook, which is what lets a self-booked call attribute to the exact contact even if they book under a different email address.
No saved link, no button
The Book a call and Booking link buttons only render when you have a connected scheduling provider with a saved booking link, so they never show up as dead buttons.
Automations when a meeting is booked
Meeting events can drive Automations. Calendly and Cal.com both emit meeting events you can wire to actions, and other connected tools can react to them too:
- Meeting booked, rescheduled, and canceled are available as notification triggers, so Slack, Discord, Zapier, Make, and n8n can ping your team the moment a call is set, moved, or dropped.
- Meeting booked and canceled are available as CRM triggers, so HubSpot, Salesforce, Pipedrive, and Close can create or update a record when a call is booked.
For example, you can have Warmbly post "Meeting booked" to a Slack channel and upsert the contact into your CRM, automatically, every time a prospect books a call. See Notifications for routing alerts to people, and Automations for building the flows.