Skip to content

Automated service to track German Visa Appointment vacancy in VFS Global

License

Notifications You must be signed in to change notification settings

parmonov98/de_visa_appointment_finder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

German VISA Appointment Vacancy Finder

This application automates looking for a particular type of German 🇩🇪 VISA appointment for Indian 🇮🇳 citizens with selenium. It was written mostly to suit my needs but is easily configurable. It repeatedly checks for the appointment with a tiny delay. When it finds an appointment, it sends an alert via your GMail to your preferred recipient so that an appointment can be booked as soon as possible.

Demo

demo

Success

appointment_found when appointment is found, it sends an email send_email

Setup

  1. create/login to gmail account and create a new app password for our app

  2. create an account at VFS if you haven't yet done so.

  3. fill in the values in the .env file which would contain important credentials such as:

    • username, password for logging into the VFS site
    • sender's & receiver's email id (to send the alert)
    • app password generated above.

    Here's how a sample .env file looks like:

    VFS_USERNAME='[email protected]'
    VFS_PASSWORD='max123'
    ...
    
  4. Install dependencies.

    • conda env create -f env_cross_platform.yml
  5. Activate conda environment: conda activate visa

  6. run python appointment_finder.py [--headless] &

    • this would run in the background and sends an alert when an empty slot is found, containing the date of the available appointment.
    • when provided a --headless option, the service runs in the background without GUI (so you won't see a browser opening)
    • sometimes, it might happen that you're busy and didn't notice your email and by the time you do, the slot was taken. Hence, this script keeps on running even after finding an appointment (after waiting for a few minutes), so that it keeps checking for new slots all the time. When you're finally done, do kill %1 to stop the python program.

Assumptions

This applications needs Firefox browser and geckodriver. It is assumed that the user already has these installed.

VISA type Configuration

This application by default looks for Schengen VISA for family & friends at New Delhi - Visa Application Center. If you want to change it, then before running this application, do the following:

  1. login to the website manually and click on New Booking.

  2. In the three drop down menus that are shown, the first one contains the list of visa application centers. visa application center At the time of writing this, there're 16 centers.

  3. Before you select your visa application center, right click on it & select inspect inspect_1 This would open the inspection tool in the browser below. inspect_2 Right click on the highlighted line & Copy the XPath.

  4. Replace the option value in the find_appointment_info function in the code. These are simply a few items in the list. New Delhi is at 12th position in the list whereas Cochin is at 6th position.

    E.g., for Cochin, the XPath would be .../mat-option[6]/span. So replace 12 (New Delhi) in the original code with 6.

  5. Do the steps 3-4 for other two drop down menus if they're different from the defaults.

  6. Follow the instructions in setup above.

Good Luck!

DISCLAIMER

I only made this as a cool fun side-project which would solve my own use case. If in case you use this service, I am not liable for any consequences/damages resulting from it whatsoever. The information contained herein is for general information purposes only. You should not rely on this as a basis for making any business, legal or any other decisions. Any reliance you place on this is therefore strictly at your own risk.

About

Automated service to track German Visa Appointment vacancy in VFS Global

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published