Google Calendar & Google Meet

The Google Calendar integration enables two-way synchronization: LockMyCal automatically reads your existing events to check availability and creates an event in the calendar for every new booking.

Google Meet video calls are a separate connection in Integrations → Video – but both connections use the same project and OAuth client described below.


1. Creating a project in the Google Cloud Console

  1. Open the Google Cloud Console and sign in.
  2. Create a new project (e.g. LockMyCal Calendar).
  3. In the left menu, go to APIs & Services -> Enabled APIs & Services and click + ENABLE APIS AND SERVICES.
  4. Search for and enable, one after another:
    • Google Calendar API
    • Google Meet REST API (only if you want to use Google Meet)

  1. In the left menu, go to APIs & Services -> OAuth consent screen.
  2. Choose the user type:
    • Internal (if you use Google Workspace and want access only for your company).
    • External (for ordinary Google / Gmail accounts).
  3. Fill in the App name (e.g. LockMyCal), User support email and Developer contact email.
  4. In the Scopes step, add these permission scopes:
    • .../auth/calendar.events (reading and writing events)
    • .../auth/calendar.calendarlist.readonly (the list of your calendars)
    • .../auth/meetings.space.created (only for Google Meet)
    • email and profile (only for signing in with a Google account)

3. Creating an OAuth 2.0 Client ID

  1. Go to APIs & Services -> Credentials -> + CREATE CREDENTIALS -> OAuth client ID.
  2. As the Application type, choose Web application.
  3. As the Name, enter LockMyCal Server.
  4. In the Authorized redirect URIs section, add the exact URIs for your domain:
    • Calendar sync: https://calendar.yourdomain.com/auth/google/calendar/callback
    • Meet video conferencing: https://calendar.yourdomain.com/auth/google/video/callback
    • SSO sign-in (optional): https://calendar.yourdomain.com/auth/google/callback
  5. Save and copy the generated Client ID and Client Secret.

4. Configuration in LockMyCal

Put the obtained credentials into your .env file:

GOOGLE_CLIENT_ID=1234567890-abcdefgh.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=GOCSPX-insert_your_client_secret
GOOGLE_STATE_SECRET=random_string   # openssl rand -base64 32
# Only if you also want to sign in with a Google account:
ENABLE_GOOGLE_AUTH=true

After restarting the container (docker compose up -d), go to Integrations → Calendars → Connect calendar in the dashboard and choose Google.