This project allows users to run a script which will continuously check for available visa appointment slots without user intervention. It uses Python and Selenium to perform the automation. As of now, the project can only look for appointment slots for the Schengen visa in the Swiss Consulate of New York City, but support for other consulates is expected to be added in the future. Once started, the application will continue to run till either an appointment slot is found or the user manually interrupts its execution. If a empty slot is found, the user is alerted immediately with a pop-up alert box.
- Python 3.12.9
- python-dotenv 1.1.0
- selenium 4.34.2
The following instructions assume the user has Ubuntu as their local machine's OS. Most instructions should work for other Linux distributions as well, though mileage may vary.
Set up Python3 (v3.12.9) on the local machine.
sudo apt update
sudp apt install python3.12
Clone this GitHub repository into the local machine.
git clone --single-branch -b main <project_repo_url> <project_root>
To resolve project dependencies, install Python3 and the required packages for this project inside a virtual environment.
cd <project_root>
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Fill out the online application form available in the link below using a personal email address. Once submitted, an email should appear in the inbox containing a link to book a visa appointment. The access token can be found in thatcustom URL. https://www.swiss-visa.ch/ivis2/#/i210-select-country
Note: DO NOT share this access token with anyone!
Create a file inside the project root directory and store the access token in the file.
touch .env
echo "ACCESS_TOKEN=<private_access_token>" > .env
Run the application from the command-line. For quitting the application, press Ctrl+C (keyboard interrupt).
cd <project_root>
python3 ./main.py
This project is licensed under the MIT License - see the LICENSE file for details.