Take the early Milan Centrale → Zürich HB EuroCity train via the Gotthard route so you land in Zurich fresh and have the whole day ahead; it’s usually about 3 hours 15 minutes, and I’d aim for a departure around 6:00–7:00 AM if you can. Reserve a seat if possible, especially on a Friday, and keep your bags light because Zürich HB is super easy to navigate and connects directly to trams, taxis, and a straightforward walk into the old town. Once you arrive, head uphill to Lindenhof first — it’s only a short walk from the station, and this is the classic “I’m really in Zurich” view: rooftops, the Limmat, and the old city spread out below. Go early for a quieter feel; you only need 30–45 minutes, and it’s free, so it’s a perfect budget-friendly first stop.
From Lindenhof, continue on foot to Grossmünster, Zurich’s most iconic church, and if the tower is open when you’re there, it’s worth paying the small fee for the climb because the view over the river and Altstadt is one of the best in the city. Plan about 1 hour here. Then cross over to Fraumünster, which is the one locals point visitors to for the Marc Chagall windows — compact, beautiful, and very central, so it pairs naturally with a slow wander along the riverfront afterward. For lunch, stay in the old town rather than wandering too far: grab something simple and Swiss nearby, then save your appetite for a proper sweet stop later. If you want a classic café vibe, the area around Münstergasse and Rathausbrücke has plenty of places where you can sit down, rest your feet, and keep the day moving without losing time.
In the afternoon, head to Confiserie Sprüngli at Paradeplatz for the Zurich chocolate moment you asked for — this is the flagship stop for Luxemburgerli, pralines, and a very polished Swiss coffee break. Budget roughly CHF 10–20 depending on whether you just snack or sit with coffee and pastries. After that, take your time with a relaxed Niederdorf + Limmatquai stroll: this is the part of Zurich that feels most alive, with narrow lanes, small shops, bars, and an easy waterfront walk where you can just keep wandering without a strict plan. If you’re still energetic, loop through the side streets around Niederdorfstrasse and back along the Limmat at sunset — it’s the best low-effort, high-reward way to end your first Swiss day before you rest up for the next one.
Catch the Zurich → Lucerne train from Zürich HB on an early SBB departure so you’re in Luzern in time to actually enjoy the day rather than just transit through it; the ride is smooth, about 45–50 minutes, and you’ll roll into the station right beside the lake, which makes the arrival feel very easy. From there, walk straight toward the river and start with Kapellbrücke — it’s the postcard moment of the city, and in the morning it’s usually calmer, with the wooden roof bridge, old water tower, and reflections on the Reuss River looking their best. Give yourself about 30 minutes just to linger and take photos, then continue along the river to Spreuerbrücke, which is smaller, quieter, and has that old Swiss timber-bridge atmosphere without the crowds.
From Spreuerbrücke, wander into the Altstadt for the classic Lucerne experience: painted facades, cobblestone lanes, little fountains, and the beautiful squares around Weinmarkt. This is the part of the city where it pays to slow down — duck into side streets, browse a chocolate shop if you spot one, and don’t rush the details on the building fronts. For lunch, head to Restaurant Schiff or a similar lakeside Swiss place near the waterfront and keep it simple: rösti, Älplermagronen, lake fish, or a soup-and-salad plate will usually land in the CHF 20–40 range depending on how hungry you are. If you want a classic sweet stop afterward, grab a proper Swiss chocolate or praline box from Aeschbach Chocolatier or a central confectioner in the old town — Lucerne is a good city to do a chocolate break without turning it into a whole detour.
Spend the afternoon at the Swiss Museum of Transport — it’s one of those places that actually earns the time, especially if you like hands-on exhibits, trains, aviation, cars, and the big Swiss-scale storytelling around mobility. From the old town or waterfront, it’s an easy lakeside walk or short bus ride, and you can comfortably stay here 2.5–3 hours without feeling museum fatigue because the place is big, active, and varied. If the weather is nice and you still have energy afterward, walk a bit along the lake edge before heading back toward the center; Lucerne is one of those cities where the in-between moments — benches, lake breeze, mountain views — are half the experience.
Keep the evening loose and easy: a final walk along the lake promenade, then back into the old town for dinner if you want another Swiss meal, or just a relaxed café stop before turning in. Lucerne is compact, so you can stay central and still feel like you’ve seen a lot without overdoing transport. Since you’re on a tight budget, this is also a good night to keep costs down and reset for Bern tomorrow — buy water and any snacks from a supermarket like Migros or Coop before you finish the day, and enjoy the city on foot while everything is still open and lively.
Catch the early Bern → Interlaken Ost train and treat this as your scenic “out of the city” reset before the mountain part of the day begins. Once you arrive, go straight to Harder Kulm while the light is still crisp and the haze is low; this is the classic postcard stop for the turquoise Lakes of Thun and Brienz with the peaks framing everything, and it works best if you’re up there mid-morning before the crowds thicken. The funicular ride is quick, but budget about 2–2.5 hours total including queueing, photos, and a slow coffee at the top; tickets are usually around CHF 38–42 round trip. Wear real walking shoes, bring water, and don’t rush the viewpoint platform — the best part is just lingering and looking back over Interlaken below.
Head back down and walk or take a short local transit ride into the center for a chocolate break. For something easy and genuinely good, stop at a Lindt shop if the branch is convenient, or choose a local chocolatier/café in the Interlaken area for pralines, truffles, and a small tasting box you can carry home; CHF 10–25 is enough for a proper souvenir haul without blowing the budget. If you want a sit-down lunch, keep it simple and Swiss — a rösti, sandwich, or soup around the station area is usually the smartest value play here. This part of the day should stay loose: eat, browse, and leave yourself time to breathe before you head back to the capital.
Return to Bern and spend your main city time in the UNESCO Old Town, which is one of the easiest beautiful walks in Switzerland. Start in the arcades around Kramgasse, then wander past the old fountains, the sandstone facades, and the clock-strewn streets until you reach Zytglogge; it’s the kind of neighborhood where you should slow down instead of trying to “tick off” sights. From there, swing by the Bundeshaus exterior and then down toward the Aare viewpoints for those classic green-water river bends Bern is famous for. Give this whole section about 2–3 hours, depending on how often you stop for photos, ice cream, or a terrace drink; most of it is free, and that’s exactly why it’s such a good fit for a budget-heavy Switzerland day.
If you still have energy, do one last wander through Bern’s old center at golden hour — the stone lanes and arcades look best just before sunset — then grab an early dinner near Bern station so your departure is smooth. Keep it practical: a simple pasta, kebab, or takeaway meal is a better use of your budget than a long restaurant dinner if you’re heading back to Milan tonight. Then board the evening train from Bern to Milan; plan to leave after dinner, allow roughly 4h15–5h depending on connections, and choose the most direct routing you can on SBB so you don’t have to babysit a tight transfer late at night.