CalendarPi will sync calendar appointments between an Exchange Server and Google Calendar. It is made to run on the RaspberryPi but can be run on any machine that supports Go.
CalendarPi is a small website that allows users to sync their exchange calenders with google calendar. Multiple users can all use the software and it will maintain each calenadr separately.
CalendarPi supports one directional sync from Exchange to Google Calendar. It will automatically add new items, update exisiting items and delete removed items.
CalendarPi secures all credentials by storing them in an encrypted file locally. The master password for encrypting and decrypting is never stored on the system. It must be entered each time the software starts up and is just kept in memory. This prohibts anyone who has physical access to the machine from recovering any sensitive data.
Download and install Go from https://golang.org/dl/ Set your GOPATH variable to whatever you want
export GOPATH=~/GoPath
Install calendarpi by running
go get github.com/sgoertzen/calendarpi
Install all dependencies by running
go get -t ./...
Finally switch to the code directory
cd $GOPATH/src/github.com/sgoertzen/calendarpi
go build
go test
./calendarpi
The first time the software runs it will error out and create a conf.json file in the root directory. You will need to edit this file and put in proper values.
Once the software is running point your browser to https://yourmachinename:10443/ (Or whatever port you put into the config file)
If you are so inclined you can install go from source
git clone https://go.googlesource.com/go
cd go
git checkout go1.4
cd src
./all.bash
Download and install Mecurial by running:
sudo apt-get install mercurial
Run the following commands in terminal
go get google.golang.org/api/calendar/v3
go get golang.org/x/oauth2
go get github.com/stretchr/testify/assert
go get github.com/kennygrant/sanitize