The Perfekt is the main past tense of spoken German. It is formed with haben or sein plus a past participle (Partizip II), such as gemacht, gegessen or gefahren. You use it to talk about finished actions and experiences, especially in conversation, messages and emails.
When to use the Perfekt
In everyday German, the Perfekt is the default way to talk about the past. It usually translates as the English past simple, and sometimes as the present perfect.
1. Finished actions in the past
- Ich habe gestern Fußball gespielt. — I played football yesterday.
- Wir sind am Wochenende nach München gefahren. — We went to Munich at the weekend.
2. Life experiences (often with schon or noch nie)
- Hast du schon einmal Sushi gegessen? — Have you ever eaten sushi?
- Ich bin noch nie geflogen. — I have never flown.
3. Past actions with a result now
- Ich habe meinen Schlüssel verloren. — I have lost my key.
- Der Zug ist schon abgefahren. — The train has already left.
How to form the Perfekt
The Perfekt has two parts:
haben or sein (conjugated) + past participle (at the end of the clause)
The auxiliary goes in position 2, and the participle goes to the very end. Germans call this the Satzklammer (sentence bracket).
| Person | with haben | with sein |
|---|---|---|
| ich | habe gearbeitet | bin gegangen |
| du | hast gearbeitet | bist gegangen |
| er / sie / es | hat gearbeitet | ist gegangen |
| wir | haben gearbeitet | sind gegangen |
| ihr | habt gearbeitet | seid gegangen |
| sie / Sie | haben gearbeitet | sind gegangen |
If you are not yet sure of these two verbs, review our guide to sein and haben first.
Statements, negatives and questions
| Type | Example | Translation |
|---|---|---|
| Affirmative | Ich habe eine Pizza bestellt. | I ordered a pizza. |
| Negative (nicht) | Ich habe nicht gut geschlafen. | I didn’t sleep well. |
| Negative (kein) | Ich habe keine Zeit gehabt. | I didn’t have any time. |
| Yes/no question | Bist du gestern ins Kino gegangen? | Did you go to the cinema yesterday? |
| W-question | Was hast du am Samstag gemacht? | What did you do on Saturday? |
Notice that nicht normally comes just before the participle, and everything else (time, objects, places) sits between the auxiliary and the participle.
Forming the past participle
This is the part that needs the most practice. There are a few clear patterns.
Regular (weak) verbs: ge- + stem + -t
| Infinitive | Participle | Meaning |
|---|---|---|
| machen | gemacht | to do, make |
| kaufen | gekauft | to buy |
| spielen | gespielt | to play |
| lernen | gelernt | to learn |
| wohnen | gewohnt | to live |
Spelling note: if the stem ends in -t, -d or certain consonant groups like -gn or -ffn, add -et so the word is easy to pronounce: arbeiten → gearbeitet, warten → gewartet, reden → geredet, regnen → geregnet, öffnen → geöffnet.
Irregular (strong) verbs: ge- + stem + -en
Strong verbs end in -en, and the stem vowel often changes. You need to learn these as vocabulary.
| Infinitive | Participle | Auxiliary | Meaning |
|---|---|---|---|
| essen | gegessen | haben | to eat |
| trinken | getrunken | haben | to drink |
| sehen | gesehen | haben | to see |
| lesen | gelesen | haben | to read |
| schreiben | geschrieben | haben | to write |
| nehmen | genommen | haben | to take |
| sprechen | gesprochen | haben | to speak |
| finden | gefunden | haben | to find |
| schlafen | geschlafen | haben | to sleep |
| gehen | gegangen | sein | to go, walk |
| kommen | gekommen | sein | to come |
| fahren | gefahren | sein | to drive, travel |
| fliegen | geflogen | sein | to fly |
| bleiben | geblieben | sein | to stay |
| sein | gewesen | sein | to be |
| werden | geworden | sein | to become |
Mixed verbs: ge- + changed stem + -t
A small group changes the stem like strong verbs but ends in -t like weak verbs:
- bringen → gebracht (to bring)
- denken → gedacht (to think)
- wissen → gewusst (to know a fact)
- kennen → gekannt (to know a person or place)
Die Party war toll. Ich habe Kuchen mitgebracht. — The party was great. I brought cake.
Separable verbs: -ge- goes in the middle
With separable verbs, ge- goes between the prefix and the stem, and the participle is written as one word.
| Infinitive | Participle |
|---|---|
| einkaufen | eingekauft |
| aufräumen | aufgeräumt |
| anrufen | angerufen |
| aufstehen | aufgestanden |
| fernsehen | ferngesehen |
Ich habe meine Mutter angerufen. — I called my mother.
For more on these verbs, see our guide to separable verbs.
No ge-: inseparable prefixes and -ieren verbs
Some verbs never take ge-:
Verbs with inseparable prefixes (be-, ver-, er-, ent-, emp-, ge-, zer-, miss-):
- besuchen → besucht (to visit)
- erzählen → erzählt (to tell)
- verstehen → verstanden (to understand)
- bekommen → bekommen (to get, receive)
- vergessen → vergessen (to forget)
Verbs ending in -ieren:
- studieren → studiert
- telefonieren → telefoniert
- reparieren → repariert
- passieren → passiert
Was ist passiert? — What happened? Ich habe die Frage nicht verstanden. — I didn’t understand the question.
haben or sein?
Most verbs use haben. Use sein in these cases:
1. Movement from one place to another (the verb has no accusative object)
gehen, fahren, fliegen, kommen, laufen, reisen, fallen
- Sie ist nach Spanien geflogen. — She flew to Spain.
2. A change of state
aufstehen, aufwachen, einschlafen, werden, sterben, wachsen
- Ich bin um sechs Uhr aufgewacht. — I woke up at six o’clock.
- Er ist sehr müde geworden. — He became very tired.
3. A few important exceptions: sein, bleiben, passieren
- Wir sind zu Hause geblieben. — We stayed at home.
- Ich bin letztes Jahr in Wien gewesen. — I was in Vienna last year.
Use haben with:
- verbs with an accusative object: Ich habe einen Film gesehen. — I watched a film.
- reflexive verbs: Wir haben uns sehr gefreut. — We were very pleased.
- most other verbs, including schlafen, arbeiten, wohnen, sitzen
Watch out: fahren takes haben when it has a direct object: Ich habe das Auto in die Werkstatt gefahren. — I drove the car to the garage. But: Ich bin in die Stadt gefahren. — I drove into town.
In southern Germany, Austria and Switzerland, you will also hear ich bin gesessen / gestanden / gelegen. In standard northern German these take haben.
Word order in subordinate clauses
After conjunctions like weil, dass and wenn, the conjugated verb goes to the end, so the auxiliary comes after the participle:
- Ich bin müde, weil ich lange gearbeitet habe. — I’m tired because I worked late.
- Sie sagt, dass sie den Bus verpasst hat. — She says that she missed the bus.
Our guide to weil, dass and wenn explains this word order in detail.
Signal words
These time expressions often appear with the Perfekt:
- gestern, vorgestern — yesterday, the day before yesterday
- letzte Woche, letztes Jahr, letzten Monat — last week / year / month
- am Wochenende, am Montag — at the weekend, on Monday
- vor zwei Tagen, vor einem Jahr — two days ago, a year ago
- heute Morgen — this morning
- schon, schon einmal, noch nie — already, ever, never
Perfekt or Präteritum?
German has a second past tense, the Präteritum (ich spielte, ich ging). The difference is mainly about style, not meaning:
- Perfekt: spoken German, chats, personal emails
- Präteritum: written narratives, news, books
One important exception: even in speech, Germans usually use the Präteritum for sein, haben and the modal verbs:
- Ich war gestern krank. (more common than Ich bin krank gewesen.) — I was ill yesterday.
- Wir hatten keine Zeit. — We didn’t have time.
- Ich musste arbeiten. — I had to work.
You will study the Präteritum in more depth later; our Simple Past (Präteritum) guide is the next step after this one.
Perfekt is not the English present perfect
Do not use the Perfekt for actions that started in the past and are still happening. German uses the present tense with seit:
- Ich wohne seit drei Jahren in Berlin. — I have lived in Berlin for three years.
Common mistakes
- ✗ Ich habe nach Hamburg gefahren. → ✓ Ich bin nach Hamburg gefahren. — Movement to a place uses sein.
- ✗ Er hat um sieben aufgestanden. → ✓ Er ist um sieben aufgestanden. — aufstehen is a change of state, so it uses sein.
- ✗ Ich habe gegesst. → ✓ Ich habe gegessen. — essen is a strong verb, so the participle ends in -en.
- ✗ Wir haben die Oma gebesucht. → ✓ Wir haben die Oma besucht. — Verbs with be- take no ge-.
- ✗ Ich habe lange getelefoniert. → ✓ Ich habe lange telefoniert. — Verbs ending in -ieren take no ge-.
- ✗ Ich habe geeinkauft. → ✓ Ich habe eingekauft. — With separable verbs, ge- goes after the prefix.
- ✗ Ich habe gemacht meine Hausaufgaben. → ✓ Ich habe meine Hausaufgaben gemacht. — The participle goes to the end.
- ✗ …, weil ich habe viel gearbeitet. → ✓ …, weil ich viel gearbeitet habe. — In a weil-clause the auxiliary goes last.
- ✗ Ich habe hier seit zwei Jahren gewohnt. → ✓ Ich wohne seit zwei Jahren hier. — For something still true now, use the present tense with seit.
Quick check
Complete the sentences in the Perfekt.
- Ich ___ gestern lange ___. (schlafen)
- Wir ___ am Samstag nach Berlin ___. (fahren)
- Lena ___ ihre Oma ___. (besuchen)
- Wann ___ du heute ___? (aufstehen)
- Ich bin müde, weil ich viel ___ ___. (arbeiten)
Answers
- habe … geschlafen
- sind … gefahren
- hat … besucht
- bist … aufgestanden
- gearbeitet habe
Next step
Now put the rules into practice. Start with our A2 Perfect Tense test 1 to check participles and the choice between haben and sein, then try Perfect Tense test 2 for more word order and mixed-verb practice. If a particular participle keeps tripping you up, add it to your vocabulary list together with its auxiliary, for example fahren – ist gefahren, so you learn both at once.
Was this page helpful?
What was the problem?
Thank you for your feedback!