sync_ics2gcal
Python scripts for sync .ics file with Google calendar
Installation
To install from PyPI with pip, run:
pip install sync-ics2gcal
Or download source code and install using poetry:
# install poetry
pip install poetry
# install project and deps to virtualenv
poetry install
# run
poetry run sync-ics2gcal
Configuration
Create application in Google API Console
Create a new project: console.developers.google.com/project
Choose the new project from the top right project dropdown (only if another project is selected)
In the project Dashboard, choose “Library”
Find and Enable “Google Calendar API”
In the project Dashboard, choose “Credentials”
In the “Service Accounts” group, click to “Manage service accounts”
Click “Create service account”
Choose service account name and ID
Go back to “Service Accounts” group in “Credentials”
Edit service account and click “Create key”, choose JSON and download key file.
Create working directory
For example: /home/user/myfolder
.
Save service account key in file
service-account.json
.Download sample config and save to file
config.yml
. For example:
wget https://raw.githubusercontent.com/b4tman/sync_ics2gcal/develop/sample-config.yml -O config.yml
(Optional) Place source
.ics
file,my-calendar.ics
for example.
Configuration parameters
start_from
- start date:full format datetime,
2018-04-03T13:23:25.000001Z
for exampleor just
now
(Optional)
service_account
- service account filename, remove it from config to use default credentials(Optional)
logging
- config to setup logginggoogle_id
- target google calendar id,my-calendar@group.calendar.google.com
for examplesource
- source.ics
filename,my-calendar.ics
for example
Usage
Manage calendars
manage-ics2gcal GROUP | COMMAND
GROUPS:
property - get/set properties (see CalendarList resource), subcommands:
get - get calendar property
set - set calendar property
COMMANDS:
list - list calendars
create - create calendar
add_owner - add owner to calendar
remove - remove calendar
rename - rename calendar
Use -h for more info.
Sync calendar
just type:
sync-ics2gcal
How it works
Documentation is available at sync-ics2gcal.readthedocs.io.