开源日历 Cal.com 项目:自定义你的时间管理(Github项目分享)

如果你是日常使用Calendly等时间安排工具的人,那么你一定知道这些工具确实方便了我们的生活,不管是商务会议、瑜伽课程还是家庭通话。然而,这些工具在控制和自定义方面往往有所局限。这时候,Cal.com应运而生。

什么是Cal.com

Cal.com是一个开源的时间安排工具,被誉为Calendly的继任者。它最大的特点就是完全开源,你可以完全掌控自己的数据、工作流程和外观设计。不管是自托管还是使用官方提供的托管服务,Cal.com都能满足你的需求,并且支持白标和自定义域名。通过API驱动,你可以轻松将其部署到自己的域名上,实现对事件和数据的全面控制。

https://github.com/calcom/cal.com

技术栈

Cal.com的开发使用了以下技术:

  • Next.js:一个基于React的服务端渲染框架。

  • tRPC:一个用于构建类型安全API的框架。

  • React.js:一个用于构建用户界面的JavaScript库。

  • Tailwind CSS:一个实用性优先的CSS框架。

  • Prisma.io:一个现代化的ORM工具。

  • Daily.co:一个视频通话API。

快速上手

想要在本地运行Cal.com,只需按照以下步骤操作:

  1. 前置条件
  • Node.js (版本 >= 18.x)

  • PostgreSQL (版本 >= 13.x)

  • Yarn(推荐)

克隆代码库

go 复制代码
git clone https://github.com/calcom/cal.com.git
cd cal.com

安装依赖

go 复制代码
yarn

设置环境变量 :将.env.example文件复制一份并重命名为.env,然后使用如下命令生成密钥并添加到.env文件中:

go 复制代码
openssl rand -base64 32

设置Node版本 :如果你的Node版本不满足项目要求,可以使用nvm(Node版本管理器)安装和切换到所需版本:

go 复制代码
nvm install
nvm use

启动开发环境

go 复制代码
yarn dev

相关提示

.env文件中添加以下内容以启用调试日志:

go 复制代码
NEXT_PUBLIC_DEBUG=1

配置数据库

你可以选择在本地创建PostgreSQL数据库或者使用Railway、Render等服务来托管数据库。配置好数据库后,在开发环境中运行以下命令以设置数据库:

go 复制代码
yarn workspace @calcom/prisma db-migrate

创建用户

可以通过Prisma Studio手动添加用户,或者运行以下命令来填充测试用户数据:

go 复制代码
yarn db-seed

结语

作为一个开源项目,Cal.com不仅提供了强大的功能,还允许你完全掌控自己的数据和工作流程。如果你对时间安排工具有更多的自定义需求,不妨试试Cal.com,享受开源带来的自由与便利。

欢迎大家在评论区分享你们的使用体验和心得!

相关推荐
玄同7651 分钟前
Git常用命令指南
大数据·git·elasticsearch·gitee·github·团队开发·远程工作
一个处女座的程序猿33 分钟前
AI之Agent之VibeCoding:《Vibe Coding Kills Open Source》翻译与解读
人工智能·开源·vibecoding·氛围编程
吠品1 小时前
命令行揭示SSL证书真相
https·github·ssl
、BeYourself1 小时前
解决git@github.com: Permission denied (publickey)
github
一只大侠的侠2 小时前
React Native开源鸿蒙跨平台训练营 Day16自定义 useForm 高性能验证
flutter·开源·harmonyos
IvorySQL2 小时前
PostgreSQL 分区表的 ALTER TABLE 语句执行机制解析
数据库·postgresql·开源
一只大侠的侠3 小时前
Flutter开源鸿蒙跨平台训练营 Day11从零开发商品详情页面
flutter·开源·harmonyos
一只大侠的侠3 小时前
React Native开源鸿蒙跨平台训练营 Day18自定义useForm表单管理实战实现
flutter·开源·harmonyos
一只大侠的侠3 小时前
React Native开源鸿蒙跨平台训练营 Day20自定义 useValidator 实现高性能表单验证
flutter·开源·harmonyos
十步杀一人_千里不留行3 小时前
Git提交前ESLint校验实践(Husky + lint-staged)
git·github