The question
On the n8n forum, people building AI receptionists keep hitting the same three walls: Vapi says "No result returned", the agent books a time that was already taken, and two callers both get the last slot.
Example: @imel, Nov 29, 2025: "The check_availability custom tool keeps returning "No result returned" error in VAPI." Thread. @RodrigoSyncData, Nov 13, 2026: "two callers asking for the last slot at the same moment can both get it." Thread.
How the workflow handles it
- Always answers HTTP 200 in the shape Vapi reads:
results,toolCallId, one flat string. - Re-reads the calendar right before it writes. Taken means nothing is booked and other times are offered.
- Reads the slot back after it writes. If two landed at once, the earliest wins and the other deletes itself.
- A retried call gets the same confirmation code, not a second booking.
Get the free n8n workflow on GitHub. Want it set up on your number? Text SETUP to (470) 779-2869
Try it: Tuesday, Nov 17
Fake clock: Monday, Nov 16, 9:30 AM Eastern. Open 9 to 5, lunch 12 to 1, one hour slots. The owner already has 9 AM blocked.
Tuesday's calendar
Last answer sent back to the voice agent (Vapi format):
Press a button.
Sandbox log
Nothing yet. Start with Alex checks Tuesday, or press the two callers button.
| # | Who | Result | What the agent hears |
|---|