by-wave-calendar
自托管日历共享平台,支持网页/PWA、原生iOS/Android/macOS/Windows客户端、CalDAV双向同步、ICS订阅发布及REST API。一个域名同时搞定所有功能,国内服务器直装无国外CDN依赖。
Ficha actualizada 23 sept 2026, 14:06 · upstream 23 sept 2026, 14:03 · release desktop-v1.1.1
Qué es by-wave-calendar
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
ByWave Calendar 是一个完全自托管的日历共享平台,旨在为用户提供一套可控、可备份且无需依赖任何外部 SaaS 服务的日历解决方案。项目采用 MIT 开源协议,支持网页端(Toast UI Calendar)、PWA 安装、原生 iOS/Android/macOS/Windows 客户端以及 CalDAV/ICS/REST API 等多种交互方式。
核心设计理念是“一个域名解决所有问题”,用户只需配置一次服务器即可同时提供日历展示、事件管理、协作邀请和第三方集成。平台支持周期事件(RRULE)、事件提醒、全站搜索、跨日历同步、预约链接生成以及 Web Push 通知等丰富功能。
在技术架构上,服务端采用 TypeScript + Fastify 5 + EJS + HTMX + Tailwind CSS 构建,数据库使用 PostgreSQL 16 配合 Drizzle ORM。所有第三方前端依赖(HTMX、Toast UI、SimpleWebAuthn、Tailwind)均本地化打包,确保国内服务器部署时无需额外 CDN 依赖。客户端采用 Kotlin Compose Multiplatform 实现跨平台桌面应用,iOS 和 Android 分别使用 Swift/SwiftUI 和 Jetpack Compose。
项目特别注重用户体验与安全性:支持 Passkey(WebAuthn)、TOTP MFA、多 SSO 集成、应用密码机制以及完整的登录审计日志。数据备份恢复功能采用 round-trip 自检机制,确保数据完整性。
- 个人日程管理:快速创建和查看日历事件,支持周期提醒和多平台同步
- 团队协作:邀请同事共享日历,通过 RSVP 确认参与并自动添加至对方账户
- 预约协作:发布可约时段,第三方用户在线选择时间并自动创建带参与者的事件
- 跨应用集成:通过 CalDAV、ICS 订阅和 REST API 与 Apple Calendar、Google Calendar、Outlook 等无缝同步
- 企业日历管理:支持多组织共享、权限控制、预约链接分发及 Webhook 事件通知
- 开发者工具:提供完整的 REST API、OAuth 授权服务器及 Webhooks,便于集成到内部系统
- 国内服务器直装无国外 CDN 依赖,部署速度极快且无需海外网络环境
- Passkey + MFA + SSO 三重认证体系,安全性远超传统密码方案
- Toast UI Calendar 月/周/日视图响应式完美适配移动端,体验接近原生应用
- 支持 RFC 5545 ICS 订阅发布,可生成标准格式链接供 Google/Apple/Outlook 直接订阅
- Web Push + APNs 双重通知机制,确保重要事件在 iOS 端也能及时送达
- 完全本地化打包的第三方前端库(HTMX、Toast UI),国内用户无需海外网络即可使用
- 不支持复杂 RRULE 表达式(如嵌套周期、日期范围计算)和 VTIMEZONE 时区处理,仅支持基础周期事件
- Passkey 功能在部分浏览器中兼容性有限,且无法跨设备同步 Passkey 凭证
- Web Push 通知依赖用户主动订阅,重要紧急事件可能无法通过推送方式提醒
- iOS 客户端需手动安装并配置证书(TestFlight 或 App Store),Android 版本较旧(v0.12.0)
- 桌面端 Compose Multiplatform 仅支持 macOS、Windows 和 Linux,不支持 Windows 桌面版
- 数据备份恢复功能为单表导出,无法处理多用户并发编辑导致的脏读问题
Capturas del proyecto
Imágenes reales detectadas en la documentación del repositorio.
Perfil de infraestructura
Estimación inicial derivada del repositorio y de los servicios detectados.
Despliegue detectado
Qué señales reales de instalación hemos encontrado.
部署到宝塔面板:1) 使用 Gitee 作为代码仓库(国内稳定),push 同步至 GitHub;2) .env 配置 DATABASE_URL、PUBLIC_BASE_URL 等环境变量;3) 首次运行 install.sh 自动完成依赖安装、数据库迁移和权限设置;4) 所有更新通过网页管理后台的"立即更新"按钮触发,带实时进度条和自动重启刷新。建议定期备份 PostgreSQL 数据(使用 pg_dump),并配置 SSL 证书。
Stack y dependencias
Componentes inferidos a partir de manifests, configuración y documentación.
Puede sustituir a
Relaciones detectadas por el análisis del repositorio y su categoría.
Experiencia real de la comunidad
Ayuda a contrastar la estimación automática con instalaciones reales.
Todavía no hay datos comunitarios para este proyecto.


