Hey everyone! ๐
I'm back with my second automation project and wanted to drop it here to share my progress with the group. After messing around with the basics, I wanted to tackle something a bit more complex that handles logic, databases, and dynamic calendar scheduling.
I ended up building a fully automated AI Appointment Booking Assistant using n8n. The goal was to move away from rigid, standard booking links and create something that feels like talking to a human receptionist.
Hereโs a look under the hood at how the workflow operates:
โข The Intake Form: It kicks off with a clean booking form where clients drop their contact info alongside their preferred date and time.
โข The AI Gatekeeper: Instead of just blindly booking the time slot, the form data hits an AI Classification node running a local Ollama Chat Model. The AI reads the request text, figures out the service category, determines the priority level, and calculates exactly how long the appointment should last.
โข Live Availability Check: Next, n8n jumps into Google Calendar, grabs all the scheduled events for that day, and runs a check against the AI's time estimation to see if thereโs a real conflict.
โข Scenario A (The Slot is Free): If the time is open, the system automatically creates the Google Calendar event, updates a master Google Sheet CRM tracker, and sends out a stylized email confirmation to the client.
โข Scenario B (The Slot is Taken): If someone else already snagged that time, the workflow doesn't just error out. It actively scans the rest of the business day, identifies up to three open alternative windows, and emails those options to the client so they can easily reschedule.
Getting the condition branches to properly route between successful bookings and fallback suggestions took some trial and error, but seeing the automated emails hit the inbox exactly as planned was incredibly satisfying!
I'm really trying to push what I can do with local LLMs and n8n right now. For those of you who have built calendar workflows before, how do you usually handle complex cancellations or multi-timezone logic?
Would love to get your feedback or ideas on what to optimize next! ๐