命令行工具,可导出用户的所有Google日历为iCal/ICS格式以进行备份(或便携性)
项目描述
概述
Gcalvault 是一个命令行工具,可导出用户的所有Google日历为iCal/ICS格式以进行备份(或便携性)。
功能
- 自动发现用户可见的所有日历
- 以iCal/ICS格式下载它们并保存到磁盘以进行归档
- 可选地管理磁盘上“保险库”(底层的git仓库)中每个日历的版本历史
- 可以通过Docker镜像(多架构)或直接作为具有命令行界面的Python包安装运行
工作原理
- 使用Google的 身份提供者 进行认证(通过OAuth2/OIDC)
- 使用Google的 日历API 发现用户的日历
- 使用Google的 CalDav端点 下载iCal/ICS日历
- 使用 GitPython 在幕后管理本地git仓库的版本历史
使用方法
一些示例命令...
同步 foo.bar@gmail.com
用户的全部日历
gcalvault sync foo.bar@gmail.com
同步特定日历
gcalvault sync foo.bar@gmail.com family123@group.calendar.google.com
仅同步“可写”日历
gcalvault sync foo.bar@gmail.com --ignore-role reader
简单地导出日历,不保存版本历史
gcalvault sync foo.bar@gmail.com --export-only
请参阅 CLI帮助 以获取完整的使用方法和其他注意事项。
安装
通过Docker
docker run -it --rm \
-v ${HOME}/.gcalvault:/root/.gcalvault \
-v ${PWD}:/root/gcalvault \
rtomac/gcalvault sync foo.bar@gmail.com
通过PyPi
pip install gcalvault
gcalvault sync foo.bar@gmail.com
OAuth2身份验证
CLI首次运行时(交互式)将启动OAuth2身份验证,然后使用刷新令牌进行后续运行(无头)。
当您使用默认配置的Gcalvault时,您正在使用Gcalvault的客户端ID通过Google进行身份验证。由于应用程序在本地运行,因此只有您将能够访问从Google读取的数据,所以这并没有固有的不安全性。
尽管如此,强烈建议您通过Google API控制台创建自己的客户端ID,因为共享的客户端ID将由其他人使用,并受到可能导致不可预测失败的限制。
rclone在创建自己的客户端ID方面有很好的说明。
您可以通过以下方式向gcalvault提供您的客户端ID和密钥
gcalvault sync foo.bar@gmail.com --client-id my_client_id --client-secret my_client_secret
开发
源仓库
http://github.com/rtomac/gcalvault
本地安装依赖项(IDE用)
make devenv
. ./.devenv/bin/activate
构建发行版和Docker镜像
make build
本地构建和测试
make test
本地构建和运行
make run user=foo.bar@gmail.com
发布到PyPi和Docker Hub
make release
有关更多选项,请参阅Makefile中的目标和变量。
许可证
MIT许可
项目详情
关闭
gcalvault-1.2.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3fdceb2b76f47fb5e13d0598c3cbd57341da30e892723e1fd640cb4ec9e6de54 |
|
MD5 | 30e0040c5ab085f686f9371c89df1a7f |
|
BLAKE2b-256 | 23193535a2f915a081a3a4b5b943e135e841e5969477595a95734741cb87178a |