such wow doge
Published on

Can ChatGPT Agent book a hotel? Yes.

Authors

Can ChatGPT Agent do this?

Please book a Gatwick airport hotel for October 14th.

Specifically: can it consider my preferences and select the hotel that I would have chosen?

In short: yes. Will I actually use it? Borderline, but yes.

Screenshot of ChatGPT Agent booking a hotel

How to make this work

To efficiently delegate to a human assistant, you need to write detailed instructions. Same goes for an AI agent.

Further reasons that ChatGPT Agent needs instructions:

  1. Without guidance, the agent is likely to search many different websites. For each new website, it has to figure out the UI. It usually succeeds, but it can take a fair bit of trial and error. So it ends up running for 20+ mins. And at that point it starts crashing.

  2. UK banks currently block ChatGPT from starting the "3D Secure" payment authentication flow 1. Probably US banks do too.

If you just say the "Please book a hotel for date X at venue Y", the process will—at best—take longer than searching yourself. At worst it'll fail because the agent tries to book via a website it can't handle.

You need to give instructions like this:

# Travel Assistant — hotel booking rules ## Modes * **Find mode (default when I ask to “find”, "search" or “compare”):** do not log in or book. Return a comparison table as specified in **Find mode — output**. * **Booking mode (when I explicitly ask to “book”, “go ahead and book”, or similar):** log in and book the top-ranked option per these rules. Do not show a table first. Return a booking confirmation summary. ## Authentication & security * Only log in to Booking.com in **Booking mode**, using my stored credentials. Never display or request passwords or card numbers. ## Shared rules (apply to both modes) ### Inputs to collect (or infer from context) * Destination (city/airport). * Duration: assume **1 night** unless I specify otherwise. * Occupancy: assume **1 adult, 1 double bed** unless I specify otherwise. * Budget guidance if I provided one; otherwise aim for best value per the ranking rules. ### Search & filters (Booking.com) * Property type: **Hotel only** (exclude guesthouses/apart-hotels/hostels). * Review score: Booking.com average **Very good: 8+** with **≥ 200 reviews**. * If nothing matches, relax to **Good: 7+** with ≥ 200 reviews, and notify me. * Room facilities: air conditioning. * Facilities: fitness center (gym). * Compare using **total price including taxes/fees** for the full stay in **GBP** (OK if charged in local currency at payment). * Ignore **free cancellation** as a factor unless I explicitly ask for it. ### Airport-specific rules * **London Gatwick (LGW):** prioritise **North Terminal** hotels. If unavailable, choose the **shortest total transfer time** to North Terminal (state minutes and method). * **Other airports:** prefer **on-terminal or covered-walk properties**. If none, choose within **20 minutes walk**. State transfer time and method. ### Ranking & selection 1. Apply the filters above. 2. Rank by **lowest total price (incl. taxes/fees)**. 3. If multiple options are within **£30** of the cheapest: * pick the **highest rating**; * if still tied, pick **shortest walking transfer** (airport stays) or **closest to target location** (city stays); * if still tied, pick **greater review count**. ### Edge cases & errors * If Booking.com is unavailable or login fails: report the issue and await instructions (do not use an alternative site without permission). * If no hotel meets the minimum rating after relaxing to 7.0: present the best 3 with a clear warning and ask how to proceed. * If currency conversion creates ambiguity in tie-breaks, recalc using GBP and note the source rate. ### Defaults * Occupancy: 1 adult, 1 double bed. * Breakfast: indifferent unless I specify; choose cheaper rate if price difference ≥ £15 per person per day. ## Find mode — output * Always return a **comparison table** of the top options (aim for **8** rows if available; show all if fewer). * **Columns (in order):** * *Hotel* (link to Booking.com listing) * *Terminal/distance or transfer* (minutes + method for airport stays) * *Total price (incl. fees) in GBP* (and local currency in brackets) * *Rating* (e.g. 8.6/10) * *Room type* (e.g. “Double room with ensuite, AC”) * *Cancellation* (e.g. “Non-refundable” or brief deadline) * *Notes* (e.g. “City tax paid at property”, “Resort fee”, “Walkway”) * **Sorting:** by *Total price (incl. fees)* ascending. Apply the tie-breakers above. * Do **not** book in Find mode. ## Booking mode — behaviour * Triggered only when I explicitly instruct you to **book**. * Book the **top-ranked** option that satisfies all rules and **total stay ≤ my stated budget** (if provided). * Payment method: if possible, select "pay at property". Otherwise, use my **default saved payment method** on Booking.com. * If the chosen option becomes unavailable at checkout: * auto-fallback to the next ranked option **within £30** of the original and with the same or better rating threshold; otherwise stop and report best alternatives (do not book). * At the "confirm payment" step, pause and: * Provide a link to the listing of the hotel you are booking. * Provide a link to each of the three runner-up options, and explain why they are not as good. * Provide a link to the full booking.com search results. * Ask me to confirm before going ahead. * After booking, return a **confirmation summary**: * *Hotel*, *dates*, *total price (incl. fees)*, *rate type* (cancellable/non-refundable + deadline), *transfer notes* (if airport), *booking reference*.

Critical features of these instructions:

  1. They specify Booking.com.
  2. They use the exact Booking.com filter names. This helps the agent find them more quickly.
  3. They use my Booking.com account, so credit card authentication is not required. 2

I ran this prompt three times. Each time it correctly chose my preferred option at Gatwick Airport, and browsed all the way to the "enter CVC to confirm booking" screen, where it asked me to take control.

Each run took 5-10 minutes.

I also tried this for Stanstead airport, again with success.

Finally, I tried this for Reykjavík, with a small addition to my default preferences:

Please book a hotel in downtown Reykjavik for two adults for two nights from October 21st. I prefer the west side of town.

On the first run, it failed to find any hotels that met my criteria. The issue was that hotels in Reykjavík mostly don't bother mentioning that they have air conditioning, so that filter ruled out all the options that had a gym.

I asked it to try again without the air conditioning requirement. The results were excellent! I know the west side of Reykjavík very well, but its top choice was a hotel I didn't know, and that was solidly better than the other options. Nice.

Screenshot of ChatGPT Agent booking a hotel in Reykjavík

Issues

  1. In Agent mode, ChatGPT ignores "project instructions". So you need to paste the instructions into the chat window each time. 🤦
  2. As mentioned above: the "3D Secure" payment authentication flow will probably be blocked by your bank.
  3. Minor inaccuracies: on one run, the agent reported a hotel as four stars when it was actually three. On another, it reported a 100 yard walk to the terminal when it is actually 5 minutes. This makes me nervous—what caused these errors? 3 Might it make sometimes make important mistakes?
  4. You can only trigger ChatGPT Agents via the chat window (not via e.g. Zapier). For frequently repeated use cases (e.g. refund a customer), this would be annoying (I'd try Lindy.ai instead).

For finding hotels, why not use ChatGPT 5 instead of ChatGPT Agent?

Only the Agent can click buttons to check prices and availability for a given date.4

Will I use this?

Yes, because it's an interesting capability eval.

If I exclude that motivation, the answer is "borderline yes, for places I don't know". Here's what that'd look like:

  1. I'll make the request.
  2. I'll do other tasks while I wait.
  3. I'll check the top suggestion by reading the listings for the hotel it suggests, and the two runner ups. I'll also glance at the full Booking.com search results.5
  4. If the suggested option is good, I'll click "take control", enter the CVC code, and press "confirm booking". Otherwise, I'll book something else via my regular browser.

I've booked more London airport hotels than I care to remember, so for those it just wouldn't save me any time.

I wasn't expecting this to work as well as it did. In particular, the UI navigation was much faster and more reliable than previous computer use demos I've played with.

Footnotes

  1. "3D Secure" is the thing where you have to verify with your phone. Some websites skip this flow after the first purchase.

  2. On the first run (but not subsequent runs), the agent prompts me to take control and login to booking.com.

  3. My guess: hallucination. For some reason, the agent doesn't manage to extract the info while browsing. Then, when writing up the answer, it choses the next token based on its pre-trained knowledge. Often that works out fine, since the training data contained the info. But sometimes it won't, and then you get the hallucination.

  4. GPT-5 Thinking gave a good list of hotels, but was unable to get availability or prices for a specific date. It took 10 minutes. GPT-5 Pro gave an excellent answer, but did not check live prices. It explained that it's unable to press buttons. GPT-5 Pro with Deep Research gave a solid answer, but it wasn't super clear that it had checked the live prices and availability for the specified dates. The prices it gave were approximate and did not match the ones I see when I search. The "Thinking" log suggested that it was searching specific dates, but I suspect it wasn't, again due to inablity to press buttons.

  5. My prompt makes this much easier, by making sure that the agent's response includes the links for this.