Install
openclaw skills install booking-extranet-managerManage Booking.com properties — download reservations, list/reply to guest messages, update rates. Wraps a Python CLI that automates the Booking.com extranet via real Chrome.
openclaw skills install booking-extranet-managerAutomate Booking.com property management through a Python CLI tool. Uses your locally installed Google Chrome (not a headless browser) to interact with the Booking.com partner extranet, avoiding bot detection.
.env file in the bot directory — never transmitted elsewhere..chrome-data/ so login + SMS 2FA only happens once. Delete this directory to clear the session.localhost:9222 only — not exposed to the network.admin.booking.com and account.booking.com.The CLI tool must be installed and configured on the host machine:
git clone https://github.com/matsei-ruka/booking-extranet-bot.git
cd booking-extranet-bot
python3 -m venv venv
source venv/bin/activate # Linux/macOS
pip install -r requirements.txt
Then create a .env file with your credentials:
BOOKING_USERNAME=your_login_name
BOOKING_PASSWORD=your_password
BOOKING_HOTEL_ID=your_default_hotel_id # optional
Google Chrome must be installed on the host machine.
BOT_DIR: Absolute path to the booking-extranet-bot directory$BOT_DIR/venv/bin/python3$BOT_DIR/cli.pyAll commands output JSON to stdout. Logs go to stderr.
Get all properties with hotel IDs and unread message counts.
cd $BOT_DIR && source venv/bin/activate && python3 cli.py list-properties
Returns:
{
"status": "success",
"action": "list-properties",
"count": 3,
"properties": [
{"hotel_id": "10353912", "name": "Property Name", "unread_messages": 4}
]
}
Download reservations for a date range. Use --json to get data directly, or omit it to save an Excel file.
# As JSON (for processing)
cd $BOT_DIR && source venv/bin/activate && python3 cli.py download-reservations --start 2026-03-01 --end 2026-09-30 --json
# As Excel file
cd $BOT_DIR && source venv/bin/activate && python3 cli.py download-reservations --start 2026-03-01 --end 2026-09-30
Options:
--start YYYY-MM-DD (required): Start date--end YYYY-MM-DD (required): End date--date-type: arrival (default), departure, or booking--json: Return data as JSON instead of Excel--output-dir: Directory for Excel file (default: ./downloads)List guest messages for a property. Defaults to unanswered.
cd $BOT_DIR && source venv/bin/activate && python3 cli.py list-messages --hotel-id 10353912
Options:
--hotel-id (required): Property hotel ID from list-properties--filter: unanswered (default), sent, or allOpen and read a specific conversation with reservation details.
cd $BOT_DIR && source venv/bin/activate && python3 cli.py read-message --hotel-id 10353912 --index 0
Options:
--hotel-id (required): Property hotel ID--index (required): Message index from list-messages (0-based)Reply to a guest conversation. Always use list-messages first to get the correct index.
cd $BOT_DIR && source venv/bin/activate && python3 cli.py send-message --hotel-id 10353912 --index 0 --message "Thank you for your message"
Options:
--hotel-id (required): Property hotel ID--index (required): Message index from list-messages (0-based)--message (required): Reply textUpdate room rates from the CSV pricing file.
cd $BOT_DIR && source venv/bin/activate && python3 cli.py update-rates
cd $BOT_DIR && source venv/bin/activate && python3 cli.py update-rates --hotel-id 13616005
On first run, Chrome opens and you must complete the login (including SMS 2FA). Subsequent runs reuse the session — no login needed until the session expires.