For a past obligation or regret, use should have plus the past participle: I should have called her yesterday. The have moves the sentence into the past.
If the action is now or later, keep the base form: I should call her today.
If you skipped something you now regret, use should have plus the past participle: I should have taken an umbrella. It poured on my way to the bus stop. Your wording tells the reader the action never happened, but you wish it had.
If the thing did happen and you're sorry about it, make it negative: I shouldn't have stayed up until three. I'm exhausted this morning. Here the wording points to a mistake that's already behind you.
If a past obligation went unmet, the same form works: I should have phoned my mother on her birthday. The reader hears that the right action didn't occur, and it matters to you.
Past-time words like last night or yesterday can pin the reference down: I should have studied harder last year. Without them, the have alone still signals that you're looking backward.
In relaxed speech you'll hear the contraction should've, and sometimes even a double contraction like shouldn't've: I shouldn't've shouted at him. That's common in conversation, but it's best saved for informal writing at most.
When you're picking the wording
The one qualifier that changes your wording is whether the action still sits ahead of you. If it does, drop have and use the base form: I should call her today. The moment you add have plus a past participle, your sentence looks backward instead.
So when you're deciding between the two, check your time reference first. If the sentence names a past moment, like yesterday or last night, the past structure fits: I should have emailed them yesterday. If it names now or later, the plain form fits: I should email them tomorrow.
One trap to avoid: never say should has. The past structure is always should have, no matter who the subject is. She should have replied by now is right; she should has replied isn't a form English uses.
And keep the two structures unmixed. I should have called her yesterday and I should call her today do different jobs. Once have plus the past participle is in place, you've moved the action into the past, so a past time word like yesterday fits naturally beside it. The structure also works without one: She should have replied by now puts the missed action in the past on its own.