Vaccinations appointments in Saarland, Germany can be scheduled online. However, since there is no information on when new appointments will be open to the public, I built this small tool to check the current availability. In addition to that, also direct booking of an appointment is possible.
This script sends an automatic message with the current status to a group in Element I created and triggers a computer sound when an appointment is available.
Note that the website is under active development (e.g. there was no back
button during the time of development). Dialogues might change over time and thus, compatibility cannot be guaranteed.
UPDATE: The system for booking vaccination appointments has changed, thus booking appointments with this tool is no longer possible as of 11.01.2020.
Install necessary packages for Python3 with
pip install -r requirements.txt
Also, download the chrome driver (must match your installed Chrome version) and adjust DRIVER_PATH
.
Adjust the configuration in config.py:
DRIVER_PATH
: adjust your chrome driver path.DESIRED_VACCINATION_CENTERS
: Select the vaccination centers you want to book at (0: SLS, 1: SB, 2: NK).SEND_MSG_RIOT
:boolean
whether or not messages should be send. Note that a token is needed andMATRIX_ROOM_ID
must be changed.MATRIX_ROOM_ID
: set matrix room id, if you want to send messages via Riot/Element.SLEEP_TIME_BETWEEN_QUERIES_*
: configure the frequency with which the availability is checked.SLEEP_TIME_BETWEEN_CLICKS_*
: configure the frequency with which buttons are clicked.
Add personal data for booking in personal_data.json. Gender can be female
, male
, diverse
or unkown
.
If no booking should be performed, simply do not pass the path to the main method of check_availability.py.
Run the function
python check_availability.py
I used the matrix-python-sdk, but also the API can be used (check this gist).
To find the room ID go the room Settings
and select Advanced
.
This was a small and quick project, so don't expect the code to be too clean ;)
I hope it helps someone and feedback is always welcome!