Appointment booking β Calendly and Google Calendar
Let customers book appointments directly from the chat using Calendly, Google Calendar, or any scheduling tool.
Updated 2 Mar 2026
How it works
Pivra embeds a booking link inside the chat conversation. When a visitor says something like "I'd like to book an appointment", the chatbot responds with your scheduling link. You can also receive webhook notifications when a booking is confirmed or cancelled, and those events can trigger automations.
Supported providers: Calendly, Google Calendar appointment scheduling, Cal.com, Acuity, and any URL-based booking tool.
Step 1 β Enable booking on your chatbot
- Go to Settings β General on your chatbot
- Find the Appointment booking section
- Toggle on Enable booking
- Paste your booking URL (e.g.
https://calendly.com/your-name/30min) - Optionally set a booking prompt β the text the bot uses to offer the link (e.g. "Click here to book a time with us:")
- Save
The chatbot now offers your booking link when visitors ask about appointments, meetings, or booking.
Step 2 β Test it locally
Start your local stack (pnpm dev), then open a test chat on your chatbot's preview page:
- Type something like: "I'd like to book a meeting"
- The bot should respond with your booking URL as a clickable link
- Clicking the link opens your Calendly/Google Calendar page
If the booking link doesn't appear, check that Enable booking is on and the URL is saved correctly.
Step 3 β Set up Calendly webhooks (optional)
Webhooks let Pivra receive events when someone books or cancels, so you can trigger automations (email alerts, CRM updates, etc.).
In Calendly
- Go to Calendly Developer Portal β Webhooks
- Create a new webhook subscription
- Set the URL to:
https://your-api-domain.com/api/booking/webhooks/calendly - Select events:
invitee.created,invitee.canceled - Copy the signing key Calendly generates
In Pivra Dashboard β Booking
- Go to Dashboard β Booking (under Integrations in the sidebar)
- Click New booking integration
- Fill in:
- Name β e.g. "Calendly β 30 min consult"
- Provider β Calendly
- Booking URL β your Calendly link
- Webhook secret β the signing key from step above
- Save
Verify the webhook is working
In the Booking dashboard, click the integration row to expand it. You'll see the Webhook URL to paste into Calendly. After your next booking, the status shows Confirmed and the booking appears in the list.
Step 4 β Google Calendar appointment scheduling
Google Calendar's appointment scheduling feature generates a booking URL like:
https://calendar.google.com/calendar/appointments/schedules/...
Add this URL exactly as your Booking URL in step 1 β no webhook setup required. Google Calendar doesn't send webhook notifications to third-party services, so you won't receive booking confirmation events in Pivra, but the booking link itself works perfectly.
Testing the full flow end-to-end
- Paste your Calendly link into a test booking integration in the Booking dashboard
- Send a Calendly test webhook from the Calendly developer portal (Webhooks β Send test)
- Check the Pivra Booking dashboard β the test booking should appear with status Confirmed
- If you have an Action set up for
booking.confirmed, check the Actions β Logs to verify the event fired
Troubleshooting
| Issue | Fix |
|---|---|
| Bot doesn't show booking link | Check Enable booking is on and URL is saved |
| Webhook not received | Verify the URL in Calendly matches exactly; check Calendly developer portal for delivery errors |
| Signature verification failed | Re-copy the signing key from Calendly and update the Webhook secret in Pivra |
| Booking shows as "pending" | The webhook was received but not yet processed β refresh in 30 seconds |
Was this helpful?
If you have questions or suggestions, email us at support@pivra.ai .