Appointment scheduling software, itemized
Calendar sync, payments, webhooks, whitelabel embedding, and native MCP support. All behind a single REST API.
Scheduling that just works
Connect your calendar
One-click OAuth for Google, Outlook, or CalDAV. Free/busy checks run on every slot request. If your calendar is blocked, that slot disappears automatically.
Configure your rules
Weekly hours, buffer times, minimum notice, rolling booking windows, and time zone handling. All via API or dashboard.
Never double-book again
A PostgreSQL EXCLUDE constraint prevents overlapping bookings at the database level. Cancellations and reschedules update everything automatically.
Built for developers
Full REST API
OpenAPI 3.1 spec covering event types, bookings, availability, and webhooks. Snake_case JSON, cursor pagination, predictable errors.
API reference โWebhooks on every event
Booking created, cancelled, rescheduled: your stack gets notified instantly. HMAC-signed payloads with automatic retry on failure.
Webhook docs โSandbox mode
Test API keys with isolated data. Run your CI pipeline against real endpoints without touching production bookings.
Let AI agents book meetings.
Astrocal ships an MCP server out of the box. Any AI agent that speaks MCP can check availability, create bookings, and manage schedules. No custom integration code required.
- Claude
- GPT-4
- Any MCP-compatible agent
# Install and run the MCP server
npx @astrocal/mcp-server
# Agent calls available via MCP
> list_event_types
> get_available_slots slug="discovery" date="2025-03-20"
> create_booking slug="discovery" start="2025-03-20T10:00:00Z"
name="Jane Doe" email="jane@example.com"<!-- 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>Embed anywhere, brand completely
See it live. This is a real booking widget.
--astrocal-primary: #2563ebDrop in the widget
Script tag, npm package, or React component. Renders in a Shadow DOM container, not an iframe, so your CSS never breaks it and theming flows through CSS custom properties.
Make it yours
CSS custom properties give you full control over colours, fonts, and layout. On paid plans, all Astrocal branding is removed.
Share booking links
Hosted pages that work on any device with automatic time zone detection. Or skip the widget entirely and build your own UI on the API.
Payments and notifications
Stripe payments at booking
Collect deposits or full payment when someone books. Stripe Connect with 135+ currency support built in.
Transactional email
Confirmation, reminder, and cancellation emails with ICS calendar attachments. Sent automatically, no integration needed.
Automatic refunds
Cancellations 24+ hours before the start time are refunded automatically. No manual Stripe dashboard work.
Team scheduling
Round-robin assignment across team members with per-member calendar connections. No per-seat pricing, add your whole team.
Platform and security
Row-level security
PostgreSQL-enforced tenant isolation. Every query runs scoped to your organisation, not filtered in application code. Enforced at the database.
Usage dashboard
Monitor API calls, booking volume, and rate limit consumption from the dashboard. Know exactly where you stand on your plan.
Rate limiting
Per-minute and daily quotas protect your account and the platform. Fail-open design means a rate limiter hiccup never blocks your bookings.
Activity log
Every API call, dashboard action, and system event logged with actor, timestamp, and context. Full audit trail out of the box.
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 โ
Frequently asked questions
Ship scheduling this week
Free plan, full API, no credit card. Go from zero to your first API call in under five minutes.