An OpenClaw skill that makes restaurant reservations by having an AI agent call the restaurant on your behalf using Vapi.
"Hey Boba, book a table for 2 at Rijks tonight at 8pm"
Your AI assistant picks up the phone, calls the restaurant, and books the table.
- You tell your AI assistant you want a reservation
- The skill calls the restaurant via Vapi's phone API
- An AI voice agent speaks with the restaurant staff
- You get a confirmation (or retry suggestion) back in chat
Copy SKILL.md and vapi-call.js to your OpenClaw skills directory:
# In your OpenClaw workspace
mkdir -p skills/vapi-reservation
cp SKILL.md vapi-call.js skills/vapi-reservation/- Create an account at vapi.ai
- Create a phone assistant (see SKILL.md for the recommended prompt)
- Get your API key from the dashboard
Add to your OpenClaw config (env.vars):
{
"VAPI_API_KEY": "your-vapi-api-key",
"VAPI_ASSISTANT_ID": "your-assistant-id",
"VAPI_PHONE_NUMBER_ID": "your-phone-number-id",
"RESERVATION_NAME": "Your Name",
"CALLBACK_NUMBER": "+1234567890"
}Just ask your assistant to make a reservation! The skill triggers on natural language like:
- "Book a table at [restaurant] for [date/time]"
- "Call [restaurant] and reserve a table"
- "Make a dinner reservation for 4 on Friday"
Works without OpenClaw too:
export VAPI_API_KEY="your-key"
export VAPI_ASSISTANT_ID="your-assistant-id"
node vapi-call.js \
--restaurant_name "Rijks Restaurant" \
--restaurant_phone "+31205747450" \
--date "Friday March 13" \
--time "8pm" \
--party_size 2 \
--name "Jane Smith"- Node.js 18+ (uses native
fetch) - Vapi account with a phone assistant
- For international calls: a Telnyx or Twilio number imported into Vapi
| Setup | Calls to | Cost |
|---|---|---|
| No phone number configured | US only (Vapi free number) | Free |
| Telnyx number imported | International | Telnyx rates |
| Twilio number imported | International | Twilio rates |
MIT