Exports all of a user's Google Calendars to iCal/ICS format for backup (or portability).

Usage:  
  gcalvault sync <user> [<cal-ids>...]
                        [(-e|--export-only)] [(-f|--clean)]
                        [(-i|--ignore-role) <role>]
                        [(-c|--conf-dir) <dir>] [(-o|--output-dir) <dir>]
                        [--client-id <id>] [--client-secret <secret>]
  gcalvault login <user> [--client-id <id>] [--client-secret <secret>]
  gcalvault authorize <user> [--client-id <id>] [--client-secret <secret>]
  gcalvault -h | --help
  gcalvault --version

Commands:
  sync              Sync the user's calendars. Initiates a 'login' if
                    there is not already a valid access token in
                    the conf dir.
  login             Force a user login and save the access token.
  authorize         Force a user login and emit the access token to the
                    terminal for use on another (headless) machine.

Options:
  user              Required. Google username/email address,
                    e.g. foo.bar@gmail.com.
  cal-ids           Optional. IDs of specific calendars to export. If provided,
                    exports just the specified calendars. If not provided, all
                    of the user's calendars are discovered and exported
                    (default behavior).
  -e --export-only  Export calendars to output dir only, do not create and
                    manage version history in a vault.
  -f --clean        Force clean the output directory, actively removing
                    .ics files that are no longer being synced from Google.
  -i --ignore-role  Access roles to ignore when exporting calendars, which can
                    be one of "owner", "writer", or "reader". Option can be
                    provided multiple times one the command line to ignore
                    multiple. Typical usage would be to export just calendars
                    where user is owner and/or where user has write access.
  -c --conf-dir     Directory where configuration is stored (e.g. access
                    token). Defaults to ~/.gcalvault.
  -o --output-dir --vault-dir
                     Directory to which calendar .ics files are exported
                    and/or stored. Defaults to a subfolder called 'gcalvault'
                    under the current working directory.
  --client-id       Recommended. Custom OAuth2 client ID you've provisioned
                    with Google to use when authorizing user access.
  --client-secret   Client secret for custom client ID provided
                    via --client-id.
  -h --help         Show this help screen.
  --version         Show the program's version.

This program will discover all of a user's calendars (via Google's Calendar
API) and export each of them as an .ics file. Alternately, it can be used to
export a subset of calendars by specifying their calendar IDs.

The sync operation is meant to be used in one of two ways:
- As a simple export utility (via --export-only).
- As a backup utility, with version history for each of the calendars exported
  (default behavior). Version history is stored under the covers in a git
  repository managed by gcalvault.
