We can use 'should have' to talk about past events that did not happen.
- I should have let her know what was happening but I forgot.
- He should have sent everybody a reminder by email.
- They should have remembered that their guests don't eat pork.
We can also use 'should have' to speculate about events that may or may not have happened.
- She should have got the letter this morning. I expect she'll give us a call about it later.
- He should have arrived at his office by now. Let's try ringing him.
- They should have all read that first email by this stage. It's time to send the next one.
We can use ' should not have' to speculate negatively about what may or may not have happened.
- She shouldn't have left work yet. I'll call her office.
- He shouldn't have boarded his plane yet. We can probably still get hold of him.
- They shouldn't have sent the report off for printing yet. There is still time to make changes.
We can also use 'should not have' to regret past actions.
- I shouldn't have shouted at you. I apologise.
- We shouldn't have left the office so late. We should have anticipated this bad traffic.
- They shouldn't have sacked him. He was the most creative person on their team.