Perfect Tense with *haben* in German
Perfekt mit haben
This article is part of the German grammar tree on Settemila Lingue.
In Brief
German commonly talks about completed past events with the Perfekt: a present-tense form of haben plus a past participle (a verb form such as gemacht or gesehen). Conjugate haben for the subject and normally put the participle at the end: Ich habe gestern gearbeitet. This can mean “I worked yesterday,” not only “I have worked.”
Overview
The Perfekt is the everyday past tense for most verbs in spoken German. It also appears frequently in informal messages, emails, and conversations reproduced in writing. At A2, the essential pattern is straightforward: choose the correct form of haben, then place the past participle at the end of the clause.
English has a similar-looking construction in “I have eaten,” but the two languages do not use it in exactly the same way. English usually rejects the present perfect with a finished time such as “yesterday”: you say “I ate yesterday.” German readily says Ich habe gestern gegessen. The German Perfekt can therefore correspond to either the English simple past or the English present perfect, depending on context.
Most German verbs form the Perfekt with haben. A smaller, important group uses sein, especially verbs expressing movement from one place to another or a change of state. Learn the basic haben pattern first, but remember that the auxiliary is part of each verb’s past-tense behavior.
How It Works
The basic pattern
A normal statement follows this structure:
subject + conjugated haben + other information + past participle
Wir haben am Samstag Fußball gespielt.
We played soccer on Saturday.
The conjugated auxiliary occupies the usual verb position. The past participle closes the clause, creating a sentence bracket: the two verb parts surround the middle of the sentence.
| Subject | Form of haben | Example |
|---|---|---|
| ich | habe | Ich habe gekocht. |
| du | hast | Du hast gekocht. |
| er / sie / es | hat | Er hat gekocht. |
| wir | haben | Wir haben gekocht. |
| ihr | habt | Ihr habt gekocht. |
| sie / Sie | haben | Sie haben gekocht. |
Only haben changes for person and number. The participle remains the same: ich habe gespielt, du hast gespielt, wir haben gespielt.
Forming the past participle
The past participle, called Partizip II in German, is the form used with haben or sein. These are the main patterns:
| Verb type | Pattern | Examples |
|---|---|---|
| Regular verbs | ge- + stem + -t | machen → gemacht, spielen → gespielt |
| Many irregular verbs | often ge- + changed stem + -en | sehen → gesehen, schreiben → geschrieben |
| Mixed verbs | vowel/stem change + -t | bringen → gebracht, denken → gedacht |
| Inseparable-prefix verbs | no ge- | verkaufen → verkauft, verstehen → verstanden |
| Verbs ending in -ieren | no ge- | studieren → studiert, telefonieren → telefoniert |
| Separable-prefix verbs | ge- between prefix and stem | einkaufen → eingekauft, anrufen → angerufen |
Participle formation is a separate skill, and irregular forms must often be learned with the infinitive (the dictionary form of a verb). A useful vocabulary entry is therefore not just schreiben, but schreiben – hat geschrieben.
Which verbs use haben?
Use haben with most verbs, including:
- verbs with a direct object (the person or thing directly affected): Ich habe den Film gesehen.
- reflexive verbs, which use a pronoun such as mich or sich: Sie hat sich entschuldigt.
- verbs describing an activity without a change of place or state: Wir haben gearbeitet.
- modal verbs in simple uses: Das habe ich nicht gewollt. Advanced infinitive combinations need a special pattern discussed below.
- impersonal and weather verbs: Es hat geregnet.
The beginner shortcut “most verbs use haben” is reliable. However, do not decide only from the English meaning. Some common German verbs require sein: gehen → ist gegangen, kommen → ist gekommen, einschlafen → ist eingeschlafen, and bleiben → ist geblieben.
Statements, questions, and subordinate clauses
In a statement, the conjugated auxiliary is in the second position and the participle is at the end:
Heute habe ich lange gearbeitet.
I worked for a long time today.
A yes/no question begins with the auxiliary:
Hast du die E-Mail gelesen?
Did you read the email? / Have you read the email?
A question-word question places the question word first and the auxiliary second:
Warum habt ihr so lange gewartet?
Why did you wait so long?
In a subordinate clause (a dependent part introduced by words such as weil “because”), both verb parts move to the end, with the participle before the auxiliary:
Ich bin müde, weil ich wenig geschlafen habe.
I am tired because I slept very little.
Negation and objects
Words such as nicht, nie, and noch nicht stay inside the sentence bracket. Their exact position depends on what is being negated:
- Ich habe den Film nicht gesehen. — I did not see the film.
- Ich habe noch nicht gegessen. — I have not eaten yet.
- Wir haben nicht im Hotel übernachtet. — We did not stay at the hotel.
Object pronouns also appear in the middle, before the final participle: Ich habe ihn gestern angerufen. (“I called him yesterday.”)
Examples in Context
| German | English | Note |
|---|---|---|
| Ich habe gegessen. | I ate. / I have eaten. | Basic haben + participle pattern |
| Er hat den ganzen Vormittag gearbeitet. | He worked all morning. | An activity uses haben |
| Wir haben nach dem Essen Karten gespielt. | We played cards after the meal. | The participle closes the clause |
| Hast du meine Nachricht gelesen? | Did you read my message? / Have you read my message? | Yes/no question |
| Wann habt ihr das Museum besucht? | When did you visit the museum? | Question-word question |
| Meine Schwester hat eine neue Wohnung gefunden. | My sister found a new apartment. | Irregular finden → gefunden |
| Ich habe meine Schlüssel zu Hause vergessen. | I left my keys at home. | vergessen has no ge- prefix added |
| Sie hat gestern ihre Großeltern angerufen. | She called her grandparents yesterday. | Separable anrufen → angerufen |
| Wir haben im Supermarkt eingekauft. | We shopped at the supermarket. | Separable einkaufen → eingekauft |
| Es hat die ganze Nacht geregnet. | It rained all night. | Impersonal weather verb |
| Warum hast du dich nicht entschuldigt? | Why didn’t you apologize? | Reflexive verb and negation |
| Ich weiß, dass er in Berlin studiert hat. | I know that he studied in Berlin. | Both verb parts at the end of a subordinate clause |
| Nachdem wir gegessen haben, gehen wir spazieren. | After we have eaten, we’ll go for a walk. | A completed event before a present/future action |
| Sie hat schon dreimal in Deutschland gearbeitet. | She has worked in Germany three times. | Experience relevant to the present |
Common Mistakes
Using the infinitive instead of the participle
- Wrong: Ich habe gestern arbeiten.
- Right: Ich habe gestern gearbeitet.
- Why: The ordinary Perfekt needs a past participle, not the infinitive arbeiten.
Leaving the participle beside haben
- Wrong: Ich habe gesehen den Film.
- Right: Ich habe den Film gesehen.
- Why: In a main clause, the participle normally goes at the end. English keeps “have seen” together; German usually splits the two parts.
Copying the English present-perfect restriction
- Wrong assumption: “I cannot use the Perfekt with gestern because English says ‘I went yesterday.’”
- Right: Ich habe gestern einen Film gesehen.
- Why: German commonly combines the Perfekt with finished past times. Translate according to meaning, not word for word.
Adding ge- to every participle
- Wrong: Ich habe geverkauft. / Wir haben gestudiert.
- Right: Ich habe verkauft. / Wir haben studiert.
- Why: Inseparable prefixes such as ver- and verbs ending in -ieren do not take ge-.
Choosing haben for every verb
- Wrong: Sie hat nach Hause gegangen.
- Right: Sie ist nach Hause gegangen.
- Why: Many verbs of directed movement and change of state form the Perfekt with sein. The haben rule covers most verbs, not all verbs.
Conjugating the participle
- Wrong: Du hast gegesst.
- Right: Du hast gegessen.
- Why: Conjugate haben (habe, hast, hat); do not add a personal ending to the participle. Irregular gegessen stays unchanged.
Usage Notes
The usual past tense in conversation
In much of everyday German, the Perfekt is the default way to recount events: Was hast du gestern gemacht? In narratives, news reports, and formal written prose, the Präteritum (simple past) is more common: Er öffnete die Tür und ging hinaus. The choice is partly about register and region, not a difference identical to English “I did” versus “I have done.”
Even in conversation, Germans often use the Präteritum of a few frequent verbs, especially sein, haben, and modal verbs: Ich war müde, Ich hatte keine Zeit, Ich konnte nicht kommen. Forms such as ich bin müde gewesen and ich habe keine Zeit gehabt are grammatical, but the shorter simple-past forms are often more natural.
When the present result matters
The same Perfekt can emphasize a result that matters now:
Ich habe meinen Schlüssel verloren.
I have lost my key. (I do not have it now.)
Context can instead place the event in a finished story: Ich habe letztes Jahr meinen Schlüssel verloren. (“I lost my key last year.”) German does not require a separate form for these two readings.
Verbs that can switch auxiliary
A few verbs can use sein or haben depending on meaning, grammar, or regional usage. For a clear beginner example, fahren generally uses sein when the subject travels—Wir sind nach Köln gefahren—but can use haben when someone operates or drives something as a direct object: Er hat den Bus gefahren. Learn such cases with complete example sentences rather than relying on the vague rule “all movement uses sein.”
Beyond the Basics / Advanced Use
You do not need to master the following patterns at A2, but they explain forms you will meet later.
Perfect forms with modal verbs
When a modal verb accompanies another infinitive, German normally uses a double infinitive (two dictionary forms) instead of the modal’s usual participle. This is called the Ersatzinfinitiv:
Ich habe länger arbeiten müssen.
I had to work longer.
Sie hat nicht kommen können.
She could not come.
The familiar sentence bracket remains, but arbeiten müssen or kommen können stands at the end. This is different from the standalone participle in Das habe ich nicht gewollt (“I didn’t want that”).
Word order in advanced subordinate clauses
With an ordinary participle, subordinate-clause order is participle + auxiliary: weil ich lange gearbeitet habe. With a double infinitive, standard word order often places the finite auxiliary before the two infinitives: weil ich länger habe arbeiten müssen. This exception belongs to advanced German; at A2, focus on ordinary clauses such as weil ich gearbeitet habe.
The past perfect
To describe an event completed before another past event, German uses the Plusquamperfekt (past perfect). Replace present-tense haben with its simple-past form hatte while keeping the participle:
Ich hatte schon gegessen, als sie anrief.
I had already eaten when she called.
This grows directly from the pattern learned here: habe gegessen → hatte gegessen.
Passive forms that look similar
Do not confuse haben + participle with passive constructions using werden or sein. Der Mechaniker hat das Auto repariert means “The mechanic repaired the car” and is active. Das Auto wurde repariert means “The car was repaired” and is passive: the subject receives the action.
Practice Tips
- Learn three pieces together. Record each new verb as infinitive, auxiliary, and participle: sehen – hat gesehen; gehen – ist gegangen. This prevents both participle and auxiliary errors.
- Build the sentence bracket aloud. Start with Ich habe … gemacht, then insert details: Ich habe gestern mit meiner Schwester einen Kuchen gemacht. Keep the final participle in place.
- Retell one day in five sentences. Use a time phrase and a different verb in each sentence, then turn two statements into questions and one into a weil clause. This practices meaning and word order together.
Related Concepts
- Prerequisite: Verb haben (Present) — supplies the auxiliary forms habe, hast, hat, haben, and habt.
- Next step: Past Participle Formation — develops the regular, irregular, prefixed, and -ieren patterns in detail.
- Contrast: Perfect Tense with sein — covers movement, change-of-state verbs, and other verbs that do not use haben.
- Later past form: Simple Past: sein, haben — explains frequent conversational forms such as war and hatte.
- Advanced next step: Past Perfect (Plusquamperfekt) — places one completed event before another past event.
- Advanced construction: Double Infinitive Construction — explains forms such as hat arbeiten müssen and hat kommen sehen.
Prerequisite
German “haben” in the Present TenseA1Concepts that build on this
More A2 concepts
This concept in other languages
Compare across all languages
Practice Perfect Tense with haben in German with a free Settemila Lingue account. We will set up German · A2 and generate cards for this exact grammar concept.
Practice this concept