
源码系统概览
文章正文
一句话概括:Easy!Appointments 是开源的在线预约排期系统,基于 PHP 与 CodeIgniter 开发,自带中文界面,支持服务项目、服务人员、客户、日历排班、邮件提醒和 Google 日历同步,适合诊所、美容院、培训机构等需要在线预约的场景。
By the numbers:源码文件 1276+ 个,语言包 42 种,遵循 GPL-3.0 协议,内置完整 REST API v1 接口,支持 Google 日历与 CalDAV 双向同步。
| 对比项 | Easy!Appointments | 自研预约系统 | 商业预约 SaaS |
|---|---|---|---|
| 部署成本 | 自托管免费 | 开发成本高 | 按年付费 |
| 数据掌控 | 完全自主 | 自主 | 依赖平台 |
| Google 日历同步 | 内置支持 | 需自行开发 | 部分支持 |
| 中文支持 | 内置简体中文 | 视开发而定 | 一般 |
| REST API | 内置 v1 接口 | 需单独开发 | 看套餐 |
预约排期是服务型行业日常运营里最常见的需求。诊所要看号源,美容院要排技师,培训机构要安排课程时间。
Easy!Appointments 用网页方式把这一整套流程做成开箱即用的系统,客户在线选服务、选时间、提交预约,管理员在后台维护服务项目和人员排班。
这套源码自带简体中文语言包,部署后即可使用中文界面,对国内用户友好。
下文从功能、技术栈、部署方式三个方面展开介绍。
源码简介
Easy!Appointments 是 GitHub 上开源的自托管预约调度系统,项目名直译就是「轻松预约」。
它由 Alex Tselegidis 开发和维护,代码以 GPL-3.0 协议发布,允许个人与商业使用。
系统围绕三个核心角色设计:提供服务的 provider、管理业务的后台管理员与秘书、提交预约的客户。
服务项目可以设定时长、价格、颜色与提前预约规则,服务人员可以配置每周工作时段,系统根据这些配置自动计算可预约的时间段。
预约完成后,系统通过邮件发送确认与提醒。它还提供完整的 REST API,第三方系统可以读取和写入预约数据,便于与既有业务系统对接。
适用场景
诊所、牙科、理疗等医疗健康机构可以用它管理号源,顾客在线选时间段挂号。
美容美发、SPA、家政等服务门店可以用它排班,减少电话沟通成本。
健身房、驾校、培训机构可以按教练和课程时间开放预约。
律师、咨询师、维修师傅等个人服务者也可以部署一套,向客户开放自己的空闲时间。
整体来说,凡是按时间段提供服务的场景都适用。
功能亮点
服务与人员管理:服务项目支持时长、价格、颜色、提前预约天数等配置,服务人员按周设置工作时段。
日历视图:后台用 FullCalendar 展示每日排期,支持拖拽调整,直观管理预约。
客户管理:自动记录客户信息与历史预约,支持客户自助取消与改期。
邮件通知:通过 PHPMailer 发送预约确认、提醒与取消邮件,可配置 SMTP。
Google 日历与 CalDAV 同步:双向同步预约事件,与团队既有日历工作流衔接。
多语言:内置 40 多种语言包,含简体中文与繁体中文。
REST API:开放 v1 接口,配合 OpenAPI 文档,便于二次开发。
扩展能力:支持 LDAP 登录、Webhook 回调、Jitsi 在线会议、Matomo 与 Google Analytics 统计、验证码与 Altcha 防刷。
技术架构与部署指南
技术栈与运行环境
语言与框架:PHP 8.2+
后端框架:CodeIgniter 3.x
数据库:MySQL 5.7+
前端:Bootstrap 5、jQuery、FullCalendar、Select2、Tippy.js
构建工具:Node.js、Gulp、Sass
依赖管理:Composer、npm
运行环境:Apache 或 Nginx + PHP + MySQL
PHP 扩展:curl、json、mbstring、gd、simplexml、fileinfo 等
安装与部署提示
本地开发推荐使用仓库自带的 Docker Compose 环境,一条命令即可拉起全套依赖。
生产部署时把源码上传到服务器,创建 MySQL 数据库,将 config-sample.php 改名为 config.php 并填写数据库与站点地址配置,然后确保 storage 目录可写,浏览器访问安装向导即可完成初始化。
前端资源已预构建,常规部署不需要安装 Node 环境。注意 PHP 版本需要 8.2 以上,并开启 curl、gd、mbstring 等扩展。
截图与演示说明
以下截图来自 GitHub 原版 alextselegidis/easyappointments 仓库

这张图展示的是客户端的在线预约界面,包含服务选择、人员选择与日历时间段挑选等步骤,是系统最核心的页面。

这是项目的官方 logo,日历与时钟元素直接体现了预约排期的产品定位。
官方提供了在线演示站 demo.easyappointments.org,可以体验前台预约与后台管理流程。
常见问题
问:Easy!Appointments 支持中文界面吗?
支持。源码内置简体中文与繁体中文语言包,安装时或后台设置里可以切换界面语言。
问:可以修改预约服务的时长和价格吗?
可以。后台服务管理里每个服务项目都能单独设置时长、价格、颜色和预约规则,改动即时生效。
问:预约后如何通知客户?
系统通过 PHPMailer 发送邮件,支持 SMTP 配置,可发送预约确认、提醒和取消通知。
问:能否与 Google 日历同步?
可以。后台集成设置里配置 Google 日历账号后,预约事件可以双向同步,还支持 CalDAV 协议。
问:这套源码需要什么运行环境?
需要 PHP 8.2 以上、MySQL 数据库和 Apache 或 Nginx 服务器,本地可用 Docker Compose 快速启动。
安全风险提示
这套源码自带了安全响应头配置、验证码与 Altcha 防刷组件,数据库查询走 CodeIgniter 查询构造器,基础安全性有保障。
部署时仍需注意:生产环境务必开启 HTTPS,及时设置强密码,按官方文档升级版本,并做好数据库定时备份。
修改配置文件时不要把数据库账号密码硬编码进公开仓库,storage 目录权限建议按官方要求设置。
下载说明
本仓库为 Easy!Appointments 的汉化整理版,保留了完整源码与英文文档,并在 README 中补充了中文安装说明,下载后直接进入部署流程即可。
源码在本地解压后即为完整项目,未做任何删减,可用于学习、二次开发与生产部署。
文件清单与目录结构可参考源码报告。
GitHub项目开源地址:https://github.com/alextselegidis/easyappointments