雨云搭建 Cal.com 开源预约调度平台教程

开源预约调度(Calendly 自托管替代):对外约时间、日历双向同步、自动提醒防撞档
发布于
7

做咨询、培训、设计、维修这类「靠预约吃饭」的服务,最尴尬的是来回拉群约时间:你发一串空档,对方挑一个,又撞了别的事。Cal.com 是开源的预约调度工具,相当于自托管的 Calendly——你设好可约时段,对方点开链接选时间,自动双向同步日历、发邮件提醒、防撞档。本文记录在雨云 VPS 上用 Docker 部署 Cal.com 的过程与坑。

一、Cal.com 解决什么

核心能力:

  • 预约链接:生成一条个人预约页,对方自己挑空闲时段,不用你手动排;
  • 日历双向同步:对接 Google / Microsoft 日历,已存在的会议自动避开,不会撞档;
  • 自动提醒:预约前后发邮件,减少爽约;
  • 多人/团队:支持把多个成员的空闲时间聚合成团队预约页。

和前面写过的 Vikunja(见 12302)不同,Vikunja 是「自己管任务」,Cal.com 是「对外约时间」,一个是内部台账一个是外部入口。

二、环境准备

Cal.com 比一般轻量应用重一些,官方建议至少 2 核 2G,推荐 2 核 4G。系统 Ubuntu 22.04,装好 Docker(入门见 12235)。雨云国内节点延迟低,面向国内客户预约体验更好。

新用户用优惠码 admin01 可享 五折优惠,雨云支持 7 天无理由退款。入口:雨云官网

三、部署要点与坑

Cal.com 官方主推用 Vercel + 托管数据库,自托管走 Docker 稍复杂,关键是环境变量。最小可用需要:

  • DATABASE_URL:PostgreSQL 连接串(Cal.com 用 Prisma + Postgres,不支持 SQLite);
  • NEXT_PUBLIC_WEBAPP_URL:你对外访问的域名;
  • CALENDSO_ENCRYPTION_KEY:用于加密日历令牌,必须自定义且保密;
  • 首次启动要跑数据库迁移 prisma migrate deploy

踩坑提醒:

  • 加密密钥不能少CALENSO_ENCRYPTION_KEY 缺失会导致日历对接失败、令牌无法保存;
  • 必须用域名而非 IP:Cal.com 大量功能依赖 NEXT_PUBLIC_WEBAPP_URL 的正式域名,用 IP 访问会出现回调异常;
  • Postgres 要单独起:建议用 Docker Compose 把 postgres 和 calcom 放一起,数据挂卷备份(见 12306)。

四、对接日历与发信

在 Cal.com 后台「Connections」里授权 Google / Outlook 日历即可双向同步。邮件提醒需要配置 SMTP:可以接前面写过的 Listmonk(见 12332)同款 SMTP,或任意支持 SMTP 的服务。配置好 SPF/DKIM/DMARC 能显著提升预约邮件的到达率。

如果担心后台暴露,可用 Authelia(见 12340)给管理路径加一层登录保护。

五、典型场景

  • 自由职业者:把预约链接放简历 / 公众号,客户自助约咨询;
  • 小班课 / 答疑:设固定可约时段,学生自行选;
  • 售后上门:维修、安装类服务约时间,自动避开已有排程。

合规提醒

Cal.com 会收集预约人的姓名、邮箱、电话等个人信息,属于《个人信息保护法》规定的处理活动,需向预约人明示用途并取得同意,不得超范围使用或对外提供。邮件提醒须遵守《互联网电子邮件服务管理办法》,仅向有预约关系的用户发送,不得借机群发营销内容。

常见问题(FAQ)

必须用自己的域名吗?
强烈建议。Cal.com 的 OAuth 回调和邮件链接都依赖正式域名,用 IP 访问会出现功能异常且不专业。
最低配置多少能跑?
官方建议 2 核 2G 起,实际跑 Prisma + Next.js 较吃内存,2 核 4G 更稳,数据库和主程序建议分开容器。
能和微信/公众号打通吗?
原生不直接对接微信,但可把预约链接放进公众号菜单或客服回复,用户浏览器完成预约,再配合 Gotify 做新预约通知。
邮件总是进垃圾箱怎么办?
配置好域名 SPF、DKIM、DMARC 记录,并使用信誉良好的 SMTP 发信服务,能明显降低进垃圾箱概率。

本文由作者原创/授权发布于极跃圈(jiyueip.com)未经许可,禁止转载。题图来自Unsplash,基于CC0协议。

声明:极跃圈(JIYUEIP.com)内网友所发表的所有内容及言论仅代表其本人,并不反映任何极跃圈(JIYUEIP.com)之意见及观点。

0 讨论
热门最新
总结
暂无总结
0 / 600

用雨云 KVM 云服务器 Docker 部署 Code Server,浏览器里直接写代码、跑终端、调端口,环境只在服务器维护一份。含 HTTPS 反代、强密码安全与优惠码 admin01 五折。

用雨云 KVM 云服务器 Docker 自建 Outline 团队文档协作(Outline+PostgreSQL+Redis+对象存储),配 Nginx 反代 HTTPS、空间权限与备份。含环境变量坑与优惠码 admin01 五折。