Learn how to connect Bolt.new AI with Calendly in 2026 using our simple step-by-step guide to streamline bookings and automation.

Book a call with an Expert
Starting a new venture? Need to upgrade your web app? RapidDev builds application with your growth in mind.
Bolt.new does not have any built‑in “Calendly integration button.” You integrate Calendly the same way you would in any normal full‑stack app: you call Calendly’s public REST API, authenticate with a Calendly Personal Access Token or OAuth, and optionally receive data from Calendly using their webhooks. Inside bolt.new, you drop that token into environment variables and write fetch‑based API calls in server‑side code. That’s the entire mechanics — nothing magical, just standard HTTP.
You will use three components:
Once these are set up, your bolt.new app can list events, create scheduling links, read invitee data, or handle “booking completed” notifications from Calendly.
The point is to keep Calendly secrets safe and do all API calls on the server, not the browser.
// Example: server route in bolt.new to fetch Calendly scheduled events
import { Hono } from 'hono' // Bolt’s default server framework
import { env } from 'hono/adapter'
const app = new Hono()
app.get('/api/calendly/events', async (c) => {
const { CALENDLY_API_TOKEN } = env(c)
const response = await fetch('https://api.calendly.com/scheduled_events', {
method: 'GET',
headers: {
'Authorization': `Bearer ${CALENDLY_API_TOKEN}`,
'Content-Type': 'application/json'
}
})
const data = await response.json()
return c.json(data)
})
export default app
This is a direct, real call to Calendly’s /scheduled\_events endpoint.
/api/calendly/events.
The client never sees the token — only the backend uses it.
If you want Calendly to notify your bolt.new backend when someone books, reschedules, or cancels, you must create a webhook subscription.
// Calendly webhook receiver
app.post('/webhooks/calendly', async (c) => {
const body = await c.req.json()
// Verify the webhook signature if you enabled signing
// For now, just log the event:
console.log('Calendly webhook:', body)
return c.json({ received: true })
})
// Example: create a Calendly webhook subscription from bolt.new server
app.post('/api/calendly/register-webhook', async (c) => {
const { CALENDLY_API_TOKEN, PUBLIC_URL } = env(c)
const response = await fetch('https://api.calendly.com/webhook_subscriptions', {
method: 'POST',
headers: {
'Authorization': `Bearer ${CALENDLY_API_TOKEN}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
url: `${PUBLIC_URL}/webhooks/calendly`, // Your bolt.new route
events: ['invitee.created', 'invitee.canceled'],
organization: 'https://api.calendly.com/organizations/YOUR_ORG_ID' // Replace with your real org ID
})
})
const data = await response.json()
return c.json(data)
})
That’s the full, real path: Calendly + bolt.new = a normal backend integration using REST APIs, bearer tokens, and optional webhooks. Nothing proprietary or magical — just clean, secure HTTP with environment variables and server routes.
When it comes to serving you, we sweat the little things. That’s why our work makes a big impact.