Skip to content

A Command-Line Utility to automatically backup Google Mail, Calendar & Contacts to local files.

License

Notifications You must be signed in to change notification settings

WeeJeWel/node-google-backup

Repository files navigation

Google Backup

NPM Version Sponsor Build & Publish NPM Package Build & Publish Docker Image

This module automatically downloads your Google Mail, Contacts & Calendar to separate files. It'll sync only new Mails, Contacts & Events.

This tool will output the following directory structure:

.
├── Contacts
│   └── *.vcf
├── Calendar
│   └── *.ical
└── Mail
    ├── By ID
    │   └── *.eml
    ├── By Thread
    │   └── <...>
    │       └── *.eml
    └── By Label
        ├── <...>
        │   └── *.eml
        └── [Gmail]
            ├── All Mail
            │   └── *.eml
            ├── Sent
            │   └── *.eml
            └── <...>
                 └── *.eml

Note: All e-mail files are symlinked to 'By ID/*.eml'.

Why?

Google makes great services, but there are many horror stories of people locked out of their accounts. So be safe, and keep your data backed up!

Usage

1. Create a Google App Password

Create a Google App Password at https://myaccount.google.com/apppasswords.

2. Run

Node.js

If you have Node.js already installed, run:

$ npx -y google-backup \
  --username "john.doe@gmail.com" \
  --password "abcd efgh ijkl mnop" \
  --filepath "~/Backups/Google/"

Hint: You can schedule this in a cronjob for automated backups.

Docker

If you prefer Docker, this is an example how to run:

$ docker run \
  --env GOOGLE_BACKUP_USERNAME="john.doe@gmail.com" \
  --env GOOGLE_BACKUP_PASSWORD="abcd efgh ijkl mnop" \
  --env GOOGLE_BACKUP_FILEPATH="/backups" \
  --volume="~/Backups/Google/:/backups/" \
  ghcr.io/weejewel/google-backup

Also see

Looking to backup iCloud Drive in a similar way? See iCloud Backup.

About

A Command-Line Utility to automatically backup Google Mail, Calendar & Contacts to local files.

Resources

License

Stars

Watchers

Forks

Packages