Yes, a fixed term rental contract can't be freely broken early.
Rentals are governed by the Czech Civil Code and terminations are addressed by § 2285 and following (in Czech).
There are two kinds of rental agreements: fixed-term and indefinite term. The latter can be terminated by either party with three months notice (counting from the beginning of the next month after delivering notice in writing).
Fixed-term contracts can be terminated early only in cases explicitly defined by law:
- The tenant may terminate the lease early if circumstances that led to entering the rental contract have changed so severely that it would be unconscionable to require the tenant to stay. § 2287 (You can see that this is fairly vague, so it is rarely used, mostly in cases where e.g. you become disabled after an accident and thus can no longer be reasonably expected to live on the fifth floor with no lift, or the house has burned down, …).
- The landlord may terminate the lease early for reasons listed in § 2288 (1): gross breach of contract by the tenant (3+ months of unpaid rent, unauthorized permanent modifications of the flat, etc.); conviction for a crime against the landlord, a neighbour or someone's property in the house; property becoming unusable for reasons in the public interest (building getting demolished to make way for a highway); or a similarly important reason.
In case of extreme breaches of contract (e.g. extreme unauthorized modifications or permanent damage by the tenant), the contract can be terminated without three months notice, but only after giving the tenant adequate time to resolve the situation.
Indefinite-term contract can be terminated by the landlord for a few more reasons (with 3 months notice), such as the landlord needing the flat for themselves or a close family member.
Apart from these options, the only remaining way to terminate a contract (of either kind) is by mutual agreement of both parties.