How it works
- Choose Holidays in Data Import and download the sample, or upload your own list.
- Each row is one holiday, and the name and the date are required.
- Mark optional holidays with Yes, set Repeats every year for fixed-date holidays, and add a category such as Public Holiday or Regional.
- List branches or departments separated by commas, or leave them blank for a holiday everyone gets.
- The row check skips holidays already in the calendar with the same name on the same date, and skips a row that repeats an earlier one in the file.
- After import the holidays appear in Holiday Calendars and in each employee's self-service, limited to their branch and department.
What you can set
- Columns: holiday name, date, optional holiday, repeats every year, category, applies to branches, applies to departments, description.
- Required: name and date.
- Up to 2,000 rows per file.
- Blank branches or departments: the holiday applies to everyone.
- Existing holiday with the same name and date: skipped.
- Optional holidays are picked by employees up to the yearly limit, 2 by default.
Why import the holiday list
Holidays touch attendance grading, leave sandwich rules and payroll, so a wrong date is not a small error. An office in Chennai marked absent on Pongal, or a Gujarat branch missing Gujarat Day, generates a month of corrections. Importing the list that management already approved removes the retyping, and the branch and department columns make multi-state calendars manageable in one file. How holidays, optional holidays and picks work is covered on the holidays page.
Worked example: one file for three states
A consumer goods company with branches in Ahmedabad, Mumbai and Bengaluru prepares its 2027 list in one sheet. Republic Day on 26/01/2027, Independence Day on 15/08/2027 and Gandhi Jayanti on 02/10/2027 have blank branch columns and Repeats every year set to Yes. Gujarat Day on 01/05/2027 lists Ahmedabad, Maharashtra Day on the same date lists Mumbai, and Kannada Rajyotsava on 01/11/2027 lists Bengaluru. Festival holidays whose dates change each year are added with this year's dates, and four of them are marked optional. The check shows 22 holidays to add and none to fix.
Tips for a clean holiday import
Check the list before it goes in, because employees plan travel and family events around it the day it is published. A wrong date corrected later means changed plans for people and leave requests that no longer match the calendar.
- Use your state government's notified list for regional holidays.
- Write branch names exactly as they appear in ZeniaHR.
- Set Repeats every year only for fixed-date holidays.
- Check the optional holiday pick limit before announcing the list.
See holiday list import in a demo
We show it on a video call with your own shifts, leave types and rules. Free for your first 50 employees.
Book a free demoSee pricingFrequently asked questions
Can I upload a holiday list in Excel to ZeniaHR?
Yes. Choose Holidays in Data Import, upload an Excel or CSV file with one row per holiday and review the check. Each row needs a name and a date, and can also say whether the holiday is optional, whether it repeats every year, its category, and which branches and departments it applies to.
How do I mark branch-specific holidays in the import file?
Put the branch name in the Applies to branches column for that row, exactly as the branch is named in ZeniaHR, and list several branches with commas. Leave the column blank and the holiday applies to every branch. The Applies to departments column works the same way.
Can I import optional holidays?
Yes. Put Yes in the Optional holiday column. After import, employees see optional holidays in self-service and the app and pick up to the company's yearly limit, which is 2 by default. HR can see who picked which optional holiday in Holiday Calendars.
What happens if a holiday is already in the calendar?
A row with the same holiday name on the same date as one already in the calendar is skipped, not duplicated, and a row that repeats an earlier row in the same file is skipped too. So running the same file twice, or a corrected version, does not create double holidays.