This repo is used for finding ANY available Amelung registration appointments.
This is pretty basic script that scrapes the webpage displaying the calendar for appointments for the next month or so. If your on MacOs it will alert you via a noise and in the terminal, but can be run on linux or via a crontab. It does NOT book the appointment for you, but prints the relevant url for booking to the terminal. You MAY encounter a captcha when clicking this url. In the little amount of time taken by filling out the captcha the appointment will get taken. It is recommended to have the calendar page in a browser tab already open and just use the audio from this script to alert you that a slot is open. It looks for ANY appointment at all registration offices so you may get one super far from your house.
- Bash
- Curl
- Sed
- Clone the repo and make sure you have the dependencies
- Locally on terminal
./finder.sh
Note: The script runs in a infinite loop until killed. Do not run in a crontab without the crontab flag input (which is any argument after executing)!
- As a crontab
./finder.sh is_cron
- External notification There is a function named "zap" for making a zapier request. Use this function if you want to make a webhook to zapier. This would be if your running it as a cron on a server. Just add the function call "zap" after the function call "makeNoise".
-
This script only alerts; does not book
-
Use TamperMonkey to pre-fill your information on the booking page saving you vital seconds.
-
TamperMonkey Script Example
// ==UserScript== // @name New Userscript // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author You // @match https://service.berlin.de/terminvereinbarung/termin/register/* // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // @grant none // ==/UserScript== (function() { 'use strict'; document.getElementById("familyName").value = "Your full name"; document.getElementById("email").value = "[email protected]"; document.getElementsByName("surveyAccepted")[0].value = 1; document.getElementById("agbgelesen").checked = true; // I add issues with auto submitting so commented out //document.getElementById("register_submit").click(); })();