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
See it live. This is a real booking widget.
--astrocal-primary: #2563ebEvery way to integrate
<!-- Add to any page -->
<script src="https://cdn.astrocal.dev/widget.js"></script>
<div id="booking"></div>
<script>
Astrocal.open({
eventTypeId: 'evt_abc123',
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 prototyping
- 10 bookings/month
- 1 calendar connection
- 30 req/min API rate
- Calendar sync
- Email notifications
Launch
For going live
- 50 bookings/month
- 3 calendar connections
- 60 req/min API rate
- Everything in Free
- Custom branding
Grow
Most PopularFor growing products
- 500 bookings/month
- 20 calendar connections
- 500 req/min API rate
- Everything in Launch
- Priority support
Scale
For high volume
- 5,000 bookings/month
- 100 calendar connections
- 2,000 req/min API rate
- Everything in Grow
- Dedicated support
No per-seat pricing. Ever. See full pricing โ