If you've started building Dutch sentences about the past, you've probably run into this problem already. You know the word for "have" is hebben. You use it to say "I have worked" or "I have eaten." That part is simple.
Then you hit a sentence like Ik ben naar huis gegaan ("I went home") and something feels different. Where did ben come from? Isn't that "am"? Why does this sentence use "I am gone home" instead of "I have gone home"?
Nothing went wrong here. This is just how the Dutch perfect tense works. It's one of the first genuinely new patterns you run into when you start building past-tense sentences in Dutch. Many languages, including English, only use one helper verb for this. Dutch uses two, and it asks you to pick the right one every time. Let's go through why, and how to make the right choice without having to think too hard about it.
One helper verb in English
In English, the perfect tense (the "I have done something" form) always uses "have." It doesn't matter what the verb is.
- I have worked.
- I have eaten.
- I have gone.
- I have fallen.
- I have become tired.
"Have" covers all of these. English had a version of this same split a long time ago. Old sentences like "I am come" or "she is fallen" used to be normal. That pattern isn't used anymore, though, and you won't see it in everyday English today. So if English is a language you already know well, there's nothing in it to warn you that another language might need two different helper verbs here.
Dutch still has the split, and it's fully active in everyday speech and writing. Every time you build a sentence in the perfect tense, you have to pick the right helper verb first.
Hebben vs zijn: the Dutch perfect tense auxiliary
Dutch uses two verbs to build the perfect tense: hebben (to have) and zijn (to be). Both combine with a past participle, a verb form like gewerkt, gevallen, or gegaan, which sits at the end of the sentence.
Here are the present-tense forms of both, since you'll need to conjugate the helper verb correctly no matter which one you pick.
Hebben (to have)
| Subject | Form |
|---|---|
| ik | heb |
| jij / je | hebt |
| hij / zij / het | heeft |
| wij / we | hebben |
| jullie | hebben |
| zij (plural) | hebben |
Zijn (to be)
| Subject | Form |
|---|---|
| ik | ben |
| jij / je | bent |
| hij / zij / het | is |
| wij / we | zijn |
| jullie | zijn |
| zij (plural) | zijn |
So a sentence in the perfect tense has two moving parts. The helper verb comes early in the sentence and changes based on who's doing the action, using the tables above. The participle sits at the end and doesn't change. The question this whole article is about is simple: which helper verb do you pick, hebben or zijn?
Most verbs use hebben
Most Dutch verbs use hebben. If you're not sure which one to use, hebben is the safer guess. It will be right more often than not.
Hebben covers:
- Verbs that take a direct object (transitive verbs).
Ik heb een boek gelezen.
I have read a book.
Ze heeft het eten gemaakt.
She made the food.
- Plain activities that don't involve any change.
Ik heb gewerkt.
I worked.
Hij heeft geslapen.
He slept.
We hebben gepraat.
We talked.
None of these verbs involve the subject changing location or changing state. You worked, but you're still you, in roughly the same condition you started in. You talked, but nothing about you changed because of it. That's the pattern to notice. It leads directly into when zijn takes over instead.
When zijn takes over
Zijn shows up when the verb describes the subject moving from one place or condition to another. There are two categories.
Change of location. The subject goes somewhere it wasn't before.
Ik ben naar Amsterdam gegaan.
I went to Amsterdam.
Ze is gekomen.
She came.
Wij zijn vertrokken.
We left.
Change of state. The subject becomes something it wasn't before.
Hij is gestorven.
He died.
Hij is ziek geworden.
He became sick.
Ik ben gevallen.
I fell.
Here's a way to think about the difference. Hebben just tells you an action happened. Zijn tells you the subject ended up somewhere different, either physically or in what condition they're in, because of that action. Vallen (to fall) ends with you on the ground, somewhere you weren't a second ago. That's a change, so it takes zijn. Werken (to work) just ends with you having worked. No change of place or state happened, so it takes hebben.
This is also why sterven (to die) and worden (to become) take zijn. Dying and becoming something new are both changes of state. Hij is gestorven, not hij heeft gestorven. Hij is ziek geworden, not hij heeft ziek geworden.
Motion verbs need extra attention
Some verbs can take either hebben or zijn, depending on the sentence. This shows up a lot with verbs of motion, like lopen (to walk), fietsen (to cycle), rijden (to drive), and zwemmen (to swim). The choice depends on whether the sentence names a destination.
Compare these two sentences:
Ik heb een uur gelopen.
I walked for an hour.
Ik ben naar huis gelopen.
I walked home.
Same verb, lopen. Different helper verb. Why?
The first sentence has no destination. It describes the activity of walking, and how long it went on for. It's just something you did, like working or talking. So it takes hebben, the default for plain activities.
The second sentence has a destination: naar huis (home). This sentence isn't describing the activity of walking anymore. It's describing you ending up somewhere, specifically at home, and walking was how you got there. That's a change of location, so it switches to zijn.
Here's another pair, with fietsen (to cycle):
Ik heb gefietst.
I cycled. No destination, just the activity.
Ik ben naar het station gefietst.
I cycled to the station. There's a destination, so it's zijn.
And a destination doesn't have to be marked with naar. Other words can point to a destination too, and the same rule applies:
Hij heeft de hele dag gereden.
He drove all day. Activity, duration, no destination.
Hij is bij zijn oma langsgereden.
He drove by his grandmother's place. Bij names the destination here, not naar, so it's still zijn.
The pattern holds across all of these. Ask yourself: is this sentence just describing an activity, or is it describing the subject arriving somewhere? If the sentence names a place the subject ends up, with naar, bij, or something else, that's usually your signal to switch to zijn.
Where English speakers go wrong
Pick the wrong helper verb, and the sentence sounds noticeably wrong to a Dutch speaker. This happens even when every other word in the sentence is correct.
The most common version of this mistake is using hebben where zijn is needed, especially with verbs of motion or change of state. People will usually still understand ik heb gevallen, even though it's not correct. The right version is ik ben gevallen.
The exception: geweest
One combination looks strange the first time you see it: ik ben geweest.
Geweest is the past participle of zijn itself. So "I have been" in Dutch is ik ben geweest, using zijn as its own helper verb. This one is easy to get wrong, because it's tempting to use heb out of habit, since "have been" uses "have" in English. But in Dutch, zijn pairs with itself here: ben plus geweest.
You'll hear this constantly in everyday Dutch.
Ik ben in Amsterdam geweest.
I've been to Amsterdam.
Ben je weleens in Duitsland geweest?
Have you ever been to Germany?
It's worth learning this one as its own fixed phrase, rather than reasoning your way to it every time, at least at the start.
Putting it together
Here's the whole logic in one pass, from most common to least common.
- Default to hebben. It covers most verbs: transitive verbs (verbs with an object) and plain activities with no change involved.
- Switch to zijn when the verb involves a change of location (going somewhere) or a change of state (becoming something, dying, and similar verbs).
- Watch motion verbs specifically. No destination named means hebben. A destination named means zijn, whether that destination uses naar, bij, or another word.
- Learn ik ben geweest as a fixed phrase. It doesn't follow the pattern you'd expect from "have been."
This is one of those Dutch grammar points where getting it wrong isn't really a big misunderstanding. But getting the helper verb right is a small detail. It's part of what makes your Dutch sound like you've spent real time listening to how Dutch people actually talk.
Reading through a rule like this is a good first step. It gets the pattern into your head. But getting it to feel automatic takes something more. You need to actually hear it and use it, over and over, in real sentences. A language cafe conversation where you catch yourself mid-sentence, correct heb to ben, and keep going is worth more than reciting the rule ten times on your own.