Nicolas Bouliane

Bürgeramt appointment finder Built in

Most of the German bureaucracy happens in person, by appointment. In 2022, I built a bot to find Bürgeramt appointments. It helps recent immigrants register their address sooner, and get faster access to government services.

Try it yourself or see the code on GitHub.

The Bürgeramt appointment finder UI

This page explains why I built this tool, and how it got approved by the city of Berlin.

What’s wrong with Bürgeramt appointments?

In Berlin, most government services require you to go to the Bürgeramt in person. To do this, you need an appointment.

Bürgeramt appointments are hard to find. Most of the time, there are no appointments.1 You must refresh the calendar page again and again until you find one. Since most appointments are added during working hours, many Berliners must do this during work.2 showing no available appointments
No appointments. Typisch Berlin.

Most of the time, the only appointments are in 4 to 8 weeks.3 Recent immigrants can’t wait this long. They must register their address quickly because it blocks other things. They need a registration certificate and a tax ID right now.

If they can’t wait, they can’t be picky about location. This might mean an appointment across the city in the middle of a workday.

People can’t predict their schedule 6 to 8 weeks in advance, so many people miss their appointments.4 In some districts, 20% of people don’t go to their appointments.5

The lack of appointments affects everyone. Travellers can’t leave Germany because they can’t renew their passports.7 Immigrants must pay the maximum income tax rate because they don’t have a tax ID. Parents can’t apply for child benefits because they can’t register their address. Car buyers can’t drive their vehicle because they can’t register it.6 This all happens because they can’t find appointment at the Bürgeramt.

Why are there no appointments?

This has been a problem for many years. There are now more appointments for some services, but by and large, it’s still a serious problems. The reasons have not changed.22

Personnel shortage

There are not enough Bürgeramt employees to help everyone.8 The population of Berlin grows quickly, and more people need government services.10

Many city employees retire and must be replaced.11 The government regularly promises to hire more personnel, but nothing seems to change.9 There are still many vacant positions, and the city struggles to fill them.


Bürgeramt appointments take time. A Bürgeramt employee only handles 18 cases per day.12 Adding more people helps, but it does not address this problem.

To make things worse, over thousand Berliners miss their Bürgeramt appointment every day.13 Between 10% and 33% of appointments are no-show.14

It could be that people forget their appointments. There are no appointment reminders. An email and SMS reminder system was announced in 2018,15 but it’s still missing. They also considered making the cancel button more prominent in the confirmation email, but this yet has to be done.

It could also be that people can’t plan their schedule around an appointment weeks in the future.

A city employee also noted how some people book several appointments, and only show up to one of them. They monitor this, but are powerless to stop it.

Some measures were taken to reduce the rate of no-shows, but the city government can’t ban users, nor set up countermeasures that would marginalise citizens. For example, the idea of a refundable deposit was rightfully rejected as some citizens don’t have the money or even a bank account.

Hidden appointments

The Bürgeramt does not make all appointments available online. They keep free appointments. Some are only available to people who call 115. Others are not available at all, and given by Bürgeramt employees at their discretion.

This means that many appointments are impossible to get through the official website. People have received appointments on the same day by faxing their local Bürgeramt. The fax trick was much publicised in the summer of 2023.

When will things change?

Every new government promises to work on this, including the current government. More employees, more digitalisation, longer opening hours.16

Digitisation will help, but it’s happening painfully slowly.17 More and more services are available online,18 but essential services still require a Bürgeramt visit. Some online services require a digital ID which many immigrants don’t have.19 Activating that ID requires an in-person appointment.

In mid-2023, the IKT-ZMS team tried to curb people quickly refreshing the appointments page. You can only look once a minute for new appointments. This bot prevention measure made the official website even more unusable for humans. A Verschlimmbesserung, as the Germans say.

Rate limiting on the appointment booking page

In September 2023, they floated the idea of letting Berliners show up without an appointment. Instead of waiting 2 weeks at home, you could wait 2 hours in a crowded Bürgeramt. This is preferable to some, but a step back to others.23 Another Verschlimmbesserung.

What this tool does

It checks the appointments page every 3 minutes. When it finds new appointments, it broadcasts them to everyone who has the tool open in their browser.

The Bürgeramt appointment finder UI

If the tool is open in another tab, it plays a sound and changes the tab title when it finds new appointments. People can focus on their work while they wait instead of manually refreshing a page every minute.

The Bürgeramt appointment tab notification

If there are no appointments, I show people other ways to find one. This helps people find an appointment even if there are none online.

The Bürgeramt appointment finder UI

The tool makes the same number of requests, no matter how many people use it. It uses websockets to broadcast what it finds. It does not increase the load on’s servers; it reduces it.

The tool can also run in the command-line. I made it as easy as possible for people to use: just pip install it then run it a single command: appointments. The command line version also plays a sound on new appointments.

The command line version of the Bürgeramt appointment finder

How it got approved

When I launched this tool in January 2022, it stayed online for only 7 hours. I deactivated it when I learned that it broke’s rules. Those were printed out in the Javascript console and I missed them. In those 7 hours, it got thousands of visitors, mentions in the newspapers, and a strong reaction on social media.21

I contacted the IKT-ZMS team - the people who build the official appointment booking system - and asked them if I could reactivate the tool. They also reached out. Our emails kept getting tangled in each other’s spam filters, but eventually, we managed to talk.

I had to pester them for months and scarcely got a response, but they finally sanctioned the tool, and it went live again.

They set a difficult condition: the tool could only make one request to every 3 minutes (instead of every 30 seconds). This was a difficult condition to work with, but it was better than a “no”.


The tool is effectively limited to its current state. I can’t check for other types of appointments or filter appointments by location, because I’m limited to one request every 3 minutes.

I asked the IKT-ZMS team to make more requests to support more appointment types, but got stonewalled. After months of trying, I gave up.

Why I built this

It’s a small act of guerilla public service. I moved to Berlin in 2015. Since 2017, I run a website to help immigrants make Berlin their home. It’s frustrating to see them have the same problems I had 7 years ago. I wanted to build something useful and draw attention to the problem.

The tool did get a bit of media attention, and the link is still bouncing around immigrant communities. Hundreds of people use it every day.

Still, the problem is not solved. In the long term, we should fix Berlin’s administration, not build hacks around it.

Is this ethical?

I’m not sure. This tool does not create more Bürgeramt appointments. It makes it easier for people who use the tool, but also harder for those who don’t. It does not solve the appointment problem. Only the city of Berlin can do that.

Then again, anyone can use this tool. It’s completely free. It does not ask for your email, it does not collect your personal data, and it does not try to sell you something. In 2015, a startup built a similar tool, and used it to sell appointments for 45€ each.20 Now, similar services sell immigration office appointments for 50€.

This tool is different: it does not have a business model. It’s meant to be free and available to everyone. This played a big role in getting the tool approved by the city.

What will happen next?

Nothing. The tool has been running smoothly for the last two years, but it’s crippled by the one request every 3 minutes rule.

I wanted to work with the IKT-ZMS team to improve the official website. This included a better user interface and clearer instructions. I made no progress for months, so I gave up and focused on other projects.

Nonetheless, I am thankful for their time. They agreed to meet me, and one of them worked with me on a connection issue between my tool and their website. He’s the one who put me in touch with that team in the first place.

Another kind government employee from a different team showed me how the appointment system works on their side. He was very generous with his time and helped me find the right people to contact in the city government. He is still my most treasured contact there and I am very grateful for his help.

There is also hope from the fringes of government: my old colleagues are lifting mountains in the Digital Service, as are the people at CityLab.

As for me, I’ll keep building little tools where I see an opportunity to improve German bureaucracy. Recently, I released a tool to fill the address registration form. More are coming.

Sources and footnotes


  3. Berlin parliament inquiry, 


  5., (archived) 





  10. Wikipedia 


  12., (archived) 


  14. Berlin parliament inquiry, 


  16. (archived) 

  17. (archived), 


  19. (archived) 


  21.,,,, Twitter 

  22. This was a problem in 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 and 2023