Just wrapped up the Calendar AI Agent build โ here's what I built and some things I learned along the way.
The idea: a customer messages in, the agent handles everything from quoting to scheduling to record-keeping โ no human needed.
What I added on top of the base agent:
โ Custom pricing engine that calculates quotes based on service type, home size, add-ons, and surcharges (weekend, same-day, parking)
โ Dynamic scheduling โ the agent uses the estimated job duration from the quote to figure out which time windows actually fit on the calendar. A 4-hour deep clean gets different availability than a 1.5-hour regular clean.
โ 30-minute buffers between bookings so jobs don't overlap
โ Airtable CRM integration โ saves customer info and full booking records automatically
โ Pinecone knowledge base so the agent can answer questions about services, pricing, and policies
โ Owner notification on every new booking
โ Full rescheduling and cancellation flows
Tools: n8n + Google Calendar + Airtable + Pinecone + OpenAI
Biggest lessons:
1. Prompt engineering is where the real work is. Wiring nodes together is the easy part. Getting the agent to actually think correctly โ collecting info in the right order, not double-booking, handling edge cases โ that took 80% of the time.
2. Tool descriptions matter more than you think. If the tool description is vague, the agent will use the tool wrong. I had to be extremely specific about what to pass and when to call each tool.
3. Test edge cases early. I found bugs like: the agent booking the same event twice when the customer confirmed twice, not updating records when customers added info after booking, and trying to schedule on Sundays. Each one needed a specific fix in the prompt.
4. Get the quote before checking availability. This was a design decision that changed everything โ you can't check if a time slot works without knowing how long the job takes. Sounds obvious in hindsight but the original flow had it backwards.
Demo video is attached. Happy to answer any questions about the build.
Let's keep cooking ๐ฅ