00 — Setup & Preconditions (read first)
This is the one-time setup a human (Ravi) performs before any Computer Use Test run, plus the per-run verification checklist the agent executes before touching a suite. If any precondition is not met, the agent STOPS and reports it as a precondition failure — it never improvises a login, never connects a calendar mid-run, and never changes global availability outside CU-06.
Target environment for every suite: production https://calendo.dev.
A. One-time setup (human, done once and kept warm)
These do not need redoing every run — they only need to stay valid (sessions logged in, calendars connected, baseline availability present).
A1. Pre-authenticate all browser sessions (no passwords are stored)
The runner's browser must already hold live, logged-in sessions for all of these. A computer-use agent must never perform a cold password login or an OAuth consent mid-run — Google/Microsoft actively challenge bot logins (2FA, "this browser may not be secure", device verification), and Calendo's Google app verification is still pending, so the consent screen shows a "Google hasn't verified this app" warning. A human clicks through these once; the agent reuses the persisted session.
| Session | Account | Where it must be logged in |
|---|---|---|
| Calendo (P1 host) | ravikantguptaofficial@gmail.com | https://calendo.dev/dashboard/ (signed in via "Sign in with Google") |
| Gmail (P1 inbox) | ravikantguptaofficial@gmail.com | https://mail.google.com — host + invitee (plus-alias) inbox for L3 email checks |
| Google Calendar (P1) | ravikantguptaofficial@gmail.com | https://calendar.google.com — L3 calendar checks |
| Calendo + Gmail (P3) | everythingaichannelemail@gmail.com | Calendo + mail.google.com — teammate / separate-invitee inbox (CU-14, CU-05, CU-07) |
| Calendo + Outlook (CU-04) | ravikant0909@outlook.com | Calendo + https://outlook.com (mail + calendar) |
Passwords are never committed to git. They live only in Ravi's password manager / the live browser profile. If a session has expired, the human re-authenticates it before the run — the agent does not.
A2. Connect calendars to Calendo (once)
In Calendo → Settings → Integrations (or the Overview connect chips):
- Connect Google Calendar for P1 (
ravikantguptaofficial@gmail.com). This is the calendar L3 checks read/write. Click through the unverified-app consent: Advanced → Go to calendo.dev. - (For CU-04 only) Connect Outlook calendar for
ravikant0909@outlook.comvia Microsoft OAuth (click through the unverified-publisher warning).
After connecting, the Settings → Integrations panel should show Google Calendar (and Outlook, if used) as Connected, not as a "Connect" call-to-action.
A3. Establish the host baseline that suites assume
Every booking suite computes slots from P1's global availability, so a known baseline must exist:
- Weekly availability: in the Availability tab, set Mon–Fri 09:00–17:00 in a fixed, known timezone (e.g.
America/Los_Angeles). Leave weekends off. (CU-06 will temporarily mutate this and restore it; all other suites assume it is present.) - A default 30-minute event type exists (the stock "30 Minute Meeting" is fine). Individual suites still create their own RUNID-scoped event types, but the booking-UX suites expect at least one bookable event to exist.
- Read the host booking slug: on the Overview tab, the public link is shown in
#bookingLinkValue(e.g.https://calendo.dev/booking/?user=<HOST_SLUG>). Suites read this live; it does not need recording, but confirm it is non-empty.
A4. Conventions the agent must follow
- RUNID: every run mints one fresh unique token (e.g.
20260601a) and embeds it in every created name/slug/email. Record the RUNID at the top of the run's results file. - Plus-alias invitees (all land in P1's Gmail, searchable by RUNID):
- Invitee bookings:
ravikantguptaofficial+inv-<RUNID>@gmail.com - Fresh-account auth suite:
ravikantguptaofficial+auth-<RUNID>@gmail.com - Onboarding throwaway:
ravikantguptaofficial+onb-<RUNID>@gmail.com - Where a genuinely separate invitee/guest inbox is needed, use P3 (
everythingaichannelemail@gmail.com).
- Invitee bookings:
B. Per-run setup verification (agent runs this FIRST, every run)
Run this checklist before executing any suite. If any item fails, STOP and record it as a precondition failure in the results file — do not work around it.
- ☐ P1 Calendo session live — load
https://calendo.dev/dashboard/; the sidebar and#welcomeHeaderrender (you are not bounced to/auth/login.html). - ☐ Host slug readable —
#bookingLinkValueon Overview is a non-empty/booking/?user=...URL. - ☐ Google Calendar connected — Settings → Integrations shows Google Calendar = Connected.
- ☐ P1 Gmail session live —
https://mail.google.comopens without a login prompt. - ☐ P1 Google Calendar session live —
https://calendar.google.comopens without a login prompt. - ☐ Baseline availability present — the Availability tab shows Mon–Fri working hours, and the public booking page shows at least one available day within the next few weeks.
- ☐ A default event type exists — Overview lists at least one bookable event type.
- ☐ (only if running CU-04) Outlook session + connection live.
- ☐ (only if running CU-14) P3 Calendo + Gmail sessions live.
- ☐ RUNID minted and written into the results file header.
If all pass, proceed per README.md §6 (Wave 1 concurrently → Wave 2 = CU-06 alone), or run a single suite. After the run, complete the Cleanup confirmation section of the results file.
C. On precondition failure — what to do
| Failure | Correct action |
|---|---|
| Bounced to login (any account) | Record "session expired — needs human re-auth"; skip dependent suites. Do not attempt a password/OAuth login. |
| Google Calendar shows "Connect" not "Connected" | Record "GCal not connected — L3 calendar checks blocked"; run L1/L2 steps only, mark L3 as blocked. Do not run the OAuth flow. |
| No available days on the booking page | Record "baseline availability missing"; this is a setup gap, not a product bug — fix in A3 and rerun. |
| Outlook / P3 session missing | Mark CU-04 / CU-14 (or the relevant steps) as Blocked — manual residue. |