top of page

Cycling Across the 26 cantons of Switzerland 🇨🇭

Updated: Sep 20, 2021


Beginning of May 2021 I met up with Raphaël, Johannes and Paul for a weekend bike trip across the Italian and Swiss alps. During the weekend we spent around 20 hours riding our bikes and this gave us a lot of time to talk.

Raphaël was looking for some challenge and motivation to do something unusual, the idea in mind was to ride across the 26 cantons of Switzerland in few days. When I heard this, I remembered that some months ago I was googling "Ultracycling Switzerland" and found an event with a similar approach (

Anyway I kept listening and Raphaël mentioned that he already had a draft of the route, roughly 1000 kms and 12000m elevation. Great figures for a challenge 😄 !!. The question that followed "How long would it take?" Raphaël answered that it should be doable within 3 - 4 days.

Raphaël said, it's roughly 1000 kms and 12000m elevation and the answer was... Great figures for a challenge 😄!!

Raphaël kept thinking and try to schedule it sometime in the summer. After a few days he asked if I have time from June 18th to 22nd. Without thinking twice I took the days off and couldn’t wait for the adventure 🚵.

Raphaël kept shaping the routes, indeed at some point he had 3 alternatives and finally we choose the one starting in Geneva and finishing in Zug. Later on, Paul decided to join the adventure. The route was something like this:


6 weeks passed by very quickly and the day to start the adventure. We wanted to leverage all the time we had and we decided to start on Friday, June 17th around 11pm in Geneva.

Key figures & rules

  • Distance: 934 kilometres

  • Elevation: 11088 meters

  • 26 cantons of Switzerland

  • At least 10 kms in each canton

  • Avoid round loop without 180º turns in and out of a canton

Those rules were given by ourselves

Day 1 | Waving 👋 to the moon and the sun

Geneva - Aarau | 338 kms and 3037m ⬆️ | 9 cantons ✅

Cantons: GE, VD, FR, BE, NE, JU, BL, BS, SO

Col de la Vue des Alpes: 1283m | La Cibourg: 1080m | Hauenstein: 690m

On the day we all came from different places, Raphaël from Zürich, Paul from St. Gallen and myself from Basel. We all met in the last train to Geneva.

The night was warm, corona measurements were being eased during the last weeks and Geneva was having a quite lively night on the streets 🕺🎉🍷. We were totally not dressed appropriately to join the small groups having drinks at the lake front, so we decided to keep going with our plan.

The most challenging part of the night was to stay awake. I was extremely sleepy 😴 before and after stopping in Neuchâtel, with and without darkness. Looking at the pictures, Raphaël seemed to have the same feeling. Falling asleep on the bicycle wouldn't have been a good idea 🤔, I'm not sure if I can master this art.

I hoped that breakfast and coffee ☕☕ would help, however after breakfast I was still struggling. 12h after we started, the new challenge was the heat 🌡️ ... during the night it was extremely warm with temperatures around 20°C and in the day temperatures were raising above 30°C. A few kilometres before the descent to Delémont Raphaël was struggiling more and more with the sleepiness, suddenly we lost him, it seems he saw a nice small wooden house with a bench and put himself to sleep 😴. He wrote us before falling sleep. Paul and me stopped next to the road on a grass field with a little tree shadow and did the same until he came 1h later.

Raphaël said: I found a place to sleep. You can go further

Once we were all awake we made our way to Delémont, Laufen and Basel. This part felt a bit boring since it is my local roads for day to day rides but we needed to tick Basel-stadt canton which is right at the corner. Vito's pizzeria was the elected place for a pit stop for eating 🍕. We needed quite abundant food and drinks to give us enough energy to keep us riding.

Basel was too early to stop if we wanted to keep our chances to make it in 3 days, so we set our goal to reach Aarau, that would mean some flat and an extra climb before going down to Aarau. It felt long but finally we made it, booked an accommodation on the spot, looked for a restaurant to fill up our reserves and rest. Our target time to start the next day was 7am. A few ours to let our bodies die on a bed and recover as much as possible from this last 20h ride we have just done.

Day 2 | Who set the alarm ⏰?

Aarau - Buchs | 208 kms and 1831m ⬆️ | 7 cantons ✅

Cantons: AG, ZR, SH, TG, AR, AI, SG

We planned to start on the bike 🚲 at 7am, but the question is... "Who set the alarm ⏰?"

And the answer was no one, so I woke up at 8am, and quickly we tried to get ready. I think yesterday we were so sleepy 🥱 that we could not think with clarity. After doing good breakfast we finally were on the bikes around 9:15am.

We started through Aargau, passing by Lenzburg and then touched Zürich canton. The day was cloudy ☁️ but with nicer temperatures than yesterday, perfect for cycling. It helped a lot to waste too much energy.

After few hours we cross the Rhein and this led us to Schaffhausen canton. Right after we crossed we saw the Rheinfall, a great place to pass by during this adventure. We needed a few more kilometres, at this moment we had only 80 kilometres since we started the day. Before we actually arrived to Schaffhausen we stopped at a nearby supermarket 🛒 which wasn't planned but we needed some food to fill our tanks 🥗, ☕, 🍦.

We kept heading to Frauenfeld, quick stop to eat a bit and we defined our next stop in Herisau, about 45 kms from where we were. Here the temperatures started to stress our bodies, with up to 32°C 🌡 I saw in the GPS, but still it felt better than the day before today we had a nice breeze. I was following the track in my GPS and it made us avoid going through Herisau downtown. We kept riding a bit on the main road and when passing the last petrol station, Raphaël screamed 🗣 to stop. Who knows where the next place will be to get food. Food, water and sleep are the important things these days.

Raphaël said, stop ✋ , I'm very hungry and we don't know when is the next opportunity to get food. A petrol station is good at this stage!

We stopped and we bought some food at the supermarket, with the heat... smoothies and juices felt a good re-hydrating and refreshing option 🥵.

We kept riding and rode across Apenzeller and had good view of Säntis. It looked like it was going to rain 🌧 there. We kept going a bit higher to the highest point of the day which was a bit lower than 900m. Before arriving, some drops 💦 started to cold us down 🙂, but the drops soon changed to a downpour accompanying us the whole downhill, so we stopped at the end of downhill being already completely soaked and checked the rain radar 📡. It needed some time for the cloud to pass by so we decided to do a stop, drank a tea/chocolate and watch football while waiting for the clouds 🌧 to disappear. While waiting we were offered free beer... These things only happen when you need to keep riding the bike.

After the unplanned stop, we rode 20 kms of flat along the Rhein and finally decided to stop in Buchs. Again we looked for accommodation on the spot and a restaurant to eat.

We felt slower today, it was difficult to motivate our bodies, so our mindset was focused just to keep moving...

Day 3 | Executed as planned 🥳

Buchs - Airolo | 217 kms and 3265m ⬆️ | 5 cantons ✅

Cantons GR, GL, SZ, UR, TI

Pragelpass: 1550m | Gotthardpass: 2106m

Today the alarm ⏰ woke us up and we started at a decent hour. We hit the road with only a bit of food with the intention to have breakfast after 45 minutes of riding.

The 45 minutes turned into almost 2 hours, there was no town nearby that wouldn't cause a detour, we caught up an e-biker and happily rode in his slipstream 🚴 💨, we could not pass that opportunity. We moved fast and easy, the 2 hours easily passed by.

It might sound weird, but after riding for more than 10k through Graubünden we did not do more than 2 digit number in elevation. In this short excursion into Graubünden, I found out that Maienfeld is the town of Heidi 🤓.

Finally we stopped in Sargans for breakfast with a bit more than 40 kilometres in our legs. Once we filled our tanks we headed towards Walensee. It's my second time on that bike lane and is spectacularly cool 🆒️.

Once we passed the lake, our next goal was Glarus. Here the temperatures started to skyrocket 🌡 to nearly 30°C. From Glarus the first part to Pragelpass was quite steep 🥵and I struggled a bit. However I'm happy we did the "soft" ascent.

After about 400m up ⬆️ we got to Klöntalersee. I run here once 🏃‍♂️ on a very rainy day... so I didn't have a very good view of the lake, but today I've seen the lake and it is impressively beautiful 🤩.

We kept going for 5kms flat detouring the lake and then 700m more up ⬆️ to make it to the top of Pragelpass. Here the temperatures were already cooler. So far we had about 110 kms, 1 pass and we have been cycling for more than 6 hours. Today it felt we moved faster, we were expecting a tougher day in elevation.

The descent has a lot of fun! Quite steep and plenty of corners and all kinds of asphalt. We passed through Muotathal and made it to Brünnen where we recharged energy ⚡🔋 for the second part.

The first part is very scenic towards Flüelen but we were on a busy main road, it took another 20 kilometres to arrive to Amsteg where we had more consistant meters towards Gotthardpass.

At the start of the valley, after Altdorf the wind was very strong and of course headwind 😒, but luckily later when the valley got narrower and the wind luckily felt less strong. It's quite a stretch to make it to Göschenen, however with a mix of climbs and flats, it was enjoyable.

The section after Göschenen 👌 is very scenic, first section with a bike lane on top of the tunnel of the road and a second section with the famous Teufelsbrücke. Right after we arrived to Andermatt. Here the temperature changed quite a bit and once we got in the line of 1900 it started to be foggy and the temperatures already dropped considerably. At the top of Gotthardpass it was around 8°C, what a difference, compared to the 30ºC we had at the start of Pragelpass.

We put extra layers and turned on our lights for last descent to Airolo. Here we farewelled Paul who unfortunately had to return to work the next day. To make this trip in 3 days and knowing what we know now we would have to replan the tour a bit and to demand the maximum of our bodies!

We made it to the destination we planned in the morning 🥳, even though we faced all kind of conditions. Tiredness is becoming more noticeable in on our bodies. It's late and we have to rush to find a place to sleep, get food before the kitchen closes and go to sleep before another big day starts.

Day 4

Airolo - Zug | 171 kms and 2955m ⬆️ | 5 cantons ✅

Cantons: VS, OW, NW, LU, ZG

Nufenenpass: 2478m | Grimselpass: 2165m | Brünigpass: 1008m

We were checking the weather during our dinner last night and it was very unpredictable but it seemed we could have a dry slot of 2 hours in the morning so we thought of doing Nufenenpass during this slot 🤔. Of course at this stage our optimism was up in the sky, we needed it to believe that we can finish by end of the day.

After we woke up, shortly before 6... we heard raindrops agains our window 😑. Luckily it was just a brief shower 🌧 and stopped very quickly. Getting wet on the big passes was not the most appealing.

Leaving Airolo it was around 11°C, with very wet road and shortly after we hit the 9°C while ascending. It seems we had some luck and, before we reached the top it went up to 13° 🌡 including some sunbeams, which raised our spirits .

The climb felt extremely long. The legs were fresh, however the last days are noticeable. Anyway, there are no excuses and we made it to the top a bit over after 2h.

It was time to head down ⬇️. Just when we started we felt some drops 💦 which accompanied us all the way down. The road was mostly wet and some parts humid.

We made it to Ulrichen where we found 2 bike packers 🚴‍♂️🚴‍♂️ going for 14 days. We chatted a bit while eating, they told us they wanted to cover more countries but it was too complicated with the COVID-19 restrictions.

We felt quite cold 🥶 from the descent and even after breakfast it didn't improve so there was a cafeteria nearby. We had one ☕ and just when leaving the sun appeared and made it more appealing to resume our journey.

After 4 kilometres more or less flat we approached Oberwald and from here it was all up to Grimselpass. Sun and clouds ⛅ were around us and we could see low clouds flowing down the mountain like a waterfall.

About 2 corners before the top of Grimselpass we got into a cloud and the fog 🌫 was quite impressive. Difficult to see 2 meters ahead and very wet. After we passed the 3 lakes of the pass (we could not even see them) we trespassed again the cloud and visibility came back. The fog and the holes between the clouds gave us stunning images 🤩. The mountains appeared between the clouds, such a rewarding feeling after unpleasantries in the morning 🙏. Further down it got even dry and the descent was more fun to ride 🚴‍♂️💨.

Finally we got to Meiringen and we decided to do the last pass before stopping again. The variant to Brünigpass we did was steeper that what we expected 🤔. Once on the top of the pass we were surprised with a bit of rain 🌧. We checked the radar and decided to ride until it worsened and then we will stop to eat.

We passed Giswil, Stans and its Stanserhorn, Luzern... the rain didn't come so we made it all the way to Zug anticipating the forecasted heavy rain we saw on the radar. All was quite wet when we arrived to Zug but we were dry... in addition the sun 🌤 made an appearance just in time for that long awaited beer 🍻.

So, I must say the weather was more or less in our favour the last 90 hours of adventures.

Thank you Raphaël and Paul for the challenging adventure 🙇‍♂️🙏🙇‍♂️! It was fun 🎉, it was hard 🥵, it was challenging!

136 views0 comments
Post: Blog2_Post
bottom of page