Zagreb is a compact city that reveals its best qualities fairly quickly. It is not a place that requires a week to understand, but it is also not a city where one night feels like enough. The right stay length depends on how you travel and what else is in the itinerary.
Two nights: the working minimum
Two nights gives you two full days in Zagreb. That is enough for the upper town, the Museum of Broken Relationships, the Dolac market, and a couple of good meals. You will see the core of what makes Zagreb worthwhile and leave with a clear picture of the city.
The trade-off is that two nights can feel slightly rushed if you try to pack in everything. It works better if you accept that you will not see all of it and focus on the things that matter most to you rather than trying to complete a checklist.
Two nights is the right allocation when Zagreb is one stop in a wider Croatia or Slovenia route and the overall schedule needs to stay balanced. It is also fine for a standalone weekend visit if you are comfortable with a focused rather than leisurely pace.
Three nights: the recommended stay
Three nights is the stay length that most travelers find satisfying. The extra day changes the rhythm significantly. You can spend a morning at the Dolac market without worrying that it is using up your only full day. You can visit two museums instead of one. You can have a long lunch that extends into the afternoon and still have an evening left.
Three nights also makes the trip feel less like a logistics exercise and more like an actual stay. Zagreb rewards the kind of slow morning that is hard to fit into a two-night schedule -- coffee on Tkalciceva, a pastry, no particular agenda for the first hour of the day. That kind of pace, which reveals a lot about how the city actually functions, needs a bit more time to justify.
Four nights: only with Plitvice
A fourth night in Zagreb is rarely justified by the city itself -- by the end of day three, most travelers have covered everything they wanted to see and the fourth day starts to feel like repetition. The exception is Plitvice Lakes. If the National Park is on the itinerary, a four-night Zagreb stay gives you three days for the city and one dedicated day trip to Plitvice without compressing either.
The Plitvice day trip works as follows: bus from Zagreb main station at around 8am, arrive Plitvice around 10am, three to four hours in the park on the main walking routes, bus back to Zagreb arriving early evening. It is a full day and a tiring one. Having a proper fourth night in Zagreb after it is more pleasant than trying to add it to a three-night schedule where it takes the place of a relaxed final day.
What to prioritise on a short stay
If time is limited, the three things that most travelers remember from Zagreb are: the upper town walk (especially St. Mark's Square and the Lotrscak Tower view), the Museum of Broken Relationships, and the Dolac market on a weekday morning. Everything else is secondary to those three.
The funicular between the upper and lower town is worth taking at least once -- it runs every ten minutes and costs about 0.66 EUR. Trivial cost, entertaining ride, and saves the uphill climb.
Getting in and out
Zagreb airport is about 20 to 30 minutes from the city centre by bus (about 5 EUR) or taxi (about 25 to 35 EUR). The main train and bus stations are both central and within easy walking distance of most accommodation. Zagreb connects well by train to Ljubljana (2 hours, around 15 to 25 EUR) and by bus to Split (5 to 6 hours, around 20 to 30 EUR), Dubrovnik (8 to 9 hours), and Sarajevo (around 5 to 6 hours).