A free online booking system you can actually embed
Take bookings on your website, in your app, or through an AI agent. Calendar sync, Stripe payments, your brand only.
Why teams switch to Astrocal
Most booking tools are built for end-users sharing a link. Astrocal is built for teams who need scheduling to behave like infrastructure: configurable via API, embeddable anywhere, and yours to brand completely.
No more double-bookings
Real-time free/busy checks against Google, Outlook, and CalDAV calendars run on every slot request. If your calendar's blocked, that slot disappears automatically.
Live in under 5 minutes
One OAuth screen connects your calendar. One script tag embeds the widget. First booking arrives before you've finished your coffee.
Your brand. Zero of ours.
CSS custom properties give you full control over colours, fonts, and layout. On paid plans, Astrocal branding is gone completely.
Payments at the point of booking
Stripe Connect built in. Collect a deposit or full payment when someone books, not when they show up. Automatic refunds for cancellations 24+ hours out.
Webhooks on every event
Booking created, cancelled, rescheduled: your stack gets notified instantly. HMAC-signed, with automatic retry logic.
AI-agent ready
The @astrocal/mcp-server package lets Claude, Cursor, and any MCP-compatible AI agent check availability and create bookings directly.
MCP docs →Up and running in three steps
Connect your calendar
One-click OAuth for Google, Outlook, or CalDAV. Astrocal reads your free/busy data so the right slots are always available, with no manual blocking and no stale schedules.
Define your availability
Set your weekly hours, buffer times between meetings, and booking window. Works for one host or fifty, with round-robin assignment included.
Embed, share, or integrate
Use the booking link, embed the widget on your site, call the REST API, or let an AI agent handle it. Every booking fires a webhook and creates a calendar event automatically.
See it live
--astrocal-primary: #2563eb;
--astrocal-heading: #2563eb;
--astrocal-radius: 8px;
--astrocal-font: 'Inter', sans-serif;...and background, text, borders, shadows, and more
Every way to integrate
<!-- Add to any page -->
<script src="https://cdn.astrocal.dev/widget/v1/astrocal.js"></script>
<div id="booking"></div>
<script>
Astrocal.open({
eventTypeId: 'YOUR-EVENT-TYPE-ID',
target: '#booking'
})
</script>Pricing that scales with bookings, not seats
Start free with 10 bookings a month, no credit card. Paid plans from $12, and team members never cost extra.
Free
For getting started
- 10 bookings/month
- 1 calendar connection
- Calendar sync
- Email notifications
- 30 req/min API rate
Launch
For your first customers
- 50 bookings/month
- 3 calendar connections
- Custom branding
- Everything in Free
- 60 req/min API rate
Grow
Most PopularFor busy diaries
- 500 bookings/month
- 20 calendar connections
- Priority support
- Everything in Launch
- 500 req/min API rate
Scale
For high volume
- 5,000 bookings/month
- 100 calendar connections
- Dedicated support
- Everything in Grow
- 2,000 req/min API rate
No per-seat pricing. Ever. See full pricing →
Frequently asked questions
Related reading
Booking Software for Small Businesses
Set up services once, take bookings and payments, and never pay per seat as you grow.
Read moreCore ProductFree Booking Software
10 bookings a month, full API access, calendar sync, and the widget. No credit card.
Read moreBlogWhat Is an Online Booking System?
Start here if you're new to the category entirely.
Read more