Open-source scheduling infrastructure for the AI agent era.
Self-hostable Calendly alternative with MCP server, team scheduling, and smart availability.
GitHub · Features · Quick Start · Docker · Contributing
- Agent-First — 18 MCP tools + full REST API for complete autonomous scheduling
- Smart Scheduling — Event types, availability rules, buffer times, timezone-aware booking pages
- Calendar Sync — Google Calendar integration with conflict detection and event creation
- MCP Server — Built-in Model Context Protocol server for AI agent scheduling
- Teams — Organizations with round-robin and collective scheduling
- API & Webhooks — REST API with key authentication and real-time booking webhooks
- Video Conferencing — Auto-generate Zoom and Google Meet links on confirmation
- Self-Hostable — Deploy on your own infrastructure with full data ownership
- No Paywalls — All features unlocked. Unlimited event types, bookings, and calendars
- Framework: Next.js (App Router)
- Language: TypeScript
- Database: PostgreSQL via Prisma
- Auth: Auth.js v5 with Google OAuth & Credentials
- Email: Resend & React Email
- UI: Tailwind CSS, Shadcn/ui, Lucide
- MCP: @modelcontextprotocol/sdk
- Node.js 20+
- pnpm
- PostgreSQL (or use Neon for a free hosted database)
- Clone the repository:
git clone https://github.com/gudlab/gudcal-core.git
cd gudcal-core- Install dependencies:
pnpm install- Copy the environment file and configure it:
cp .env.example .env.local- Set up the database:
pnpm prisma generate
pnpm prisma db push- Start the development server:
pnpm devVisit http://localhost:3000 to see GudCal running.
The fastest way to self-host GudCal.
- Clone the repo and create your
.envfile:
git clone https://github.com/gudlab/gudcal-core.git
cd gudcal-core
cp .env.example .env- Set the required secrets in
.env:
AUTH_SECRET=$(openssl rand -base64 32)- Start everything:
docker compose up -dThis starts PostgreSQL and GudCal on http://localhost:3000.
docker build -t gudcal .
docker run -p 3000:3000 \
-e DATABASE_URL="postgres://..." \
-e AUTH_SECRET="..." \
-e NEXT_PUBLIC_APP_URL="http://localhost:3000" \
gudcalCopy .env.example to .env.local and configure:
| Variable | Required | Description |
|---|---|---|
DATABASE_URL |
Yes | PostgreSQL connection string |
AUTH_SECRET |
Yes | Random secret for sessions |
NEXT_PUBLIC_APP_URL |
Yes | Your deployment URL |
GOOGLE_CLIENT_ID |
Yes | Google OAuth client ID |
GOOGLE_CLIENT_SECRET |
Yes | Google OAuth client secret |
ENCRYPTION_KEY |
Yes | 32-byte hex key for token encryption |
RESEND_API_KEY |
No | For email notifications |
GOOGLE_CALENDAR_CLIENT_ID |
No | For Google Calendar integration |
GOOGLE_CALENDAR_CLIENT_SECRET |
No | For Google Calendar integration |
GudCal includes a built-in MCP server that lets AI agents manage scheduling:
- List event types and availability
- Create, confirm, and cancel bookings
- Manage organizations and team members
Connect any MCP-compatible AI client (Claude, GPT, etc.) to GudCal for autonomous scheduling.
Contributions are welcome! Here's how to get started:
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Commit your changes:
git commit -m "Add my feature" - Push to the branch:
git push origin feature/my-feature - Open a pull request
Please open an issue to discuss proposed changes before submitting large pull requests.
Business Source License 1.1. See LICENSE.md for details.
You can self-host, modify, and use GudCal freely. The only restriction is offering it as a competing hosted scheduling service. On February 18, 2030, the license automatically converts to Apache 2.0.