BILL HERTZING · BLOG

Bill's Conversational Musings

Wed 09 September 2026

I Had JARVIS Call a Restaurant


I've been building JARVIS as a chief-of-staff system — memory, vault, judgment, the works. Most of what I show people is conversational: ask a question, get an answer, maybe something gets filed. Useful, but it still feels like a very smart chat window.

This demo was different. I asked JARVIS to call a restaurant and book a table. It actually placed the phone call.

The setup

For the recording, I used a fictional restaurant called Joe's Kitchen. In real life it is a local place we actually go to — but for the demo, the number in my contacts file points at my own cell phone. When JARVIS "calls the restaurant," my phone rings, and I answer as the host.

That let me run the whole thing on camera without bothering a real business during dinner service.

The ask was simple: table for two, tomorrow at seven.

What happened on the call

The first call went the way restaurant bookings often go. Seven was not available. Eight was.

JARVIS did not accept the change on its own. It hung up, came back to me through the speakers, and reported the counter-offer — including a dry line about an hour of my evening now belonging to Joe's ledger. I said yes. It called back, confirmed eight o'clock under the name Hertzing, and closed the loop.

Two calls. One booking. The whole negotiation captured on video.

That two-step loop is deliberate. The phone agent is scoped: it can inquire, it can confirm what I approve, but it does not freelance on time changes or party size. Same approval instinct as the rest of the system — outward actions need a human yes.

Why I liked it

Most voice-assistant demos are inbound. You talk, it responds. This one went the other direction. JARVIS initiated contact with the outside world, handled a small negotiation, and reported back in plain language.

It also showed the personality layer doing actual work. The booking would have succeeded with flat robotic summaries. What made the demo fun — and honestly what made me pay attention during the handoff — was the butler voice treating a one-hour scheduling change like a minor diplomatic incident. That is not decoration. It is how I know I am still talking to the same system I have been shaping for months, not a generic phone tree with a British accent pasted on.

Under the hood (briefly)

Outbound calling runs through scoped Retell agents — a booking script and an inquiry script — adapted from a phone pack I archived in the vault. The booking agent waits for the callee to speak first, never accepts a changed time without checking back, and reads a callback number from config. Every live dial requires an explicit confirm flag. Demo mode strips the meta-commentary so the recording stays in character.

Same family of work as Bare Hands — small demos that prove the system does more than answer questions. The phone piece is one outbound channel among several. The fan on the Arduino desk is still the party trick. This is closer to the product.

What is next

Real restaurant numbers, when I am ready to use them for actual bookings, go into the same contacts file — one deliberate allowlist, not the whole vault exposed to a voice session. Verified caller ID is on the list before I start placing business calls that need to look legitimate on someone's screen.

For now: proof that the bridge works, the personality survives contact with a real phone line, and I can show someone the loop in under three minutes without explaining twelve subsystems first.

Pretty neat stuff.