sofapiano

Blog · Grammar in context

German Perfekt: When to Use Haben and When to Use Sein

Haben or sein in the German Perfekt? Learn the simple rule for the past tense, how to build the participle and the most common mistakes, with examples.

Travelers waiting on a train station platform – Perfekt with sein: Ich bin gefahren

"I have eaten." "I went to Berlin." In everyday German, you say both with the same tense: the Perfekt. It is the main past tense for speaking, and it comes with one big question: do you use haben or sein? The good news: there is a clear rule, and you only need to remember a small group of verbs.

How the Perfekt works

The Perfekt has two parts: a helping verb (haben or sein) in position 2, and the past participle at the very end of the sentence.

  • Ich habe gestern einen Film gesehen. – I watched a film yesterday.
  • Wir sind gestern nach München gefahren. – We drove to Munich yesterday.

The helping verb is conjugated, the participle never changes. This is the same logic as in our guide to the verb-second rule.

Merke dir: Perfekt = haben or sein in position 2 + participle at the end. Most verbs use haben. Sein is for movement and change.

How to build the participle

Most participles start with ge-. There are two main patterns:

  • Regular verbs: ge- + stem + -t: machen → gemacht, kaufen → gekauft, lernen → gelernt.
  • Irregular verbs: ge- + stem + -en, often with a vowel change: sehen → gesehen, fahren → gefahren, trinken → getrunken.

Two important exceptions: verbs ending in -ieren and verbs with an inseparable prefix (be-, ver-, er-) have no ge-: studiert, telefoniert, besucht, verstanden. With separable verbs, ge- goes in the middle: aufstehen → aufgestanden, anrufen → angerufen. If you need a refresher, read our article on separable verbs.

Use haben for most verbs

When in doubt, choose haben. It is correct for:

  • Verbs with an accusative object: Ich habe Pizza gegessen. – I ate pizza.
  • Reflexive verbs: Ich habe mich gewaschen. – I washed (myself).
  • Verbs without movement or change: Sie hat den ganzen Tag gearbeitet. – She worked all day. Er hat gut geschlafen. – He slept well.
  • Modal verbs: Ich habe das nicht gewollt. – I didn't want that. (See our guide to modal verbs.)

Use sein for movement and change

Use sein when the verb describes movement from one place to another or a change of state:

  • Ich bin nach Berlin gefahren. – I went to Berlin. (movement)
  • Wir sind um acht Uhr angekommen. – We arrived at eight o'clock. (movement)
  • Er ist früh aufgestanden. – He got up early. (change: lying → standing)
  • Sie ist schnell eingeschlafen. – She fell asleep quickly. (change: awake → asleep)

Three verbs always take sein even though they are not about movement: sein (gewesen), bleiben (geblieben) and werden (geworden). The same goes for passieren (to happen): Was ist passiert? – What happened?

A tricky pair: same verb, different helper

Some verbs change their helper depending on the meaning. With a destination, you use sein. With an object, you use haben:

  • Ich bin nach Hause gefahren. – I drove home.
  • Ich habe das Auto gefahren. – I drove the car.

Common mistakes

  • Using haben with movement verbs. Wrong: Ich habe nach Hause gegangen. Right: Ich bin nach Hause gegangen.
  • Using sein with a direct object. Wrong: Ich bin einen Film gesehen. Right: Ich habe einen Film gesehen.
  • Putting the participle in the wrong place. Wrong: Ich habe gesehen einen Film. Right: Ich habe einen Film gesehen.
  • Adding ge- where it does not belong. Wrong: Ich habe gestudiert. Right: Ich habe studiert.

Perfekt or Präteritum?

In spoken German, the Perfekt is the normal past tense. The Präteritum (ich ging, ich sah) appears mostly in writing and in stories. One exception: for sein, haben and modal verbs, people usually prefer the Präteritum even when speaking: Ich war müde. (not Ich bin müde gewesen.) and Ich hatte keine Zeit.

Your turn

Write three sentences about yesterday: one with haben and an object, one with a movement verb and sein, and one with a change of state. Then check yourself with real example sentences and get instant feedback.

Practice German for Free →

Please Login to Comment.