Skip to content
AI agent projects

TURNO · Booking and appointment agent

A conversation can become an organized appointment

A custom-code prototype for an appointment agent: service rules, available times and local booking confirmation. Explore how the automation works and how it could connect to Google Calendar.

Own prototype · Custom code · Guided demo

What problem would it solve?

Booking requires more than finding a free calendar cell: service duration, business hours, buffers and existing appointments must agree. The proposed agent would guide that process through conversation.

Availability with rules

30- and 60-minute services, business hours, occupied blocks and 15-minute buffers are implemented in TypeScript.

Explicit confirmation

The selected time is checked again before recording the sample booking. Occupied times stop being available in this view.

An external calendar adapter

The code includes separate Google Calendar availability and event-creation adapters with server-side authorization.

01 / User experience

Explore the prototype

Open full view

The interface executes local business rules with sample data. Its responses are guided; AI inference and external services are not active.

T

TURNO/ Appointments

Custom software · Interactive prototype

Digital consulting · Example business

Sample week · November 2026

Available times

America/Mexico_City · UTC−06:00

No personal information is requested. Bookings stay in this view until reset or reload.

TURNO · Booking summary

Choose a time. I will check the service rules before recording the sample appointment.

30 min/2026-11-10/11:30

Execution trace

  1. Service rules loaded

    30 min · 15 min buffer

  2. Sample agenda checked

    Opening hours and occupied blocks are applied.

  3. Available slots calculated

    The slot is checked again before confirmation.

Google Calendar API v3Adapter only

Guided scenarios with sample data. Rules run in your browser; no AI model or external account is connected. Reset clears this demo.

The automation, step by step

  1. 01

    Service and date

  2. 02

    Business rules

  3. 03

    Availability

  4. 04

    User confirmation

  5. 05

    Booking record

TypeScriptReactNext.jsFetch APIJSON Schema

02 / Behind the interface

Real code, with each connection explained

These excerpts are extracted from this project's source files at build time. Each tab identifies whether the code runs in the demo or belongs to an adapter awaiting connection.

lib/agent-prototypes/booking.ts

Runs in the demo

Business hours, occupied intervals, service duration and buffers determine which times are offered.

export function availableSlots(date: string, duration: number, bookings: DemoBooking[]) {
  if (!demoDates.some(day => day === date) || ![30, 60].includes(duration)) return []
  const busy = [{ start: 10 * 60, end: 11 * 60 }, ...bookings.filter(b => b.date === date)]
  return Array.from({ length: (close - open) / 30 }, (_, index) => {
    const start = open + index * 30
    const end = start + duration
    const available = end + buffer <= close && !busy.some(event =>
      overlaps({ start, end: end + buffer }, { start: event.start, end: event.end + buffer }))
    return { start, end, available }
  })
}
Read the complete file on GitHub

Connections and implementation status

Prototype connection status
ComponentResponsibilityCurrent status
Booking engineIntervals, buffers and validationImplemented in the demo
Booking recordIn-memory state in the current viewImplemented; cleared on reload
Google Calendar API v3freeBusy and events adaptersPrepared; no account connected
AI modelJSON Schema tool contractsDesigned; no model connected

API references reviewed on 21 October 2026: Google Calendar · freeBusy · Google Calendar · events.insert

Actual TURNO prototype interface with service selection, available times and booking summary
Actual screenshot of the implemented prototype. Sample data; no client results or live integrations are represented.

Would you like this adapted to your operation?

We can define your business rules, connect your tools and develop a complete agent around your actual process.
Tell me about your project