German Perfect Tense: Haben or Sein, Plus the Past Participle
The German perfect tense combines conjugated haben or sein with a past participle: Ich habe gelernt, Ich bin gekommen. It is common for talking about past events in conversation. Most verbs use haben; many intransitive changes of place or state use sein, as do sein and bleiben. Learn the auxiliary and participle with each common verb, including exceptions.
Published 21 September 2026 · Updated 13 October 2026
To say what happened yesterday, German often needs two verb parts. Ich habe gestern gearbeitet means I worked yesterday. The helping verb tells you about the subject; the participle gives you the past action.
Four useful pairs
Infinitive
Perfect form with er / sie
Meaning
lernen
hat gelernt
learned / studied
essen
hat gegessen
ate / has eaten
gehen
ist gegangen
went / has gone
bleiben
ist geblieben
stayed / has stayed
A participle is a verb form used here with an auxiliary, a helping verb, to build the tense. German perfect does not map exactly to English present perfect. Ich habe gestern gelernt naturally translates as I studied yesterday, although English “I have studied yesterday” is normally wrong.
Build the regular participle
For many regular verbs, use ge + stem + t: machen → gemacht, lernen → gelernt. Some need an extra e: arbeiten → gearbeitet. Strong verbs often have -en and a changed stem: trinken → getrunken, schreiben → geschrieben. Learn those forms rather than deriving every participle from the present.
Verbs ending in -ieren omit ge: studieren → studiert. Inseparable-prefix verbs do too: besuchen → besucht. With a separable prefix, ge often sits inside: einkaufen → eingekauft. The prefix pattern matters as much as the ending.
Choose haben or sein
Haben covers many activities and verbs with accusative objects: Ich habe ein Buch gelesen — I read a book. Sein appears with many intransitive verbs expressing a change of location or state: Ich bin angekommen — I arrived; Ich bin eingeschlafen — I fell asleep. Intransitive means the construction has no direct accusative object.
Sein and bleiben also use sein: Ich bin hier gewesen, Ich bin zu Hause geblieben. “Movement” alone is too rough a rule. For example, Ich habe getanzt uses haben. Fahren can use sein for travelling and haben in transitive uses such as driving a vehicle. Check the construction, not just the image in your head.
There is regional variation with certain verbs, including sitzen and stehen. Standard teaching for Germany commonly uses haben for these; Austrian and southern usage can use sein. Recognising the variation is more useful than calling every different auxiliary an error.
Put the verb parts in place
Gestern habe ich Kaffee getrunken — Yesterday I drank coffee. Habe stays second and getrunken comes later. For a question: Hast du Kaffee getrunken? For a standard weil clause: … weil ich Kaffee getrunken habe. The auxiliary now goes to the end.
A short past account
Ich bin nach Hause gegangen. Dann habe ich gekocht. Ich habe gut geschlafen. I went home. Then I cooked. I slept well.
Complete Ich ___ gekommen and Wir ___ gearbeitet. Answers: bin and haben. Learn the full pairs kommen–ist gekommen and arbeiten–hat gearbeitet; they save you a fresh decision every time you tell a story.