Step by step

Your Google Calendar gets a key.

For a program (for example your AI Companion) to be allowed to read and add events in your Google Calendar, it needs a small key file (a JSON file from Google). This page takes you there in 7 steps – no prior knowledge needed.

A Google account (Gmail) A browser (e.g. Chrome or Firefox) About 15 minutes Free – no payment details needed

Before you start: two terms, nothing more

Google Cloud Console
Google's admin page. This is where the key is “ordered”. It looks technical – but you only need a handful of clicks.
Key file (JSON)
The file that comes out at the end. “JSON” is just the file format – like “PDF” or “MP3”. Your Companion reads from it how it may sign in to the calendar.
No worries: You cannot break anything here and nothing costs money. Every step can be undone.
The images are example sketches. Google occasionally changes the look of its pages. Buttons may therefore look slightly different or sit elsewhere – but the terms stay the same. When in doubt, the search bar at the very top of the Google page helps.
1

Sign in to the Google Cloud Console

In your browser: console.cloud.google.com

  1. Type console.cloud.google.com into your browser's address bar and press Enter.
  2. Sign in with your Google account (the same email address as for your calendar).
  3. On your very first visit, Google asks you to agree to the Terms of Service – tick the box, confirm.
🔒 console.cloud.google.com Google Cloud Select a project ▾ G Sign in Use your Google Account Email or phone [email protected] Next 1 · SIGN IN HERE
This is roughly what signing in looks like.
2

Create a new project

At the top in the blue/white bar, to the left of the search

  1. Click the project picker at the very top (it says “Select a project” or shows a project name with a small arrow ▾).
  2. In the window that opens: click “New Project” at the top right.
  3. Type a project name, e.g. calendar-access, and click “Create”.
  4. After a few seconds a notification appears at the top right – click “Select project” there so you are working in the right project.
🔒 console.cloud.google.com/projectcreate Google Cloud Select a project ▾ New Project Project name * calendar-access Location No organization CANCEL CREATE 1 · SELECT A PROJECT 2 · CREATE PROJECT
First the project picker at the top, then enter the name and create.
What is a “project”? Just a folder in which Google manages your key. The name is up to you.
3

Turn on the Google Calendar API

Menu ☰ (top left) → APIs & ServicesLibrary

  1. Open the menu with the three lines ☰ at the top left.
  2. Click “APIs & Services” and then “Library”.
  3. Type into the search field: Google Calendar API and click the result with the calendar icon.
  4. Click the blue “Enable” button.
🔒 console.cloud.google.com/apis/library Google Cloud calendar-access ▾ APIs & Services Library Credentials 🔍 Google Calendar API 📅 Google Calendar API Google Read, create, and manage calendars. ENABLE 1 · ENABLE THE API
Search, click, enable – done.
What is an “API”? The socket through which programs talk to Google Calendar. “Enable” switches this socket on for your project.
4

Create a service account

Menu ☰ → IAM & AdminService accounts (or type “Service accounts” into the search at the top)

  1. Open the “Service accounts” page and click “+ Create service account” at the top.
  2. Name: up to you, e.g. calendar-assistant. Google fills in the ID below automatically.
  3. Click “Create and continue”.
  4. The “Grant roles” step can stay empty – simply click “Continue” and then “Done”.
🔒 console.cloud.google.com/iam-admin/serviceaccounts Google Cloud calendar-access ▾ Create service account Service account name calendar-assistant Service account ID calendar-assistant (automatic) Create and continue Grant roles (optional) – can stay empty Continue Done 1 · CREATE AND CONTINUE
Enter the name, create – no roles needed.
What is a “service account”? A robot account with its own email address. Your Companion uses it to sign in to the calendar – without ever knowing your Google password.
5

Download the key file (JSON)

In the “Service accounts” list: click your new account → “Keys” tab

  1. In the list, click your new service account (calendar-assistant@…).
  2. Open the “Keys” tab at the top.
  3. “Add key”“Create new key”.
  4. Leave JSON selected as the type and click “Create” – the file lands automatically in your Downloads folder.
🔒 console.cloud.google.com/iam-admin/serviceaccounts Google Cloud Details · Permissions · Keys · Metrics Add key ▾ Create new key Create private key JSON (recommended) P12 Create ⬇ Download: calendar-access-1a2b3c4d5e6f.json 1 · CREATE THE KEY
Type JSON, then create – the file downloads on its own.
No need to rename. The file name doesn't matter – what counts is what's inside. Just remember where the file is (usually in the Downloads folder).
6

Copy the service account's address

Back in the “Service accounts” list – “Email” column

  1. Your service account has its own email address. It ends in .iam.gserviceaccount.com.
  2. Copy this address (the ⧉ icon next to it, or select it and press Ctrl+C) – you'll need it in step 7 in a moment.
🔒 console.cloud.google.com/iam-admin/serviceaccounts Google Cloud Service accounts Email Status [email protected] Enabled 1 · COPY THE ADDRESS 💡 The same address is also in the JSON file – right after the word "client_email". Your Companion also shows it to you during setup.
Your calendar will need this robot address in a moment.
7

Share the calendar with the service account

In your browser: calendar.google.com → gear ⚙ → Settings

  1. Open calendar.google.com and click the gear ⚙ at the top right → “Settings”.
  2. On the left, under “Settings for my calendars”, click your calendar.
  3. Go to the section “Share with specific people or groups”“+ Add people and groups”.
  4. Paste the copied service account address and choose “Make changes to events” as the permission → “Send”.
🔒 calendar.google.com/calendar/r/settings Google Calendar · Settings Share with specific people or groups [email protected] Permissions Make changes to events ▾ Send 1 · CHOOSE THIS PERMISSION ⚠️ Without this share, your Companion only sees an empty calendar – this is the most common stumbling block of all!
Enter the robot address, allow “Make changes to events”, send – done.

Done!

Your key file (JSON) is in the Downloads folder, the calendar is shared. Back in your Companion, you now simply select this file under “Set up calendar” – it takes care of the rest itself.

Important: how to handle the file

The file is like a house key. Please don't put it on the public internet, don't post it in forums or chat groups, and don't pass it on to strangers. If you lose the file or have a bad feeling about it: in the Google Cloud Console under “Service accounts” → your account → “Keys”, the key can be deleted and recreated at any time – the old one instantly becomes worthless.

Common stumbling blocks

The Companion only sees an empty calendar

Almost always the share from step 7 is missing: the service account address must be entered under “Share with specific people or groups” – with the permission “Make changes to events”.

I can't find a menu item

Use the search bar at the very top of the Google Cloud Console. Simply type the term from this page, e.g. “Library”, “Service accounts” or “Keys” – Google jumps straight to the right page.

Everything looks different for me than in the images

Google reworks the design regularly, and the images here are simplified sketches. Go by the terms (project, Library, service account, keys, share) – those stay the same.

The page shows up in another language

No problem – the buttons carry almost the same names in every language, and the terms on this page match the English interface one-to-one: “Library”, “Service accounts”, “Keys”, “Share with specific people”, “Create”. The language can also be switched at the very bottom of the page or in your account settings.

Later, “Access denied” appears (error 403)

Check two things: is the Calendar API enabled in the right project (step 3)? And is the calendar shared with the service account address (step 7)?