Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.


Support
Articles News Orbit

Integrating with Google

Where once all roads led to Rome, it now seems as if virtually all data leads to Google, or Google compatibility at any rate.

Orbit Communicator advanced settings – GAPI Connected!

If you create any new software today, you need to accept the likelihood that Users will already have some of their data already connected to Google services, and what you thought was going to be clean and easy, simply isn’t.

Orbit Communicator reached this point about 16 months ago and since then a number of iterations of code have jumped through the various multi-coloured hoops that allow Users to access their own Google-hosted data. This latest version is now available to download: https://orbit.madpenguin.uk/orbit-communicator.

Although it sounds like it should be relatively normal or trivial to exchange emails and calendar events with Google, if for no other reason than lots of third parties do it, there are some scary implications which may not be immediately apparent.

For example, you are using an online service which offers to integrate with your Google calendar and email. Agree to this and what is actually happening under the hood is that the service concerned is being issued a token which gives them access to your calendar and email. Now, while it is true that they have agreed not to abuse that token by reading your email, doesn’t it kind of feel like giving a stranger your front door key with the rationale that they’ll only use it for the intended purpose and not to rob you.

This model, where you essentially waive your privacy, seems to be that preferred by the tech big guys, especially those who claim to be acting in your best interests.

Orbit offers a different paradigm. The user is asked to register a project with their own Google account which yields a set of credentials. These credentials can then be entered into their Orbit installation. From these credentials Orbit can generate it’s own tokens which are not shared with any third party. It’s a little more complex, but the user’s privacy remains in-tact.

There’s a video walking through the process at the end of this article.

Screenshot of the Google account from the walk-through

The remaining part of the puzzle is obtaining changes to Google calendars in real time. Although we use the oAuth2 authentication mechanism for sending and receiving email via Gmail, we’re still using the IMAP and SMTP protocols, which mean that we can use the IDLE facility to wait for new messages. Unfortunately, there is no such facility for the calendar API which requires a public endpoint to receive notifications for changes to events. One solution is to use CloudFlare’s Zero Trust framework free tier to create a virtual endpoint on their network, then use their VPN tool to create a connection to this endpoint. Anything else seems to involve a hosted solution and maybe some token sharing, which doesn’t appeal.

Orbit calendar with events synchronised from a Google calendar

So, look out for (possibly) some CloudFlare integration in the next iteration, or polling, but I would really like to avoid that.

In the meantime, you can click on import anytime to grab anything that’s changed.

About the author

Gareth Bult

Gareth is a long time Linux User and enthusiast and currently works for Mad Penguin Consulting Ltd as a Full-stack / Python developer.