All Projects
AI Agent

Smart Scheduler

Voice-enabled AI scheduling assistant that connects to Google Calendar and handles meeting bookings through natural conversation.

TypeScriptNext.jsGemini 2.5 FlashGoogle Calendar APIWeb Speech APIOAuth2Vercel
GitHub Repo Live Demo

Problem

Scheduling meetings is tedious — it requires checking availability, back-and-forth messaging, and manual calendar management. There was no simple, conversational way to just say 'book a meeting next Tuesday' and have it done automatically.

Solution

Built Maya, an AI scheduling agent powered by Gemini 2.5 Flash that integrates directly with Google Calendar via OAuth2. Users can type or speak naturally to schedule, check, and manage events. The agent uses tool calling to check real availability, resolve conflicts, and create events — all in a stateful conversation with sub-800ms response times.


What I Built

  • Designed and built Maya, a conversational AI agent that acts as a personal scheduling assistant
  • Integrated Google Calendar API v3 with OAuth2 for real-time availability checking and event creation
  • Implemented voice I/O using the Web Speech API for both speech-to-text input and text-to-speech responses
  • Built three calendar tools for the LLM: get_available_slots, create_calendar_event, and get_event_by_name
  • Engineered complex time parsing to handle natural language like “next Tuesday afternoon” or “sometime this week”
  • Deployed to Vercel with stateful conversation context and fast API routes

Key Features

  • Natural language scheduling — just say “schedule a 30-minute call with Sarah on Friday” and it handles the rest
  • Voice input & output — hold the mic button to speak; Maya responds aloud
  • Conflict resolution — checks existing events and suggests alternative times when there’s a clash
  • Google Calendar sync — live read/write access to your actual calendar via OAuth
  • Stateful conversations — remembers context throughout the conversation thread
  • Sub-800ms responses — fast, fluid interaction powered by Gemini 2.5 Flash

Technical Implementation

  • Next.js API routes for serverless backend handling calendar operations and LLM calls
  • Gemini 2.5 Flash as the reasoning engine with structured tool-use for calendar actions
  • Google Calendar API v3 for event CRUD operations and availability queries
  • OAuth2 flow for secure, user-authorized calendar access
  • Web Speech API for browser-native STT and TTS without third-party dependencies
  • TypeScript throughout for type safety across the full stack

Takeaways

Building Maya pushed me deep into LLM tool-calling patterns — specifically how to design tool schemas that give the model enough context to make good scheduling decisions without hallucinating times or double-booking. The hardest part was handling ambiguous natural language (“sometime next week”) in a way that felt smart, not frustrating. I also learned a lot about OAuth flows for production apps where real user data is involved.