@astrocal/mcp-server
Enables AI agents to schedule meetings via Astrocal's scheduling API, including checking availability, booking, canceling, rescheduling, and managing waitlists through natural conversation.
README
@astrocal/mcp-server
Give your AI agents the power to schedule meetings. The official Model Context Protocol server for Astrocal — the API-first scheduling platform built for developers and AI agents.
Works with Claude Desktop, Cursor, Windsurf, and any MCP-compatible client. Your AI assistant can check availability, book meetings, cancel, reschedule, and manage waitlists — all through natural conversation.
Get your API key | Documentation | API Reference
Why Astrocal for AI Agents?
- Purpose-built for AI — Not a Calendly bolt-on. Astrocal's scheduling API was designed from day one for programmatic and AI-agent access.
- 8 tools, zero config — Check availability, book, cancel, reschedule, list event types, manage waitlists. Everything an agent needs.
- Calendar sync built in — Connects to Google Calendar, Microsoft 365, and CalDAV. Your agent books against real availability.
- Payments included — Stripe Connect integration means your agent can book paid consultations, not just free meetings.
- Sandbox mode — Test with
ac_test_*keys. No emails sent, no calendar events created, no charges made.
Quick Start
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"astrocal": {
"command": "npx",
"args": ["-y", "@astrocal/mcp-server"],
"env": {
"ASTROCAL_API_KEY": "ac_live_xxxxxxxxxxxxx"
}
}
}
}
Restart Claude Desktop and the scheduling tools will be available immediately.
Other MCP Clients
Install globally:
npm install -g @astrocal/mcp-server
Run:
ASTROCAL_API_KEY=ac_live_xxx astrocal-mcp
Environment Variables
| Variable | Required | Description |
|---|---|---|
ASTROCAL_API_KEY |
Yes | Your Astrocal API key (get one free) |
ASTROCAL_API_URL |
No | API base URL (default: https://api.astrocal.dev) |
ASTROCAL_DEFAULT_EVENT_TYPE_ID |
No | Default event type ID — your agent won't need to specify it on every call |
Available Tools
check_availability
Check available time slots for booking.
event_type_id(string, optional) — Event type to check. Optional ifASTROCAL_DEFAULT_EVENT_TYPE_IDis set.start_date(string, required) — Start date in ISO 8601 format (e.g.,2026-03-15)end_date(string, required) — End date in ISO 8601 format (e.g.,2026-03-22)timezone(string, optional) — IANA timezone (e.g.,America/New_York). Defaults to UTC.
create_booking
Book a meeting at a specific time.
event_type_id(string, optional) — Event type to book. Optional if default is set.start_time(string, required) — ISO 8601 datetime (e.g.,2026-03-15T14:00:00Z)invitee_name(string, required) — Full name of the person bookinginvitee_email(string, required) — Email address for calendar invitationinvitee_timezone(string, optional) — IANA timezone. Defaults to UTC.notes(string, optional) — Meeting notes (max 1000 characters)
cancel_booking
Cancel an existing booking. The invitee receives a cancellation email automatically.
booking_id(string, required) — ID of the booking to cancelreason(string, optional) — Cancellation reason (max 500 characters)
reschedule_booking
Reschedule a booking to a new time. Check availability first.
booking_id(string, required) — ID of the booking to reschedulenew_start_time(string, required) — New time in ISO 8601 formatreason(string, optional) — Reason for rescheduling (max 500 characters)
list_bookings
List bookings with optional filters.
status(string, optional) — Filter:confirmed,cancelled, orpending_paymentlimit(number, optional) — Max results (default: 10, max: 100)event_type_id(string, optional) — Filter by event type
list_event_types
List available event types that can be booked. No input required.
join_waitlist
Join the waitlist when all slots are full.
event_type_id(string, required) — Event type to join the waitlist forname(string, required) — Full nameemail(string, required) — Email addresspreferred_times(string, optional) — Preferred time ranges or notes
check_waitlist
Check your position on a waitlist.
waitlist_entry_id(string, required) — Waitlist entry ID returned fromjoin_waitlist
Example Conversation
User: "What meetings can I book?"
Agent: calls
list_event_types— "You have two event types: a 30-minute consultation (free) and a 1-hour strategy session ($50)."User: "Check if next Tuesday at 2pm is free for a consultation"
Agent: calls
check_availability— "Tuesday at 2pm is available."User: "Book it for jane@example.com"
Agent: calls
create_booking— "Done! Meeting confirmed for Tuesday, March 17 at 2:00 PM UTC with Jane. A calendar invitation has been sent."User: "Actually, move it to 3pm"
Agent: calls
reschedule_booking— "Rescheduled to 3:00 PM. Jane has been notified."
Part of the Astrocal Platform
This MCP server is one of several ways to integrate with Astrocal:
- REST API — Full scheduling API with OpenAPI 3.1 spec
- React SDK (
@astrocal/react) — Typed hooks, provider, and booking widget for React apps - Embeddable Widget (
@astrocal/widget) — Drop-in booking UI for any website - Dashboard — Manage event types, bookings, team members, and billing
- Webhooks — Real-time notifications for booking events
Create a free account to get started.
Links
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
E2B
Using MCP to run code via e2b.