_+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+__
_====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_
:_+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:_____
:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++
_+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+__
:_+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:_____
_====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_
+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....
_+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+__
_====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_
:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++
_+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+__
:_+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:_____
_====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_
+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....
_+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+__
_====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_
:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++
_+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+__
:_+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:_____
_====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_
+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....
_+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+__
_====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_
:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++
_+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+__
:_+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:_____
_====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_
+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....
_+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+__
_====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_
:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++
_+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+__
:_+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:__+===+_:_____
_====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_
+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....
_+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+___+===+__
_====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_:__====+_
:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++:::....+++
Open source · MIT License

Scheduling engine
for AI agents

Turn any OpenClaw bot into a 24/7 AI receptionist. Bookings, availability, cancellations — all through chat. SQLite. MCP-native. Zero dependencies.

$ npx clawhub install agentcal
GitHub
🏋️ Gym — AI Receptionist
live
TypeScript
MCP Tools
cURL
import { AgentCal } from "agentcal" const cal = new AgentCal() const slots = await cal.getSlots({ date: "2026-02-21", service: "strength-training" })
[ What we offer ]

Everything a service business needs

Built for gyms, salons, clinics, and studios. Not another meeting scheduler — a real booking engine.

MCP-Native

5 tools your AI agent understands natively. No REST wrapper, no API key. Direct engine access via stdio.

🗄

SQLite, Local-First

Your data stays on your machine. Zero latency. Zero external dependencies. Backup is a file copy.

🔒

Zero Double Bookings

Atomic transactions with BEGIN IMMEDIATE. Even with concurrent agents, every booking is conflict-free.

👥

1:1 & Group Classes

Same engine handles personal training and 30-person yoga. Capacity-aware slot generation.

🕐

Split Shifts & Breaks

Morning 5:30–9:30, evening 4:30–8:30, lunch break at 1 PM. Real-world schedules, not simple 9-to-5.

📋

Booking Policies

Min lead time, max advance days, cancellation windows. Enforced at the engine level, not just UI.

[ Admin Dashboard ]

Set up your business. No code needed.

Add services, providers, working hours, and view all bookings from a clean dashboard. Your agent handles the customers — you handle the business.

AgentCal Barbell Cartel
localhost:3000
AR
📅Calendar
📋Appointments
Services
👤Providers
🕐Working Hours
👥Customers
⚙️Settings
Feb 20, 2026 — Week View
+ New BookingToday
Mon 17
Tue 18
Wed 19
Thu 20
Fri 21
Sat 22
Sun 23
6:00 AM
Yoga · 6/20
Yoga · 8/20
Strength · Ram
Yoga · 5/20
7:00 AM
PT · Arun
PT · Meena
PT · Arun
PT · Karthik
PT · Meena
HIIT · 12/15
8:00 AM
PT · Priya
PT · Arun
PT · Jeeva
···
5:00 PM
Strength · 4/10
Strength · 7/10
PT · Divya
Strength · 3/10
6:00 PM
PT · Jeeva
PT · Arun
PT · Karthik
PT · Arun
PT · Priya
Break
Strength Training
CustomerArun B.
ProviderCoach Ram
Time6:00–7:00 PM
IDUBE75ZLK
Booked viaTelegram Bot
Confirmed

📋 Services & Classes

Create 1:1 services or group classes. Set duration, buffer time, and capacity per session.

👤 Providers & Hours

Add staff, assign services, set split shifts (6–9 AM, 5–8 PM) and breaks per provider.

📅 Calendar View

See every booking across all providers. Day, week, or month view. Click to see details.

👥 Customer Records

Every customer auto-created from bookings. See their history, upcoming sessions, phone number.

⚙️ Booking Policies

Set min lead time, max advance booking, and cancellation windows from the dashboard.

🔐 Gmail Auth

Sign in with Gmail. First login becomes the business owner. No passwords to manage.

[ Architecture ]

Zero-hop scheduling

No network calls. No external APIs. The MCP server imports the engine directly. Microsecond responses.

01100001 01100111 01100101 01101110 01110100 01100011 01100001 01101100 00100000 01110011 01100011 01101000 01100101 01100100 01110101 01101100 01101001 01101110 01100111
01100101 01101110 01100111 01101001 01101110 01100101 00100000 01100110 01101111 01110010 00100000 01100001 01101001 00100000 01100001 01100111 01100101 01101110 01110100 01110011
01101101 01100011 01110000 00100000 01101110 01100001 01110100 01101001 01110110 01100101 00100000 01110011 01110001 01101100 01101001 01110100 01100101 00100000 01101100 01101111 01100011
01100001 01101100 00100000 01100110 01101001 01110010 01110011 01110100 00100000 01111010 01100101 01110010 01101111 00100000 01101100 01100001 01110100 01100101 01101110 01100011 01111001
01100001 01100111 01100101 01101110 01110100 01100011 01100001 01101100 00100000 01110011 01100011 01101000 01100101 01100100 01110101 01101100 01101001 01101110 01100111 00100000 01100101
01101110 01100111 01101001 01101110 01100101 00100000 01100110 01101111 01110010 00100000 01100001 01101001 00100000 01100001 01100111 01100101 01101110 01110100 01110011 00100000 01101101
OpenClaw instance (your VPS) ├── OpenClaw Gateway ← WhatsApp / Telegram │ └── LLM reads SKILL.md → calls MCP tools ├── AgentCal MCP Server (stdio, same machine) │ └── imports engine directly — no HTTP ├── AgentCal API + Admin UI (:3000) │ └── same engine, different interface └── agentcal.db (SQLite + WAL, same disk) └── your data. your machine. always.
[ MCP Tools ]

5 tools. That's all an agent needs.

Clean Zod schemas. Good descriptions. Your agent discovers and calls them automatically.

get_slotsAvailable time slots for a date, filtered by service or provider
bookCreate a booking with conflict checking and policy enforcement
cancelCancel a booking by ID, respecting cancellation window policies
rescheduleMove a booking to a new slot atomically
get_bookingsList bookings by date, provider, customer, or status
[ Works with every AI layer ]

The engine every AI agent is missing

Voice AI, chat bots, and workflow tools all need scheduling. None of them have it built in. That's where AgentCal sits.

Voice
🎙Vapi
📞Bland
🔊Retell
🗣ElevenLabs
Chat
🤖OpenClaw
💬WhatsApp
✈️Telegram
🌐Webchat
Workflow
n8n
🔗Make
⚙️Zapier
Engine
📅AgentCal
🔧 Without AgentCal
  • Google Calendar as booking system
  • Google Sheets as customer database
  • No double-booking prevention
  • No group class capacity tracking
  • No cancellation policy enforcement
  • 5 services duct-taped together
  • Breaks when any one service goes down
📅 With AgentCal
  • Real scheduling engine, not a calendar hack
  • Atomic transactions — zero double bookings
  • Group classes with capacity tracking
  • Cancellation windows enforced automatically
  • One SQLite file — no external services
  • 5 MCP tools — any agent can call them
  • Works with voice, chat, and workflows
[ Compare ]

Not another meeting scheduler

Calendly and Cal.com schedule meetings. AgentCal runs service businesses.

FeatureCalendlyCal.comAgentCal
MCP serverAPI wrapperNative
Self-hosted✓ SQLite
Group classes
Split shiftsN/A
Buffer times
Zero latency✓ Local SQLite
No API key needed✓ stdio
Price$15/user/moFree + paidFree forever
[ Use Cases ]

Built for service businesses

Same engine. Different services. Your agent handles them all.

🏋️
Gyms
Classes + personal training
💇
Salons
Stylists + split shifts
🏥
Clinics
Doctors + consultations
🧘
Studios
Yoga + group sessions
[ Get Started ]

Running in 5 minutes

From zero to AI receptionist. No credit card. No signup.

1

Install

$ npx clawhub install agentcal
2

Initialize your business

$ agentcal init --name "My Gym" --timezone "Asia/Kolkata"

Creates agentcal.db with your business config

3

Start the admin UI

$ agentcal serve

Set up services, providers, and hours at localhost:3000

4

Connect to OpenClaw

$ agentcal mcp

MCP server starts via stdio. Add to your mcporter.json and your agent can book.

                                       01111000                              011111110
                                  01111111111111111100                   0111111111111111
                               0111111111111111111111110             0011111111111111111111
                             0111111111111111111111111111          0111111111111111111111111
                            0111111111111111111111111111110      011111111111111111111111111
                           011111111111111111111111111111111    11111111111111111111111111111
                           011111111111111111111111111111111111111111111111111111111111111111
                           011111111111111111111111111111111111111111111111111111111111111110
                           011111111111111111111111111111111111111111111111111111111111111100
                            01111111111111111111111111111111111111111111111111111111111111100
                            01111111111111111111111111111111111111111111111111111111111111000
                             0111111111111111111111111111111111111111111111111111111111110000
                              011111111111111111111111111111111111111111111111111111111100000
                               0011111111111111111111111111111111111111111111111111111000000
00000000000                       001111111111111111111111111111111111111111111111100000000
0000000000000000                     001111111111111111111111111111111111111111100000000000
00000000000000000000                    001111111111111111111111111111111111000000000000000
000000000000000000000000                    0011111111111111111111111100000000000000000000
0000000000000000000000000000                      0011111111111100000000000000000000000
000000000000000000000000000000000                          00000000000000000000000000
    

Your agent needs a calendar.
Give it one.

Open source. MIT licensed. Built for the agent-first world.