An open API service indexing awesome lists of open source software.

https://github.com/mjunaidca/appointment-agent

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.
https://github.com/mjunaidca/appointment-agent

appointment-scheduler booking booking-bot composio composiotool gemini-api langchain langgraph reception-hospital

Last synced: 2 months ago
JSON representation

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.

Awesome Lists containing this project

README

        

# 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](https://github.com/panaversity/learn-agentic-ai/edit/main/AGENT_PROTOTYPES) (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

- [x] Connect Google Calendar (Replaceable with any Calendar or CRM)
- [x] Greet Users and Collect basic Info
- [x] Check for Available Time Slots for the Dental Clinic (Can be any Business)
- [x] Suggest TimeSlots and Confirm the final One with User
- [x] Schedule Booking in Google Calendar
- [x] Create a save a Draft Email in Gmail (Replaceable with any Mail Service)
- [x] 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:
```bash
composio add googlecalendar gmail
composio triggers enable GMAIL_NEW_GMAIL_MESSAGE
```

### Local Setup

1. **Clone the repository:**

```bash
git clone https://github.com/...
cd ...
```

2. **Create a `.env` file:**

```bash
cp .env.example .env
```

Update the environment variables as needed.

3. **Run LangGraph Server:**

#### Using Docker

- Install Docker Desktop
- Open Docker Desktop
- Run container:
```bash
docker compose up
```
- Or run in detached mode:
```bash
docker compose up -d
```

4. **Access LangGraph Studio**
- Open [LangGraph Studio](https://smith.langchain.com/studio/thread?baseUrl=http%3A%2F%2F127.0.0.1%3A8123)

### Development

**Applying Changes:**

1. Stop the container:
```bash
docker compose down
```
2. Restart the container:
```bash
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:

```bash
pip install uv
```

2. Create and activate virtual environment:

```bash
uv venv
source .venv/bin/activate
```

3. Install packages from pyproject.toml:

```bash
uv run
```

4. Run LangGraph Server:
```bash
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`:

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