Here are the rules that could help you build German Perfekt correctly.
Perfekt expresses an action that happened in the past and it consists of two words:
1. haben/sein (Präsens) + 2. Past Participle (of the main verb)
How can I know when to use haben and when sein?
haben:
1) with verbs that have a direct object: ich habe dich gestern gesehen.(see the list of these verbs here)
*This rule is so “strong” that even verbs which normally build Perfekt with sein, like fahren (der Vater IST nach München gefahren), “switch” to haben in sentences where they have a direct Object, for example: der Vater HAT uns nach München gefahren.
2) with verbs with which you could use the word lange (this means that something has lasted long): ich habe 2 Stunden geschlafen.
3) with haben: ich habe einen Hund gehabt.
4) with reflexive verbs: (e.g. sich anziehen, sich freuen) das Kind hat sich angezogen, ich habe mich sehr gefreut.
sein:
1) with verbs of changing location: er ist spazieren gegangen.
2) with verbs that last for only one moment: das Kind ist eingeschlafen.
3) with verbs of changing the condition or state: er ist auf dem Lande aufgewachsen.
4) bleiben: er ist zu Hause geblieben.
5) sein, werden: ich bin in einem Zoo gewesen; er ist groß geworden.
How can I build German Past Participle correctly?
Rule: take the Infinitive (kaufen,kommen) => remove the ending -en (kauf-, komm-) => add the prefix ge- (gekauf-, gekomm-) => add the ending -(e)t (for regular verbs) or -en (for irregular verbs) =>>> gekauft, gekommen. See the list of irregular verbs at the A1 level. or the list of irregular verbs at the A2 level grouped by the vowel change.
If the verb has a separable prefix, then ge- comes in between: anrufen => hat angerufen.
Exceptions:
1) if the verb starts with be-, ge-, emp-, ent-, er-, ver-, zer-, miß- it doesn’t get the prefix ge-: bekommen => hat bekommen, vergessen => hat vergessen
2) if the verb ends with -ieren, it doesn’t get the prefix ge-: telefonieren => hat telefoniert
Interactive online exercises: