Tenses are normally divided into simple and compound ones, the letter result from the union of the past participle and the conjugated form of the verb essere (to be) or avere (to have). Many students have come to be with doubts concerning the use of the one or the other auxiliary.
Although it might sound confusing whether to go for the first or second option, all you need to know can be summed up in a few rules that you need to remember whenever you need to conjugate a compound verb in Italian.
The verbs that take the AUXLIARY AVERE are the transitive verbs that takes a direct object, for example:
Ho fatto una torta stasera. I have made a cake tonight.
Ho pulito la casa. I have cleaned the house.
Ho guidato l’auto. I have driven the care.
The verbs that take the AUXILIARY ESSERE are the intransitive verbs like the verbs of movement (andare, salire, scendere, tornare, arrivare), the reflexive verbs (arrabiarsi, lavarsi, vestirsi), the pronominal verbs (accorgersi, vergognarsi) and the impersonal verbs (succedere).
Sono salito sull’areo senza valigie. I got on the plane without any luggage.
Mi sono arrabbiato con i miei oggi. I got mad at my parents today.
Mi sono accorto troppo tardi di aver perso il portafogli. I realized too late that I had lost my wallet.
Cosa é successo? What happened?
There are some verbs that can take both ESSERE and AVERE.
They are the verbs that describe the weather conditions (piovere, grandinare, nevicare) or the verbs, vivere, volare e scivolare.
The Italian modal verbs, aka verbi servili, take the auxiliary AVERE when they are simple tenses, while in the compound tenses followed by an infinitive, they takes the auxiliary of the infinitive. For example:
Sono dovuto andare mangiare. I had to go to eat.
Ho dovuto cucinare in fretta, non avevo tempo. I had to cook in a rush, I was short of time.