跳转到主要内容

命令行工具,可导出用户的所有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 (8.3 kB 查看哈希值)

上传时间

支持者

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF赞助商 PingdomPingdom 监控 SentrySentry 错误日志 StatusPageStatusPage 状态页面