Rob Gentul
← All work

Personal build · Booking page

A booking page that never sees my calendar.

Recruiters pick a time at book.robgentul.com. I approve it in Slack. It lands on my calendar. The public page only ever knows open slots.

See it at book.robgentul.com (opens in a new tab)

Role
Product owner and builder
When
October 2026
Status
Live in test mode
Built with
Claude Code, reviewed by Codex
Cloudflare WorkersD1Slack Socket ModeApple CalendarTurnstile
11 of 13Review findings fixed

Each with a test that fails without the fix

177Automated tests

153 on the Mac side, 24 on the Worker

9 of 9Reintroduced bugs caught

Bugs put back on purpose, all caught

1 of 2Same-slot bookings succeed

Two at once: one books, one gets a clear conflict

Visual comingPlaceholder for Rob’s screenshot or diagram.

The problem

I wanted recruiters and contacts to book time with me without handing my calendar to a third party, and without double bookings.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante venenatis dapibus, posuere velit aliquet.

What I owned

Every product call: what the page shows, what it never stores, when I approve, what the emails say. I wrote the rules, Claude Code built them, and Codex reviewed the build.

How it went

Start with what the page must not know

The web side gets open slots only. My Mac reads the calendars and does the real work.

A familiar layout, then make it mine

The first pass followed a Calendly-style layout. Then a restyle: system fonts, forest greens, rounded rectangles.

An independent review found 13 problems

A Codex review flagged issues like replayed confirmations and parallel requests beating the rate limits. 11 were fixed, each proven by a test.

Live, but honestly labeled

It went live in test mode on October 14, 2026. The full live test matrix is next.

How I know it works

  • Race test: two bookings for one slot at once gave one success and one conflict.
  • Background calendar writes verified on a test calendar, including with the Mac locked.
  • Live Slack round trip: card posted, tap arrived, card updated.
  • Emails sent exactly once across a 9-email local test.

What I’d do differently

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante venenatis dapibus, posuere velit aliquet.

Next

Let’s talk.

Questions about this one? Grab 30 minutes.