← All work
Live

A Voice Agent That Books The Shoot

A conversational AI agent on this site takes the enquiry, then creates the calendar event, emails both sides and pushes a notification to a phone.

This is the engine behind Night Op: every after-hours caller gets answered and captured, and you get a text.

See Night Op — $1,500 setup + $497/month
Built by
Eric Vegas
Started
2026-06-01
Last updated
2026-09-17

The problem

An enquiry that arrives when nobody is at a desk usually turns into a voicemail, and a voicemail turns into a lost booking. Most AI answering services make this slightly better by taking a message, which still leaves a human to do the actual work of checking a calendar and replying.

End the conversation with the appointment already on the calendar and both parties already told, without a person in the loop.

What I built

A conversational agent embedded on the Night Op page, wired to a booking endpoint on a separate application. The endpoint creates a Google Calendar event, sends the customer a confirmation email, sends the operator a details email, and pushes a notification to a phone so a human knows a booking just happened.

How It’s Built

How it works

The agent collects name, contact details, the kind of shoot and a preferred time, then calls a webhook. The webhook requires a shared secret, so the endpoint cannot be triggered by anyone who happens to find it. From there it talks to the Google Calendar and Gmail APIs and fires a push notification. Times are handled in a fixed timezone rather than the caller's, because a booking in the wrong timezone is worse than no booking.

My role

Eric designed the conversation, wrote the booking endpoint and every integration behind it, and wired the two properties together. The speech recognition, the voice and the conversational model are ElevenLabs. Google Calendar and Gmail are Google. What is his is the part that turns a finished conversation into a booking that exists.

The hard part

Not the conversation. The endpoint. A booking webhook is a URL that creates real calendar events and sends real email, so leaving it open means anyone who finds it can fill a calendar with garbage, and there is no user account to rate-limit against. It is gated on a shared secret checked before any work happens. Timezones were the other one: the agent talks to callers anywhere, and a booking resolved against the caller's clock instead of the studio's is worse than no booking at all, so times are pinned to one fixed zone.

Proof

Artifacts

Claims, and what backs each one

  • A conversational AI agent runs on this site and is reachable by anyone who opens the Night Op page.

    EvidenceThe agent widget is loaded on https://www.ericvegas.com/night-op and can be started by any visitor.

  • The booking webhook creates a calendar event, emails the customer, emails the operator and pushes a phone notification.

    EvidenceThe endpoint's source performs all four actions in sequence. It is an authenticated route, so the behaviour is verifiable from the source rather than by an outside request.

  • The endpoint is protected by a shared secret and cannot be triggered by an arbitrary caller.

    EvidenceThe route rejects requests without the expected secret before doing any work.

Results from client deployments are shared with permission on a call.

What I learned

An AI agent is only worth building if the conversation ends in a state change somewhere. Taking a message moves the work; it does not remove it. Every voice project since has been scoped backwards from the write, not forwards from the conversation.

Technologies

  • ElevenLabs Conversational AI
  • Next.js server routes
  • Google Calendar API
  • Gmail API
  • Webhooks
  • Shared-secret auth

Related work

If something here is close to a problem you have, the useful first message is what the thing has to do and what it has to talk to.

See Night Op — $1,500 setup + $497/month