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
- Open the Google Cloud Console and sign in.
- Create a new project (e.g.
LockMyCal Calendar). - In the left menu, go to APIs & Services -> Enabled APIs & Services and click + ENABLE APIS AND SERVICES.
- Search for and enable, one after another:
- Google Calendar API
- Google Meet REST API (only if you want to use Google Meet)
2. Setting up the OAuth Consent Screen
- In the left menu, go to APIs & Services -> OAuth consent screen.
- Choose the user type:
- Internal (if you use Google Workspace and want access only for your company).
- External (for ordinary Google / Gmail accounts).
- Fill in the App name (e.g. LockMyCal), User support email and Developer contact email.
- 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)emailandprofile(only for signing in with a Google account)
3. Creating an OAuth 2.0 Client ID
- Go to APIs & Services -> Credentials -> + CREATE CREDENTIALS -> OAuth client ID.
- As the Application type, choose Web application.
- As the Name, enter
LockMyCal Server. - 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
- Calendar sync:
- 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.