For IT administrators

What OpenCalendar asks of your organisation, on one page.

Someone in your organisation wants to connect their work calendar to OpenCalendar. This page says what the app is, the permissions it requests, where the data goes, and how to approve or remove it.

Status. The Google connection is built and is waiting for Google’s review. The Microsoft connection is built and is waiting for the app’s registration with Microsoft. Where an identifier below is not yet issued, this page says so.

What it is

OpenCalendar is a calendar and scheduling app that runs in the user’s browser. A user publishes a scheduling link; guests pick a time that the user’s calendars show as free. It is open source (MIT or Apache-2.0) and free, with no per-user licence, and it needs no account with us.

It differs from a hosted scheduling service in one way that matters to you: no server of ours receives or stores your users’ calendar data or their sign-in tokens. The app reads the calendar from the browser, and keeps what it reads in that browser.

Microsoft 365

Application (client) IDNot issued yet. It will be shown here once the registration is complete.
PublisherPublisher verification is not complete yet.
PermissionMicrosoft Graph, delegated: Calendars.ReadWrite. Nothing else. (offline_access accompanies any delegated permission.)
Application permissionsNone. The app can act only as a signed-in user, on that user’s own calendars.
Sign-inSingle-page application, authorisation code with PKCE, directly between the user’s browser and Microsoft. No client secret exists.

Why that permission

Approving it for your organisation

If your tenant does not let users consent to calendar permissions themselves, the user sees “needs admin approval” and the app gives them an approval link to send you. It has this form:

https://login.microsoftonline.com/{your-tenant-id}/v2.0/adminconsent
  ?client_id={application-id}
  &scope=https://graph.microsoft.com/Calendars.ReadWrite
  &redirect_uri=https://opencalendar.me/app/

You can instead grant consent for specific users or groups in the Microsoft Entra admin centre, under Enterprise applications.

Removing it

Delete the application under Enterprise applications in the Microsoft Entra admin centre, or revoke its permissions there. Users’ tokens stop working, and the app can no longer read or write any calendar in your tenant.

Google Workspace

OAuth client IDNot issued yet. It will be shown here once Google’s review is complete.
Scopeshttps://www.googleapis.com/auth/calendar.calendarlist.readonly
https://www.googleapis.com/auth/calendar.events
WhyTo list the user’s calendars; to read events so they can be shown and counted as busy; to write the events for bookings made through the user’s links, with a Meet link
Sign-inAuthorisation code with PKCE. Google requires a client secret to complete and renew it, which is added by a stateless helper; see below

To allow or block it, use API controls in the Google Admin console (Security, Access and data control, API controls) and find the app by its client ID. Removing its access there stops the app reading or writing any calendar in your organisation.

OpenCalendar’s use of Google user data is described in the privacy policy under Google user data, including its Limited Use statement.

Where your users’ data goes

DataWhere it isWho can read it
Calendar events read from the accountThe user’s browser storage, on their deviceThe user
Access and refresh tokensThe user’s browser storage. Google tokens pass through the helper in transit when a sign-in is completed or renewed; Microsoft tokens do notThe user
Busy times for a published link: start and end only, no titles or attendeesEncrypted in the browser, then stored on a relayPeople the user gave the link to
The optional account, only if a user signs in to itOur account server: the identity the user signed in with, a credit balance and its history, and a record of sessions. No calendar data, no calendar tokensThe user, and us
A guest’s name, email address and answersEncrypted to the user’s key on the relay; then the user’s browser, and the event written to the user’s calendarThe user

The relay stores ciphertext and holds no key to it. The helper has no database, writes no file and logs no address, token or body. Both are described in full in the documentation and the privacy policy, and both can be run by your own organisation instead.

Things to weigh: calendar data and tokens are held in the browser profile of each user who connects, so they are as protected as that device and profile are; and anyone a user gives a scheduling link to can see when that user is busy, though never why.

The app’s own optional account

Separately from any calendar connection, the app has a round button at its top right that opens an optional account shared by our apps. It is not needed to connect a work calendar, it unlocks nothing in OpenCalendar, and no calendar data or calendar token is sent to it.

A user can choose Google as the way to sign in to that account. That is a different request from the calendar connection above: Google shows a consent that asks only for the user’s name and email address, with no calendar permission, and it goes to our account server at auth.opencalendar.me. Blocking it has no effect on the calendar connection, and approving the calendar connection does not approve it.

If the answer is no

A user whose organisation does not approve the app can still be scheduled with. They can publish their busy times from a calendar address they follow or from an exported calendar file, which needs no permission in your tenant.

Questions

There is no contact address for security or compliance questions yet. The support page will show one when there is.