type
status
date
slug
summary
category
tags
create_time
May 24, 2025 09:33 AM
icon
password
my_create_time
📌 前言
接上一篇《nCalendar Notion 模板设计》,这篇介绍 nCalendar 的服务开发进展,虽然我没有写一行代码,不过全部交给 Cursor 也算是能跑起来了(中间不少折腾)。
🧠 背景与使用场景
日常使用中,很多人通过 Notion 管理自己的任务、订阅和服务。但 Notion 本身不具备本地提醒机制,容易错过到期时间。
nCalendar 的诞生,正是为了解决这一痛点:
- 用户只需在 Notion 中维护一个订阅/任务数据库;
- 系统自动将内容同步到本地日历(通过自建 CalDAV);
- 并借助系统日历或通知完成本地提醒。
适用于以下用户场景:
- 个人开发者:想要将订阅提醒集成进自己的工具或自动化系统。
- 团队运营:希望统一管理 SaaS 续费时间和任务时间线。
- 高级用户:希望与 iOS/macOS 日历联动,并使用 Notion 做前端。
🏗️ 系统架构概览
nCalendar 的服务由以下组件组成:
模块 | 技术栈 |
前端框架 | React + TypeScript + Ant Design |
后端框架 | Python + FastAPI |
用户认证 | JWT + SQLite |
数据存储 | SQLite |
CalDAV 服务 | Radicale 3.x |
通信接口 | REST API |
容器部署 | Docker + Docker Compose |
✅ 功能模块介绍
1️⃣ 用户管理模块(已完成)
- 用户注册与激活
PS:由于微信登录需要企业认证和审核,目前仅支持邮件注册,后续添加第三方。
- 用户登录 / 注销
- 密码重置与找回
- 用户个人信息查看 / 修改
2️⃣ 后台管理模块(已完成-仅管理员可见)
- 用户列表查看与搜索
- 用户权限与角色管理(Admin / 普通用户)
- 系统运行状态与服务健康检查
3️⃣ CalDAV 服务模块(已完成)
- 用户专属 CalDAV 账号自动生成
- 基于 Radicale 的多用户日历隔离
- CalDAV 日历同步地址提供(WebDAV URL)
- 事件创建 / 查询 / 修改 / 删除(REST API)
- CalDAV 客户端兼容支持(iOS / macOS / Thunderbird)
4️⃣ 系统集成模块(待开发)
- Notion API 集成
- 支持 token + database ID 配置
- 自动抓取日期字段与标题字段
- 周期性同步任务配置
- 系统日历集成
- 提供 CalDAV 标准地址供系统调用
- 支持双向同步(未来)
- 通知系统集成
- 支持自定义 webhook 回调
- 系统内部通知(未来:支持邮件 / 微信 推送)
🧩 常见问题
✅ 是否支持多账号管理?
支持,用户之间完全隔离,每个用户拥有独立 Token 与日历空间。
✅ 可以导入历史 Notion 数据吗?
是的,只要 Notion 数据库中有明确的日期字段,nCalendar 将自动识别并生成事件。
✅ 是否开源?
目前产品还是起步阶段,后续待稳定后代码会开源,你可以根据需要 Fork 自己部署;
但默认服务提供稳定云端支持,推荐直接接入使用。
✍🏻 总结
nCalendar 云后端服务提供了从 Notion 到 CalDAV 的完整事件同步与提醒解决方案,支持标准 API 接入、用户认证、多终端同步,是一款面向重度 Notion 用户的高效工具。
你可以轻松在你的应用、脚本或自动化流程中嵌入这一能力,打造自己的智能提醒系统。
🔄 后续
目前产品已初步上线,访问地址:https://ncalendar.lusyoe.com
后续将会集成 Notion,补充功能完整闭环。
欢迎大家体验并提些建议。
PS:由于服务器配置有点低,访问较慢见谅一下哈,如果后续用的人多了会升级服务器的。
有关文章的任何疑问,欢迎您在底部评论区留言,一起交流~
若您认可我的内容,欢迎 请我喝杯咖啡~
- 作者:lusyoe
- 链接:https://blog.lusyoe.com/article/ncalendar-service-introduction
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。