There is no real difference in meaning between them. Both refer to the past and the suggestion is that the action promised - calling - did not, in fact, happen as planned.
Let's suppose the past occasion was yesterday evening and the speaker had previously arranged/decided to call the woman (her) in question. However, things conspired to prevent that; perhaps the speaker simply forgot or an emergency arose and had to be dealt with. Whatever...the call did not take place.
Today, someone says to the speaker, "I thought you were going to call Alison yesterday evening." In response to this, the speaker is perfectly free to use either of the options you offer. "I was to call her but I forgot" or "I was to have called her but I had to take John to hospital."
The underlying idea may be called "future in the past".