I swore that I would not go to a certain city but then I went there so as not to anger my parents. Should I offer kafaarat yameen or what should I do?.
Praise be to Allaah.
Yes, you have to offer kafaarat yameen. You did well to please your parents, because the Prophet (peace and blessings of Allaah be upon him) said: “Whoever swears an oath and then sees that something else is better than that, let him do that which is better and let him offer expiation for his oath.” Narrated by Muslim, 1650, from the hadeeth of Abu Hurayrah (may Allaah be pleased with him). But if your going to that city involved doing something that Allaah has forbidden, then you should found another way to please your parents and you should have kept your vow.
Kafaarat yameen (the expiation for breaking a vow) is to feed or clothe ten poor people, or to free a slave. Whoever cannot do these things should fast for three days, because Allaah says (interpretation of the meaning):
“Allaah will not punish you for what is unintentional in your oaths, but He will punish you for your deliberate oaths; for its expiation (a deliberate oath) feed ten Masaakeen (poor persons), on a scale of the average of that with which you feed your own families, or clothe them or manumit a slave. But whosoever cannot afford (that), then he should fast for three days. That is the expiation for the oaths when you have sworn. And protect your oaths (i.e. do not swear much). Thus Allaah makes clear to you His Ayaat (proofs, evidences, verses, lessons, signs, revelations, etc.) that you may be grateful”
It is not sufficient to pay for these things in cash, according to the majority of scholars.
And Allaah knows bes