• Stars
    star
    195
  • Rank 198,180 (Top 4 %)
  • Language
    Python
  • License
    MIT License
  • Created over 2 years ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Fetch Bürgeramt appointments and broadcast them via websockets

Bürgeramt appointment finder

This server looks for Bürgeramt appointment every few seconds. You can make it look for any kind of appointment.

This is the code behind All About Berlin's Bürgeramt appointment finder.

If this tool helped you, make a donation. Building things for Berliners is my full time job.

What this tool does

This tool looks for appointments on service.berlin.de every 3 minutes. When it finds an appointment, it makes a sound. It can be used as a command line tool, or as the backend for a web-based tool.

This tool can't book the appointment for you. It can't look for Ausländerbehörde appointments. These features will not be implemented.

Setup

1. Install the script

Run this command in your terminal:

# It might be called 'pip3' on your computer
pip install berlin-appointment-finder

You need Python 3 on your computer. If you have macOS or Linux, you already have it. If you have Windows, you're on your own.

If you get a error: legacy-install-feature, try some of the solutions listed here. Do not open an issue; the problem is not related to this project.

2. Find the appointment type you need

Pick a service from the list of services on Berlin.de, and copy the URL. For example, https://service.berlin.de/dienstleistung/120686/ for the Anmeldung.

3. Run the script

Run this command and follow the instructions on your screen:

appointments

The script will check Berlin.de every 3 minutes. When it finds appointments, it lists them. Just keep an eye on the terminal. It will also emit a sound.

Updating the script

If you have an older version of the script, update it with this command:

pip install --upgrade berlin-appointment-finder

Instructions for nerds

This script can be configured with command line arguments or environment variables.

Type appointments --help to see available command line arguments.

These are the available environment variables:

[email protected]
BOOKING_TOOL_ID=johnsmith-dev
BOOKING_TOOL_URL=https://service.berlin.de/dienstleistung/120686/

The script broadcasts broadcasts the appointments it finds with websockets. By default, it broadcasts them on port 80.

A Dockerfile is supplied in this repo. It's the same one I use on All About Berlin.

The polling rate is limited to 180 seconds (3 minutes), as required by the Berlin.de IKT-ZMS team ([email protected]).

Local development

To work on this script, install it with pip install -e /path/to/this/repo. When you run appointments, it will run your local version with any changes you have made to it. You only need to run this command once.

More Repositories

1

timeline-old

Collects personal data from different sources, displays it as a daily diary.
JavaScript
112
star
2

markdown-notes

A note-taking application that supports Markdown, LaTeX and more. Not actively maintained.
JavaScript
106
star
3

Ignition

A neat micro CMS in under 300kb of PHP. Not actively maintained.
PHP
51
star
4

buergeramt-appointments

Experiment to find the best time to look for an appointment at the Berlin Bürgeramt
Python
49
star
5

homeserver

Backend and frontend for my home server
JavaScript
41
star
6

ursus

Static site generator for All About Berlin
Python
40
star
7

winston

Voice-controlled personal assistant. Not maintained.
Python
36
star
8

tinybbs

Communicating with 5 kilobytes. A very tiny PHP forum. Not maintained.
PHP
16
star
9

Boilerplate-for-WordPress

A barebones WordPress theme to speed up development. Not maintained.
PHP
13
star
10

berlin-bot

A small bot for /r/berlin - links to relevant guides including those on https://allaboutberlin.com
Python
6
star
11

timeline

Timeline generator. Turns your photos, calendars, GPS tracks and more into a nice timeline of your life.
JavaScript
6
star
12

billsplitter

A simple Django shared expense manager. Not maintained.
Python
4
star
13

cockpit

A project management tool written in Python on the Django framework. Not maintained.
Python
3
star
14

canadians-at-war

Regrouping, normalizing and linking open data about the Canadian Expeditionary Force in WW1
Python
2
star
15

dotfiles

Personal dotfiles
Python
2
star
16

nicolasbouliane.com

The files that make my personal website. Built with Ursus.
CSS
1
star
17

focused-blocklist

Blocks related content and other unwanted feeds
1
star
18

nicolasbouliane.com-server

The nginx server that serves nicolasbouliane.com
Python
1
star