The A2A Friend Scheduling project is a sophisticated multi-agent system that demonstrates Google's Agent-to-Agent (A2A) communication protocol for coordinating pickleball game scheduling among friends. This project showcases how autonomous agents built with different AI frameworks can seamlessly collaborate to solve real-world coordination challenges through standardized inter-agent communication.
This multi-agent application demonstrates how to orchestrate conversations between different agents to automatically schedule pickleball games. The system eliminates the manual back-and-forth typically required for group scheduling by having intelligent agents communicate directly with each other to find optimal meeting times and book resources.
Key Capabilities:
- Automated availability checking across multiple participants
- Intelligent conflict resolution and time slot optimization
- Real-time court booking and reservation management
- Framework-agnostic agent communication using A2A protocol
While demonstrated through pickleball scheduling, this system addresses broader business coordination challenges:
Primary Applications:
- Corporate Meeting Scheduling: Automate finding common availability across team members
- Resource Management: Coordinate booking of shared facilities, equipment, or services
- Event Planning: Streamline multi-party event coordination and logistics
- Service Orchestration: Coordinate multiple service providers for complex deliveries
Business Value:
- Reduces scheduling overhead and administrative burden
- Eliminates coordination delays and miscommunications
- Scales to handle complex multi-party scheduling scenarios
- Demonstrates feasibility of autonomous agent collaboration
This application contains four specialized agents that communicate via HTTP endpoints:
- Host Agent (ADK): Central orchestrator that manages the scheduling workflow, checks court availability, and handles final bookings
- Kaitlynn Agent (LangGraph): Manages Kaitlynn's calendar with realistic work-schedule availability patterns
- Nate Agent (CrewAI): Handles Nate's scheduling using CrewAI's task-based agent framework
- Karley Agent (ADK): Lightweight agent managing Karley's calendar and preferences
Each agent runs independently and exposes A2A-compliant APIs for seamless inter-agent communication.
Before running the application locally, ensure you have the following installed:
- uv: The Python package management tool used in this project. Follow the installation guide: https://docs.astral.sh/uv/getting-started/installation/
- python 3.13 Python 3.13 is required to run a2a-sdk
- set up .env
Create a .env file in the root of the a2a-multi-framework-game-scheduler directory with your Google API Key:
GOOGLE_API_KEY="your_api_key_here"
You will need to run each agent in a separate terminal window. The first time you run these commands, uv will create a virtual environment and install all necessary dependencies before starting the agent.
cd kaitlynn_agent_langgraph
uv venv
source .venv/bin/activate
uv run --active app/__main__.pycd nate_agent_crewai
uv venv
source .venv/bin/activate
uv run --active .cd karley_agent_adk
uv venv
source .venv/bin/activate
uv run --active .cd host_agent_adk
uv venv
source .venv/bin/activate
uv run --active adk webOnce all agents are running, the host agent will begin the scheduling process. You can view the interaction in the terminal output of the host_agent.