Skip to content

COCOP1l0t/visa-script

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

US Visa Appointment Monitor

A Windows tool that monitors the US Visa scheduling website for available appointment slots, sending desktop alerts when slots appear before a configured date threshold.

How It Works

The script connects to an already-running Chrome instance via the Chrome DevTools Protocol (CDP). It periodically reloads the scheduling page, selects a consulate, and intercepts the API response that returns available appointment dates. When a date earlier than your threshold appears, it fires a Windows desktop notification and plays a system alert sound.

Requirements

  • Windows 10/11
  • Python 3.10+
  • Google Chrome
  • A valid session on the visa scheduling site (you log in manually)

Setup

pip install -r requirements.txt

Usage

Step 1 — Launch Chrome with remote debugging

run_chrome.bat

This opens Chrome with a separate profile and exposes the DevTools Protocol on port 9222. Do not close this window.

Step 2 — Log in manually

In the Chrome window that opened, navigate to the visa scheduling site and log in with your credentials.

Step 3 — Verify the connection (optional)

python main.py --discover

Dumps the API response from the scheduling page so you can confirm the connection is working and see what data is being returned.

Step 4 — Start monitoring

python main.py --monitor

The script polls on the configured interval and prints status to the terminal. When a slot earlier than alert_threshold is found, it shows a Windows toast notification and plays an alert sound.

Configuration

Edit config.json:

{
  "cdp_url": "http://localhost:9222",
  "target_url": "https://www.usvisascheduling.com/...",
  "poll_interval_seconds": 60,
  "alert_threshold": "2026-04-07"
}
Key Description
cdp_url Chrome DevTools Protocol endpoint
target_url Full URL of the scheduling/reschedule page
poll_interval_seconds How often to check (seconds)
alert_threshold Alert fires for any slot dated before this date (YYYY-MM-DD)

You can also point to a different config file:

python main.py --monitor --config my_config.json

Session Expiry

If your session expires mid-run, the monitor detects the login redirect, pauses polling, and automatically resumes once you log back in through the open Chrome window.

Notes

  • Desktop notifications require winotify and only work on Windows.
  • The Chrome profile used by run_chrome.bat is separate from your normal Chrome profile, so it won't interfere with your existing sessions.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors