BookingKoala logo

BookingKoala automation

Create BookingKoala bookings from phone and email requests

Not every customer uses your online booking form. Calls, texts and emails pile up on a notepad, and later someone types each one into the admin Add Booking form.

Cotlet does it in your own BookingKoala account with list_customers, list_providers and create_booking, called by your AI agent, an n8n workflow or a script.

Hosted · nothing to install or maintain

Official options

Can BookingKoala do this on its own?

BookingKoala has no API to create a booking (checked 12 Oct 2026). Zapier's only action, Create Lead, adds a lead rather than a booking, and Make offers triggers only. Customers who book themselves use your online form; requests that arrive by phone, text or email still go through Add Booking by hand.

By hand

How you do it in BookingKoala today

  1. Click "Add Booking" at the top of the left-side menu in the BookingKoala admin or staff dashboard, and pick the industry if the account has more than one.
  2. In the customer details, switch to "Existing Customer" to look the person up, or enter first name, last name and email under "New Customer".
  3. Select the services, then under "Choose Service Provider" use "From Schedule" for an open booking spot or "Manual" for a date and arrival time outside your spots, and assign a provider, pair providers or check "Waiting List".
  4. Add the address with "Use Existing" or a new one, choose "Existing credit card", "New credit card" or "Cash/check", and click "Save Booking"; a caller who only wants a price gets the orange "Save As Quote" button instead.
  5. The pain: every phone request is one full form, a customer search and a schedule check, and requests that come in during a busy afternoon wait until evening or get lost.

With an agent

How to create BookingKoala bookings from phone and email requests

Prompt

Here are this morning's three voicemails. Book each caller in BookingKoala: find existing customers by phone, add new ones with name and email, leave the job unassigned if nobody is free, and save a quote when they only asked for a price.
  1. 01

    Match the customer before creating anyone

    The agent searches list_customers by the phone number or email in the message. One match means it books on that customer_id and offers the saved address. Two matches, such as a couple sharing a phone, make it ask. A new customer is created only when nothing matches, so the customer list does not fill with duplicates.

  2. 02

    Turn the request into your services

    Words like "deep clean, three bedrooms" are mapped to the industry and service names of your booking form. When the message is missing something the booking needs, such as a date, or an email for a new customer, the agent asks instead of guessing.

  3. 03

    Check the day before naming a provider

    list_providers for the requested date shows who has room. A caller who asked for a specific provider gets that provider only if their day allows it. When nobody fits, the agent leaves the provider out so the job waits in the unassigned folder instead of double booking someone.

  4. 04

    Booking, draft or quote

    A firm date with a payment choice becomes a booking. A price question becomes a quote that sits in Bookings > Draft/Quote, ready to send. A half-finished request becomes a draft. Cash/check is used unless the customer has a card on file and said to use it.

  5. 05

    Confirm, then report the IDs

    Each create_booking call waits for your OK, because a new booking reaches the customer and your schedule. Afterwards you get every booking ID with its folder, so you can find the jobs in BookingKoala.

What you get back

Example data

3 requests read, 3 saved
#48377 Sarah Miller (existing), Deep clean, Mon 13 Oct 9:00, Team Blue, card on file
#48378 Omar Haddad (new, omar@example.com), Standard clean, Tue 14 Oct 13:00, unassigned: nobody free
Quote q_3310 Lena Ortiz, Move-out clean, saved in Draft/Quote, not sent
Note: Lena gave no date, so I saved a quote instead of a booking

Other ways to ask

  • Book the customer with phone +1 555 0100 for Monday at 9:00, cash/check, and put the job in the unassigned folder.
  • Save this email as a quote for a move-out clean and do not send it yet.
  • Every evening, read the booking requests forwarded to me today and create a draft for each one, so I can check them in the morning.

Before you automate it

What BookingKoala allows, and what to know first

  • A BookingKoala staff member can use Add Booking only when the "Add Booking" permission is set to "Edit" under Settings > Staff > Staff Members > Options > View > Permission.
  • BookingKoala saves a booking to the calendar only with a customer name, an email, a service selection, a date and time and a payment method; a draft or a quote needs only the customer name and email.
  • In BookingKoala's "From Schedule" mode the provider is set by the Set Priority order or picked through an "Assign Provider" button, depending on "Would you like to select the provider manually or automatically?" in the Scheduling tab.
  • A BookingKoala quote can carry an expiry date, an offer and a reminder email sent up to 31 days after the quote was created, and its Status column shows whether the customer opened, clicked or booked it.

create_booking asks for your OK by default. To run it on a schedule without you, switch confirmation off for that tool in your dashboard.

Sources: BookingKoala Help: Add a booking · BookingKoala Help: My staff member can't add new bookings · BookingKoala Help: Send a quote · BookingKoala Help: Store options Scheduling tab

REST

Call create_booking from a script

curl

curl https://cotlet.dev/api/v1/bookingkoala/create_booking \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"customer":{"customer_id":"1207"},"services":{"industry":"Home cleaning","services":["Deep clean"]},"arrival":"2026-10-13T09:00:00-05:00","payment":"existing_card","save_as":"booking"}'

Example response

{
  "booking_id": "48377",
  "status": "upcoming",
  "folder": "upcoming",
  "arrival": "2026-10-12T09:00:00-05:00",
  "customer": {
    "customer_id": "1207",
    "name": "Sarah Miller"
  },
  "provider": null,
  "payment": "cash_check"
}

MCP: add https://cotlet.dev/mcp/v1 with the same key; the tool is bookingkoala_create_booking. Example data.

Schedule it in n8n, Make, Zapier or cron

Tools

BookingKoala tools this automation uses

Cotlet BookingKoala tools used to create BookingKoala bookings from phone and email requests
Tool Parameters
list_customers query, limit, cursor
list_providers date
create_booking customer, services, arrival, address, provider_id, payment, save_as
All 15 BookingKoala tools with descriptions

Give your agent access to BookingKoala.

Free 7-day trial with 5,000 credits, no card needed. Cotlet is independent and not affiliated with BookingKoala.