Skip to content

A modular and AI-powered appointment booking agent designed to streamline scheduling for businesses, starting with dental clinics. Built with LangGraph, Composio, and Bland.com, it integrates Google Calendar and Gmail to manage appointments, send confirmations, and handle voice interactions.

License

Notifications You must be signed in to change notification settings

mjunaidca/appointment-agent

Repository files navigation

Appointment Booking Agents Vertical Starter Kit

A modular and AI-powered appointment booking agent designed to streamline scheduling for businesses, starting with dental clinics. Built with LangGraph, Composio, and AI Telephony, this agent integrates Google Calendar and Gmail to manage appointments, send confirmations, and handle outbound phone calls.

Users can check available time slots, confirm bookings, and receive queue updates via email, call, or message. The system is highly customizable, supporting alternative CRM, mail services, and voice providers like Twilio or Vapi. Deployed on Vercel and LangGraph Cloud, with robust testing via LangSmith and LLM unit tests.

Tech Stack:

  • Agent : LangGraph, Composio (Tools Library), Voice Orchestrator (Bland.com)
  • LLMs: Gemini-2.0-flash-exp
  • Interface (NextJS15)
  • Deployment (Vercel, LangGraph Cloud)
  • Tests (LangSmith, LLM Unit Tests Code.)
  • Development (IDE: VS-Code/Cursor) + Google Collab + Docker
  • SCM [GitHub] panaversity/learn-agentic-ai/AGENTIC_PROTOTYPES/appointments_agent (We will be actively develping it further here in this repo in live Agentic AI sessions.)
  • CRM/Calendar/System [Google Calendar, Gmail]

User Story

  • User Wants to Book an Appointment with Dentist Clinic
  • Share available time schedule (i.e: Monday 09-06 PM)
  • At what time can I come and my preferences are 4 PM DATE.
  • User wants to know about Wait Time and Queue Number.
  • User Booking Confirmation (email/phone call)

Features

  • Connect Google Calendar (Replaceable with any Calendar or CRM)
  • Greet Users and Collect basic Info
  • Check for Available Time Slots for the Dental Clinic (Can be any Business)
  • Suggest TimeSlots and Confirm the final One with User
  • Schedule Booking in Google Calendar
  • Create a save a Draft Email in Gmail (Replaceable with any Mail Service)
  • Confirmation Call after Booking Appointment using Bland API (Just replace the function call with any providor of your choice)
  • Cron Job to schedule calls
  • Change TimeZone from UTC to User Specific
  • Add Voice Modality with providers (Twillio, Vapi, Bland)

Pending User Stories

[ ] Business Active Hours [ ] Queue Number and Wait Time Flow [ ] If email is invalid or if phone don't dials try again later -- If not confirmed priority customer can take slot.

Directory Structure

  • All prototyping notebooks are in the prototypes directory
  • All final agents live in the src directory

Getting Started

Prerequisites

  1. Docker
  2. Composio, Google AI Studio and LangSmith API Key
  3. Setup the following either in Composio dashboard or through CLI/Jupyter Notebook:
    composio add googlecalendar gmail
    composio triggers enable GMAIL_NEW_GMAIL_MESSAGE

Local Setup

  1. Clone the repository:

    git clone https://github.com/...
    cd ...
  2. Create a .env file:

    cp .env.example .env

    Update the environment variables as needed.

  3. Run LangGraph Server:

    Using Docker

    • Install Docker Desktop
    • Open Docker Desktop
    • Run container:
      docker compose up
    • Or run in detached mode:
      docker compose up -d
  4. Access LangGraph Studio

Development

Applying Changes:

  1. Stop the container:
    docker compose down
  2. Restart the container:
    docker compose up -d
    Note: Changes outside the src directory require rebuilding the image.

Alternative Setup Methods

A. Using LangGraph CLI

  1. Install uv package manager:

    pip install uv
  2. Create and activate virtual environment:

    uv venv
    source .venv/bin/activate
  3. Install packages from pyproject.toml:

    uv run
  4. Run LangGraph Server:

    uv pip install langgraph-cli
    uv run langgraph up

    Note: If you encounter errors, stop all containers, run docker system prune, and try again.

B. Using Google Gemini Instead of OpenAI

To switch models, update line 26 in configuration.py:

# From:
default="openai/gpt-4o"
# To:
default="google_genai/gemini-1.5-flash"

About

A modular and AI-powered appointment booking agent designed to streamline scheduling for businesses, starting with dental clinics. Built with LangGraph, Composio, and Bland.com, it integrates Google Calendar and Gmail to manage appointments, send confirmations, and handle voice interactions.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published