Giter VIP home page Giter VIP logo

ngcalsync's Introduction

What’s this?

Did you ever wanted to synchronize your company meetings from Lotus Notes with your Google calendar?
Yes? Then you are facing some obstacles:

  • your sensitive data must not go to Google (“Meeting at 12 o’clock with customer John Doe …”)
  • you do not want to get your Lotus Notes calendar tainted by your private entries from Google
  • you do not want to have your colleagues’ birthdays in Google
  • you like to select which kinds of calendar events are synchronized
  • you are using Lotus Notes :-)

Since I did not find an application offering solutions to all these problems at the same time, I decided to write my own.

Running

A word of warning

This application is designed to make your Google calendar a (partial) copy of your Lotus Notes calendar.
This means, it will erase all events in your configured Google calendar which are not in your Lotus Notes calendar or excluded from synchronisation by your settings.
Be sure to use a dedicated Google calendar for synchronisation.

First start

Just run the application. It will create a folder .ngcalsync in your home directory, create all necessary files with default values, prompt a message and exit. When you are on MS Windows, the path to your Lotus Notes installation will be obtained from the registry, otherwise the program will prompt for it. Afterwards, you can edit the created file sync.properties according to your needs.

All configuration is done in .ngcalsync/sync.properties, which is read at program startup. This file is well-documented.

First time authorisation

Lotus Notes

  1. Start your Lotus Notes client.
  2. Click File → Security → User Security (Macintosh OS X users: Lotus Notes → Security → User Security).
  3. Click Security Basics, and select “Don’t prompt for a password from other Lotus Notes-based programs (reduces security)” under “Your Login and Password Settings.”

You can also skip steps 2 & 3, but then you have to enter your Lotus Notes password in the console every time you start the application.

Google

Now run the application.

  1. Since you haven’t yet authorized the application to access your google calendar, it will open the authorisation website in your favourite browser, if possible. If not, it will prompt the URL to console, so you can manually go to the website.
  2. On the website, click allow to authorize the application to access your google calendar. It will give you an access token, which you can paste into your console and hit enter. The application will store your access token in .ngcalsync/user.secrets.

Afterwards the application will synchronize your Google calendar according to your Lotus Notes calendar and log a summary of the changes.

Sensitive data protection

Regardless which kinds of events you choose to synchronize to your Google calendar, the application will never write sensitive data to Google. All event data is obfuscated by setting the title to the type of the event and removing everything but the start and end date and time.

Let’s say, you have an 3 hour meeting with John and Jane at 11 o’clock a.m. on 2001/11/9 in your company’s meeting room at World Trade Plaza, New York, discussing international flight regulations.

When you synchronize this to Google, it will be seen as

Summary Meeting
Starting at 2001/9/11, 11 a.m.
Ending at 2001/9/11, 2 p.m
Description
Attendees

No sensitive data is writte to Google.

Upgrading

Upgrading to a new program version is easy, since the data is separated from the code, so just delete the old code and use the new one.
If there has been a change to the configuration (e.g. a property was added), the program behaves much like on first start. You will be prompted a message which parameters were added and will exit.
You can now verify the new parameters’ defaults and restart.

Bug reporting

Feel free to report bugs. If I have the time, I will look at them, if not, I won’t.

Enjoy!

ngcalsync's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.