Google Calendar
Purpose
Use this checklist when changes touch gigs, user settings, Google OAuth, or Calendar sync behavior.
Preconditions
- You can sign in to the environment being tested.
- Google Calendar OAuth is configured for the environment.
- The Calendar sync worker or scheduled job is running for deployed environments.
Connect Calendar
Automation: Environment/manual UAT: OAuth consent and real Google Calendar connection need an environment check; backend integration rules have API coverage.
Steps
- Open user settings.
- Click
Connect Calendarand complete the Google OAuth consent flow. - Return to user settings.
Expected Results
The Google Calendar card shows as connected. Glovelly creates or reuses a dedicated Glovelly Gigs calendar. Calendar updates are asynchronous and may take a few minutes to appear.
Gig Eligibility
Automation: Backend automated; manual UAT:
Glovelly.Api.Tests.GoogleCalendarIntegrationModelTestscovers eligibility and sync planning; real Calendar event visibility remains manual.
Steps
- Create or identify one
Confirmedgig, oneCompletedgig, oneDraftgig, and oneCancelledgig. - Wait for the scheduled Calendar sync to run, or ask an engineer to run the Calendar sync worker for the environment.
- Open the
Glovelly Gigscalendar in Google Calendar.
Expected Results
Confirmed and completed gigs appear as all-day events. Draft and cancelled gigs do not appear. If a previously synced gig is moved to cancelled, its Calendar event is removed during sync.
Delayed Updates
Automation: Environment/manual UAT: asynchronous worker timing and real Calendar updates need an environment check; queue and processor rules have backend coverage.
Steps
- Edit the title, date, venue, or status of a synced gig.
- Open user settings and review the Google Calendar card.
- Wait for the scheduled Calendar sync to run.
Expected Results
The user settings card may show pending Calendar work before the worker runs. The Calendar event updates after the scheduled sync completes; users are not expected to trigger the worker manually from the app.