开源日历 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,享受开源带来的自由与便利。

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

相关推荐
坚果派·白晓明18 小时前
通过开源鸿蒙终端工具Termony完成Busybox 命令行工具构建过程深度解读
开源·openharmony·开源鸿蒙
qinyia18 小时前
WisdomSSH解决因未使用Docker资源导致的磁盘空间不足问题
运维·服务器·人工智能·后端·docker·ssh·github
答案answer18 小时前
一些经典的3D编辑器开源项目
前端·开源·three.js
b***462419 小时前
IoT DC3 是一个基于 Spring Cloud 的开源的、分布式的物联网(IoT)平台本地部署步骤
物联网·spring cloud·开源
b***653219 小时前
【解决】RESP.app GUI for Redis 连接不上redis服务器
服务器·redis·github
5***r93519 小时前
开源数据同步中间件(Dbsyncer)简单玩一下 mysql to mysql 的增量,全量配置
mysql·中间件·开源
mortimer1 天前
破局视频翻译【最后一公里】––从语音克隆到口型对齐的完整工程思路
python·github·aigc
散峰而望1 天前
C++数组(二)(算法竞赛)
开发语言·c++·算法·github
码农很忙1 天前
从零开始搭建个人博客:基于Hexo + GitHub Pages的完整指南
github
徐同保1 天前
如何使用GitKraken把git项目迁移到另一个平台,并保存所有提交记录,例如把github上的项目,迁移到gitee
git·gitee·github