Cal.com:开源日程预约管理平台,Calendly的最佳替代方案

背景

在日常生活和工作中,我们经常需要与他人协调时间:

  • 销售人员需要与潜在客户预约演示时间
  • 医生需要为患者安排就诊时间
  • 咨询师需要与来访者预约咨询时段
  • 导师需要与学生预约会议时间

传统的邮件来回沟通方式效率低下,经常出现时区混淆、时间冲突等问题。Calendly 等商业预约工具的出现大大简化了这个过程,但存在以下痛点:

问题 说明
数据不自主 预约数据存储在第三方服务器
定制受限 品牌定制能力有限,无法完全白标
成本高昂 商业版本价格昂贵
锁定供应商 无法迁移到其他平台

今天要介绍的 Cal.com 是 Calendly 的开源继任者,让你完全掌控自己的预约系统。

什么是 Cal.com

Cal.com (原名 Calendso) 是一个开源的日程预约管理平台,被誉为 Calendly 的开源替代者。它于 2021 年 9 月正式发布 v1.0 版本,完全开源,支持自托管,让你可以完全掌控自己的数据、工作流程和外观设计。

核心特性

特性 说明
自托管部署 支持 Docker 一键部署,完全掌控数据
白标定制 可定制品牌 Logo、颜色、域名
多平台集成 支持 Google Calendar、Office 365、Zoom 等
多类型事件 支持一对一、多人会议、群组活动
团队协作 支持团队日历、轮询、抢号
工作流自动化 自动化提醒、确认邮件、后续跟进
API 驱动 提供完整 API,可二次开发
多语言支持 支持中文等 30+ 语言

GitHub 数据

  • Star: 30K+
  • 语言: TypeScript + Next.js
  • 协议: AGPLv3 (开源) + 商业许可 (企业版)
  • 技术栈: Next.js, tRPC, React, Tailwind CSS, Prisma
  • 发布日期: 2021年9月

Cal.com vs Calendly

对比项 Cal.com Calendly
部署方式 自托管或云端 仅云端
数据控制 完全自主 第三方存储
品牌定制 完全白标 有限定制
费用 开源免费 付费订阅
API 访问 完全开放 受限
社区生态 开源社区 封闭生态
二次开发 支持 不支持

快速开始

Docker 一键部署(推荐)

bash 复制代码
# 克隆仓库
git clone https://github.com/calcom/cal.com.git
cd cal.com

# 复制环境配置文件
cp .env.example .env

# 生成必要的密钥
# NEXTAUTH_SECRET
openssl rand -base64 32
# CALENDSO_ENCRYPTION_KEY
openssl rand -base64 24

# 编辑 .env 文件,填入上述密钥

# 拉取 Docker 镜像
docker compose pull

# 启动服务(包含 PostgreSQL 数据库)
docker compose up -d

访问 http://localhost:3000 即可看到安装向导。

快速启动(开发模式)

bash 复制代码
# 克隆仓库
git clone https://github.com/calcom/cal.com.git
cd cal.com

# 安装依赖
yarn

# 复制并配置环境变量
cp .env.example .env

# 启动开发服务器(包含测试数据库)
yarn dx

测试账号:

邮箱 密码 角色
free@example.com free Free 用户
pro@example.com pro Pro 用户
admin@example.com ADMINadmin2022! 管理员

云端部署

Cal.com 提供官方云端托管,也支持第三方平台部署:

平台 说明
Railway 一键部署,推荐
Vercel 需要 Pro 套餐
Northflank 支持 Docker
Render 支持 Docker
Elestio 托管式部署

核心功能详解

1. 事件类型管理

Cal.com 支持创建多种事件类型:

一对一会议
yaml 复制代码
事件名称: 产品演示
时长: 30 分钟
位置: Google Meet
时区: Asia/Shanghai
多人群组会议
yaml 复制代码
事件名称: 公开研讨会
时长: 60 分钟
最大参与人数: 20
位置: Zoom
轮询可用时间
yaml 复制代码
事件名称: 团队会议时间征集
类型: 轮询
候选人: 5 个时间段
参与方式: 匿名投票

2. 日历集成

Cal.com 支持与主流日历深度集成:

日历 功能
Google Calendar 双向同步,自动检查冲突
Office 365 双向同步,企业用户
Outlook 双向同步
Apple Calendar 只读支持
配置 Google Calendar 集成
  1. 访问 Google Cloud Console
  2. 创建项目,启用 Google Calendar API
  3. 配置 OAuth 同意屏幕
  4. 创建 OAuth 2.0 客户端 ID
  5. Cal.com 管理后台填入凭证

3. 视频会议集成

平台 功能
Zoom 自动创建会议链接
Google Meet 自动创建会议链接
Microsoft Teams 自动创建会议链接
Daily.co 内置视频服务
HubSpot Meetings CRM 集成

4. 预约页面定制

Cal.com 提供强大的品牌定制能力:

yaml 复制代码
预约页面设置:
  - 自定义 Logo
  - 自定义颜色主题
  - 自定义域名
  - 添加隐私政策
  - 自定义感谢页面

5. 工作流自动化

自动化规则示例
yaml 复制代码
# 预约确认后自动发送邮件
触发器: 预约创建
动作:
  - 发送确认邮件给参会者
  - 添加日历事件
  - 发送提醒邮件(提前 24 小时)
  - 发送提醒邮件(提前 1 小时)
邮件模板定制

支持自定义邮件内容、样式和发送时间:

  • 预约确认邮件
  • 日程提醒邮件
  • 取消通知邮件
  • 重新安排邮件
  • 后续跟进邮件

6. 团队功能

团队日历
yaml 复制代码
团队: 产品团队
成员: 张三、李四、王五
共享日历: 产品团队日历
轮询抢号

适用于多位顾问共享时间池的场景:

yaml 复制代码
咨询时段: 9:00-17:00
每位顾问: 5 个时段
客户: 自行选择一个顾问

7. API 和集成

Cal.com 提供完整的 RESTful API:

bash 复制代码
# 获取可用时间段
curl -X GET "https://your-cal.com/api/v1/availability/timeslots" \
  -H "Authorization: Bearer YOUR_API_KEY"

# 创建预约
curl -X POST "https://your-cal.com/api/v1/booking" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"eventTypeId": "123", "start": "2026-03-25T10:00:00Z"}'
SDK 支持
SDK 说明
@calcom/embed-react React 组件嵌入
@calcom/embed-snippet JavaScript 代码片段
@calcom/api Node.js API 客户端

实战场景

场景一:咨询师预约系统

需求: 自由咨询师需要为客户提供在线预约服务

配置:

  1. 创建一对一事件类型「咨询服务」(45分钟)
  2. 集成 Google Calendar 和 Zoom
  3. 开启自动化提醒邮件
  4. 配置预约确认邮件模板

效果:

  • 客户通过链接自主选择时间
  • 自动发送日历邀请和 Zoom 会议链接
  • 提前 24 小时和 1 小时自动提醒
  • 咨询结束后自动发送后续跟进邮件

场景二:企业内部会议预约

需求: 创业公司需要为各部门提供会议室预约

配置:

  1. 创建团队「行政部门」
  2. 添加 3 位行政同事
  3. 创建群组事件类型「部门会议」(60分钟)
  4. 配置轮询功能

效果:

  • 员工选择空闲时间
  • 自动分配到可用的行政同事
  • 生成会议室预订记录
  • 发送日历邀请

场景三:在线课程预约

需求: 在线教育平台需要为学员提供试听课预约

配置:

  1. 创建事件类型「试听课」(30分钟)
  2. 集成 Zoom
  3. 设置最大参与人数为 1
  4. 配置课前提醒

效果:

  • 学员自主预约试听时间
  • 自动发送课程资料
  • 课前自动发送 Zoom 链接
  • 课后自动发送课程顾问名片

场景四:多语言预约服务

需求: 外贸企业需要为海外客户提供多语言预约

配置:

  1. Cal.com 中启用多语言
  2. 添加英语、西班牙语、法语支持
  3. 配置多语言邮件模板
  4. 使用自定义域名

效果:

  • 海外客户使用母语预约
  • 邮件自动使用客户语言发送
  • 提升客户体验

高级配置

HTTPS 和 SSL 配置

yaml 复制代码
# 使用 Nginx 反向代理
server {
    listen 443 ssl;
    server_name cal.example.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

数据库配置

Cal.com 支持多种数据库:

yaml 复制代码
# PostgreSQL 配置
DATABASE_URL='postgresql://user:password@host:5432/calcom'

# 使用连接池(如 PgBouncer)
DATABASE_URL='postgresql://user:password@host:5432/calcom?pool_mode=transaction'

邮件服务配置

SendGrid
bash 复制代码
SENDGRID_API_KEY=your_sendgrid_api_key
SENDGRID_EMAIL=your_verified_email
NEXT_PUBLIC_SENDGRID_SENDER_NAME="Your Company"
SMTP
bash 复制代码
EMAIL_SERVER_HOST=smtp.example.com
EMAIL_SERVER_PORT=587
EMAIL_SERVER_USER=your_username
EMAIL_SERVER_PASSWORD=your_password

短信提醒(Twilio)

bash 复制代码
TWILIO_ACCOUNT_SID=your_account_sid
TWILIO_AUTH_TOKEN=your_auth_token
TWILIO_PHONE_NUMBER=+1234567890
NEXT_PUBLIC_SENDER_ID=YourBrand

常见问题

Q1: 如何实现完全白标?

  1. 使用自定义域名
  2. 替换 Logo 和品牌色
  3. 自定义邮件模板
  4. 隐藏 Cal.com 相关链接
bash 复制代码
# 环境变量配置
NEXT_PUBLIC_WEBAPP_URL=https://booking.yourdomain.com
NEXT_PUBLIC_WEBSITE_URL=https://yourdomain.com

Q2: 如何处理时区问题?

Cal.com 自动处理时区转换:

  1. 用户预约时显示其本地时区
  2. 日历事件自动转换为组织者时区
  3. 邮件通知包含双方时区信息

Q3: 如何限制预约时段?

yaml 复制代码
# 在事件类型中配置
可用时间:
  周一至周五: 9:00-18:00
  周六: 10:00-14:00
  周日: 不可用

# 提前时间
最少提前预约: 2 小时
最多提前预约: 30 天

Q4: 如何备份数据?

bash 复制代码
# 导出 PostgreSQL 数据
docker compose exec database pg_dump -U postgres calcom > backup.sql

# 导入数据
docker compose exec -T database psql -U postgres calcom < backup.sql

Q5: 免费版和企业版区别?

功能 开源版 企业版
自托管
基础预约
团队日历
SSO 登录
支付集成
工作流自动化
视频会议
优先支持

总结

Cal.com 是一款功能强大、灵活可扩展的开源日程预约平台,具有以下核心优势:

优势 说明
✅ 完全开源 AGPLv3 协议,代码透明
✅ 数据自主 自托管部署,数据完全掌控
✅ 灵活定制 完全白标,品牌一致性
✅ 丰富集成 支持 100+ 第三方服务
✅ API 驱动 完整 API 支持二次开发
✅ 多语言 支持 30+ 语言
✅ 活跃社区 持续迭代,社区支持

相比 Calendly 等商业方案,Cal.com 以开源为核心,让用户真正掌控自己的预约数据和业务流程。建议需要预约系统的个人和企业考虑部署 Cal.com,享受开源带来的自由和灵活性。


相关资源


如果你觉得这个工具对你有帮助,欢迎关注我们的更多技术分享。

相关推荐
IvorySQL4 小时前
PostgreSQL 19 重磅新语法终于补齐这个缺口
数据库·postgresql·开源
IvorySQL4 小时前
PostgreSQL 技术日报 (3月23日)|使用 rdtsc 减少 EXPLAIN ANALYZE 的计时开销
数据库·postgresql·开源
IvorySQL4 小时前
PostgreSQL 技术日报 (3月21日)|这些机制,可能并非 “ 理所当然 ”
数据库·postgresql·开源
研究点啥好呢9 小时前
3月22日GitHub热门项目推荐|网页浏览,何须手动
人工智能·python·开源·github
搜佛说10 小时前
下一代操作系统 与现在的操作系统 ,相差几何
开源
darkb1rd10 小时前
ClawTeam:让 AI 代理组成集群,实现全自动化工作流
开源·github·好物分享
老星*12 小时前
1Panel:现代化开源Linux服务器运维管理面板
运维·服务器·开源
lucky_syq12 小时前
Windows电脑部署OpenClaw保姆级教程(2026最新版)
人工智能·windows·开源·电脑·openclaw
大雷神12 小时前
HarmonyOS APP<玩转React>开源教程二十:收藏功能实现
前端·react.js·开源·harmonyos