Alright, so today I wanted to mess around with figuring out public holidays in Switzerland. It wasn’t as straightforward as I thought it would be. Let me tell you about the whole process.

Started with a Simple Search
First, I just did a quick search to see what I could find about Swiss public holidays. Turns out, it’s kind of complicated because each canton has its own set of holidays. I needed something that would let me check holidays for different cantons and different years, you know?
Found Some Data Sources
I stumbled upon a few websites that listed the holidays, but they weren’t very consistent. Some had different dates, and none of them were easy to use programmatically. I wanted something I could easily grab and work with, not just read off a page. So, I started looking for a way to get this data in a format that my computer could understand and that I could automate getting.
Tried Web Scraping
My next move was to try and scrape the data off one of these websites. I used a tool to inspect the website’s structure and see if I could grab the holiday names and dates automatically. After a few hiccups, I managed to get a script working. It wasn’t perfect, and it was a bit fragile—meaning if the website changed, my script would break. And it did change once. I had to fix my script to take into account the updated website structure. So this was not the best way to get the data.
Looked for APIs
Then I thought, “There’s gotta be an API for this, right?” An API would be way more reliable than scraping. I searched around and found a couple of options. Some were paid, and some were free but limited. I played around with a free one for a bit. It was okay, but it didn’t have all the cantons, and I didn’t really want to pay for something I was just experimenting with.
Decided to Compile My Own List
After all that, I figured the best approach was just to compile my own list. I went back to the websites I found earlier and started manually copying the holidays into a spreadsheet. It was tedious, but I made sure to double-check the dates and include all the cantons. It took a while, but I finally had a solid list of holidays.

Put It into a Usable Format
Once I had my spreadsheet, I converted it into a JSON format. This way, I could easily use it in any program I wrote. I organized it by year and then by canton, with each holiday having a name and a date. It was a bit of work to get it all formatted correctly, but it was worth it.
Wrote a Simple Program
With my JSON data ready, I wrote a simple Python program to test it out. The program lets you input a year and a canton, and it spits out the public holidays for that year and canton. It was pretty satisfying to see it work after all the trouble I went through to get the data.
Final Thoughts
In the end, I got what I wanted: a way to easily check Swiss public holidays. It was a bit of a journey, and I learned a lot along the way. Web scraping was messy, APIs were hit or miss, and sometimes the old-fashioned way—doing it manually—is the best way to go. Now I’ve got this neat little tool, and I can share it with anyone who needs it. Plus, I’ve got a better appreciation for the complexities of Swiss holidays!
This was a nice experiment but not what I was expecting!
- Lesson learned: Sometimes the simplest solution is the best, even if it takes a bit more elbow grease.
- Next steps: Maybe I’ll look into making this tool more robust or finding a more sustainable data source.
Hope you found this interesting! Let me know if you’ve had similar experiences or if you have any tips for dealing with tricky data.
