You can use a Regional Calendar (see the Resource Management User Guide) to set non-working days for an organization unit, resource, or project.
If you're trying to schedule in the holiday for everyone at the same time, this would work. If you need the resources to all have their holiday at differing times then you can set those dates in the resource's individual calendars.
Actually I did tried that option but what happens is since the staffing profile and budgets are already created, when I now set particular dates as non-working, planned hours and therefore planned budget value remains same.
The FTE value increases since you now have less working days in that month.
We also tried reducing the hours per day from 8 to 7 and it has the same effect as above.
We also tried reducing the resource pool participation of particular resource and even that does not help.
Not sure what you're trying to accomplish when you say "so that budgets get recalculated"
If you have less working time due to vacation, you would have to extend the term of your staffing profile and push some of the effort into the new month(s) if you want the positions to remain scheduled as 1 FTE. That won't happen automatically. When you do that, the costs will roll up to the budget but you will need to extend the dates on that too.