Documentation · Services

Your appointments in Google Calendar.

Every appointment booked on the site goes into your Google Calendar; and, if you wish, your Google events close the site's slots they overlap. Allow about ten minutes the first time.

How it works

JEIKO connects to Google Calendar through a service account: a “robot” account that writes in your calendar without ever knowing your password. You create it in Google Cloud, share your calendar with it, and give its key to JEIKO.

1 — Create a Google Cloud project

  1. Open console.cloud.google.com with the Google account that owns the calendar.
  2. Project picker › New project, name it (“Site calendar”), then Create.

2 — Enable the Google Calendar API

Menu ☰ › APIs & Services › Library, search for Google Calendar API, then Enable.

3 — Create the service account and its key

  1. APIs & Services › Credentials › Create credentials › Service account. Name it (“jeiko-calendar”), then Create and continue, then Done: no role is needed.
  2. Open that account › Keys tab › Add key › Create new key › JSON. A .json file downloads.
  3. Note the service account's address, like jeiko-calendar@your-project.iam.gserviceaccount.com.

This file holds a private key. Never send it by email or chat, and delete it once pasted into JEIKO. If in doubt, delete the key in Google Cloud and create a new one.

4 — Share your calendar with the service account

  1. In Google Calendar, hover over the calendar › ⋮ › Settings and sharing.
  2. Share with specific people › Add people: paste the service account's address, with the permission Make changes to events.

5 — Get the calendar ID

Still in Settings and sharing, section Integrate calendar: copy the Calendar ID — your Gmail address for the main calendar, or a value ending in @group.calendar.google.com for a secondary one.

6 — Enter it in JEIKO

  1. Administration › Appointments › Google connection.
  2. Paste the whole content of the JSON file (from the opening brace to the closing one) and the calendar ID, then save. The key is encrypted in the database and never shown again.
  3. Optional: tick Block my slots when my Google calendar is busy. Every 30 minutes, your events for the next 90 days close the site's slots they overlap; the sharing from step 4 must then give access to event details.
  4. Optional: the daily summary of the next day's appointments, every evening at the time you choose.

Troubleshooting

  1. Error 404: the calendar ID is wrong, or the calendar was not shared (step 4).
  2. Error 403: the Calendar API is not enabled (step 2), or the service account only has read access.
  3. A service account cannot invite attendees on a personal Gmail calendar: the appointment is created without an invitation, and the confirmation is emailed by the site.

All servicesAppointment guide