Import Time Off Data

This feature is included in Core, Pro, and Elite packages.

How do I import time off data?

Purpose: To teach you how to use the time off importer to import time off details of multiple employees at once.


Do you prefer hands-on learning? Our interactive guides will guide you through different aspects of your BambooHR experience. We have an interactive guide specifically designed to show you how to import time off data. You can use the link below to access this guide. All you need to do is modify the "REPLACEME" with your BambooHR subdomain,  and you can get started!

https://REPLACEME.bamboohr.com/home??pendo=KBXIUHoTlUz1-sdGF2J9scSuO9E&step=zUax5kqQ0nhWtCcSeazBlz2sF3w

**CAUTION: Whenever using the importing feature, we recommend running a test import of a single line to catch any formatting errors in the prepared data. Once you have imported the single line data, double-check if the data has entered as expected, and then continue to import the remaining data.

Time Off settings

Screenshot of the BambooHR Settings menu with the Time Off section open. The main panel displays the Time Off Overview with boxes showing categories such as policies and balances. An orange arrow points to the gear icon in the top-right corner of the Overview panel, which is used to access the Time Off Import option. The left-hand navigation bar is visible with Time Off highlighted in green. At the top of the page, a yellow caution box advises users to first run a test import of a single line to catch formatting errors before proceeding with a full data import.

When you need to add a large amount of time off information to BambooHR, you can use the time off importer to help you get this information added more efficiently. The time off importer can import the following time off information of your employees:

  1. Policy assignments
  2. Opening balances
  3. Balance adjustments
  4. Time off requests

To access the time off importer, go to Time Off in Settings, click Overview, and click on the gear icon. Select Time Off Import...

Download the time off template

Screenshot of the Time Off Import page in BambooHR. The interface shows a dropdown menu labeled “Select an Import Type,” with “Policy assignment import” chosen. Below this, the option Download the import template file is highlighted with an orange circle. The upload section beneath shows a “Choose File” button with a note reminding users that the file must be in .txt, .csv, .xls, or .xlsx format. The instructional note below the screenshot explains that templates include required fields and may be customized with additional reference-only columns like Employee Name, though only the official template columns can be imported.

Select the type of information you would like to import in the drop-down menu. Then, select import template file.

Because there is specific information required for each import, we have created a template for you to fill out. You can add columns to the template for reference purposes (i.e., Employee Name). Note that you can only import the columns that are in the downloaded template.

Expand or collapse content Complete the policy assignments template

To avoid errors, we recommend importing your data templates in the following order:

  1. Policy Assignment
  2. Opening Balance
  3. Balance Adjustment
  4. Time Off Requests

Another easy way to get the Employee Name and Employee # into the template is to copy and paste the information from a custom report in BambooHR.

Spreadsheet example showing how to complete the Policy Assignments import template. The table has five numbered column headers, marked by black circles with white numbers, corresponding to Employee Name, Employee #, Accrual Policy, Time Off Category, and Accrual Start. The rows display sample employee data, with policy names, categories, and accrual start dates filled in. The instructions emphasize that Employee Name is for reference only and will not be imported, while Employee # must exactly match what is in BambooHR. A blue information box at the bottom notes that policy accruals and carryover updates will appear after a nightly system update, and users can preview changes using the future balance tool.

You are now ready to fill in the downloaded template. Please note that the example above is the policy assignment template, and you can find detailed information about all other time off import templates at the end of this article.

For the Policy Assignments template, enter the following data:

  1. Employee Name: I have added this column to the template for reference purposes only. This column will not import.*
  2. Employee #: The exact Employee # listed in BambooHR.*
  3. Accrual Policy: The name of the time off policy (not the type category name).  You must enter the policy name exactly as it appears within BambooHR.
  4. Time Off Category: The time off category associated with the policy.
  5. Accrual Start: The date that you want the system to start accruing time off for an employee. For example, in row #2, Charlotte Abbott is being assigned the Vacation policy as of 1/1/2023. This means that the system will activate this policy and will start accruing as of 1/1/2023. Please note that dates must be in a format with the four-digit year.

After entering all of the appropriate data into the template, save the file as a .csv  or .txt file. It is then ready for import. (See importing steps above.)

When assigning policies through import, all accruals and carryover loss will appear after a nightly system update at 1:00 a.m. (Mountain Time). You can use the calculate future balance tool to review changes before a nightly update.

Time off importer

Screenshot of the Time Off Import page showing the three-step process for importing data. Step one is selecting the import type, shown in a dropdown menu. Step two is choosing the prepared .csv or .txt file, with the “Choose File” button displayed. Step three is uploading the file using the Upload File button. A blue information box at the bottom clarifies that for Flexible or Year-To-Date (YTD) policies, only Policy Assignment and Time Off Request data can be imported; opening balances and balance adjustments cannot be imported because flexible policies do not track balances.

To import your time off information, follow these three steps:

  1. Select the import type you want to complete.
  2. Click Choose File and select your .csv or .txt file from your computer.
  3. Click Upload File.

Important Note on Flexible Time Off Data Imports

When importing data for Flexible, Year-To-Date (YTD) Time Off policies, you can only import Policy Assignment and Time Off Request data.

You cannot import opening balances or balance adjustments for these policies. This is because flexible policies track time taken rather than maintaining a traditional balance.

Match your data

Screenshot of the Match Your Data screen within the importer. The table shows three columns: Import File Column with the uploaded file’s headers, BambooHR Field with the mapped system fields, and Sample Data displaying a preview row from the import file. The example includes fields like Employee #, Time Off Category, and Accrual Policy. A green annotation at the top reminds users to ensure the number of records being uploaded matches the number of rows in their template. An orange highlight circles the record count at the top of the page. At the bottom of the table, green and gray buttons provide Import and Cancel options.

After you have uploaded your file, map the data in the template to the corresponding fields within BambooHR.

  1. Import File Column: The column headers (Row 1) from your template.
  2. BambooHR Field: The fields that your data will import into within BambooHR. Since you have downloaded the template directly from BambooHR, the fields have matched up already. Note: If you have added any columns to the template (such as the Employee Name column), you will not import them, and make sure to select Do not import this field as shown above.
  3. Sample Data: The data from Row 2 of your import template. Double-check the data to ensure it looks correct.

If everything looks good, click Import.

Import results

Screenshot of the help article text explaining common error messages that may occur during time off imports. No interface screenshot is shown here, but the instructional content lists errors such as “This policy doesn’t exist,” “Time off category not found,” “Employee already has this policy,” “Could not parse the date,” and a general “An error occurred” message. Each error description includes guidance on why it occurs, such as incorrect spelling or formatting, mismatched category names, duplicate policy assignments, date format issues, or importing too many rows at once.

After you have completed an import, a confirmation message will show. A green confirmation message will show if you imported all lines successfully. An orange-colored alert will show if any rows have errors. Click Show import details to display specific row-by-row information.

Expand or collapse content What to do if you get a Time Off error while importing
Expand or collapse content Time Off Error Message: "Employee is not assigned to the specified category."

What's going on: You may have tried to import an opening balance, balance adjustment, or time off request before the policy assignment import. Make sure you have assigned employees to policies before attempting any other import types.

Expand or collapse content Time Off Error Message: “Policy effective date is before employee hire date”

What’s going on: The Time Off Accrual Start Date, or policy effective date, cannot be before the Hire Date.

Expand or collapse content Time Off Error Message: “This policy doesn’t exist”

What’s going on: Time Off Policy name does not match the settings. The spelling, spacing, and capitalization must match exactly to settings.

Expand or collapse content Time Off Error Message: “Time off category not found”

What’s going on: Time Off Category name does not match the settings. The spelling, spacing, and capitalization must match exactly to the time off category in settings.

Expand or collapse content Time Off Error Message: “Employee already has this policy”

What’s going on: This error comes from the Policy Assignment importer. If you are not trying to assign a new policy, you may need to use a different time off importer option to accomplish your needs. Review the Time Off tab for the employee to verify the correct policy is assigned. 

Expand or collapse content Time Off Error Message: "Could not parse the date."

What's going on: This error happens because the date is not in a proper format. Make sure that your dates are listed as MM/DD/YYYY.

Expand or collapse content Time Off Error Message: "An error occurred. We cannot handle your request at this time."

What's going on: This error message can occur for a number of reasons, but most commonly if you're trying to import too much data at once. If importing more than 400 rows of data, try breaking up the data into two smaller imports. If the error persists, please reach out to Support. 

Spot-check

Screenshot of an employee’s Time Off tab in BambooHR, used for spot-checking after an import. The top section displays the employee’s available balances for various categories such as vacation, bereavement, and birthday leave. The middle section shows an Upcoming Time Off panel listing future requests, with a callout pointing to an example balance note for sick time. The History section below includes a record of added balances, with an orange highlight around the “Earned Hours” field to demonstrate where the imported data appears. This page shows how to verify that imported balances display correctly for an employee.  Opening Balances Template Example with Numbered Columns (Page 9, lower section) Spreadsheet example showing the format for importing opening balances. The table has five numbered columns labeled Employee Name, Employee #, Opening Balance, Time Off Category, and Effective Date. The rows contain sample employee data with positive and negative balances for categories such as sick leave, along with effective dates. The instructions note that Employee Name is for reference only and will not be imported, while Employee # must match BambooHR records.  Balance Adjustments Template Example with Numbered Columns (Page 10) Spreadsheet example showing the Balance Adjustments import template. Six numbered columns are displayed: Employee Name, Employee #, Balance Adjustment, Time Off Category, Comment, and Effective Date. Sample rows include employee IDs, adjustment values (positive and negative), category names such as vacation, comments like “Q1 Time Off Bonus,” and effective dates. The guidance below the screenshot explains that Employee Name is for reference only, adjustments should be entered as raw numbers without units, and the system will interpret them based on the category type.  Time Off Requests Template Example with Numbered Columns (Page 11) Spreadsheet example showing the PTO Requests import template. Six numbered columns are displayed: Employee Name, Employee #, Date, Time Off Category, Amount Requested, and Note. Sample data shows requests for categories like sick and vacation, with amounts expressed in fractions or whole numbers, and notes like “Stomach Flu” or “Family Vacation.” The text explains that consecutive dates in the spreadsheet automatically group into one request, requests must use a four-digit year format, and the Amount Requested field must align with the category’s unit type (days or hours). Notes compile across multi-day requests, and minus signs should not be entered.  Final Notes on Time Off Request Imports (Page 12) Instructional text emphasizing that imported time off requests are automatically assumed to be approved, bypassing the usual approval workflow and notifications. A reminder notes that if any date within a grouped multi-day request contains an error, the entire request will fail and must be re-imported. Another note highlights that Employee Name and Employee # can be copied from a custom report for efficiency. No interface screenshot is shown on this page.  ✅ That completes alt-text coverage for all images and instructional visuals in your PDF.  Would you like me to compile all of these alt-text paragraphs into a single ready-to-use list (one per image, in order), so you can directly add them into your help article system?

After you have completed an import, spot-check a few employees to ensure their entered information is correct.


Expand or collapse content Do you need to import opening balances?
Spreadsheet example showing the format for importing opening balances. The table has five numbered columns labeled Employee Name, Employee #, Opening Balance, Time Off Category, and Effective Date. The rows contain sample employee data with positive and negative balances for categories such as sick leave, along with effective dates. The instructions note that Employee Name is for reference only and will not be imported, while Employee # must match BambooHR records.

For the opening balance template, enter the following data:

  1. Employee Name: I have added this column to the template for reference purposes only. I will choose not to import this column at the time data is entered through the importer.
  2. Employee #: The exact Employee # listed in BambooHR located on each employee's Personal Tab.*
  3. Opening Balance: (Number field) For a positive amount, the number should be entered as shown in lines 2, 3, and 5. For a negative amount (i.e., someone who has currently used more vacation time than they have), enter a negative number as shown in line 4.
  4. Time Off Category: The time off category that receives the amount listed in column C. The name of the type must match the name of the time off category within BambooHR.
  5. Effective Date: (Date field) The opening balance date. For example, If I were to add an opening balance for an employee as of May 1, 2022, and then put 5/1/2022 in column E. Please note that dates must be in a format with the four-digit year (mm/dd/yyyy). *If you use a different date format in your account, the import will automatically switch the dates to the correct format upon importing the spreadsheet.

After entering all of the appropriate data into the template, save the file as a .csv or .txt (Unicode Text) file.

*Note: An easy way to get the Employee Name and Employee # into the template is to copy and paste the information from a custom report in BambooHR.

Expand or collapse content Do you need to import balance adjustments?
Spreadsheet example showing the Balance Adjustments import template. Six numbered columns are displayed: Employee Name, Employee #, Balance Adjustment, Time Off Category, Comment, and Effective Date. Sample rows include employee IDs, adjustment values (positive and negative), category names such as vacation, comments like “Q1 Time Off Bonus,” and effective dates. The guidance below the screenshot explains that Employee Name is for reference only, adjustments should be entered as raw numbers without units, and the system will interpret them based on the category type.

For the balance adjustments template, enter the following data:

  1. Employee Name: I have added this column to the template for reference purposes only. This column will not import.
  2. Employee #: The Employee # listed in BambooHR.*
  3. Balance Adjustment:  You can add an amount of time by entering a positive number or subtract an amount of time by entering a negative number. Note that you do not enter the time unit label of days or hours in this cell.  The system already knows the appropriate information based on the type category.
  4. Time Off Category: The time off category that receives the amount listed in column C. The name of the category must match the name of the time off category within BambooHR.
  5. Comment: The note you want to appear with the balance adjustment.
  6. Effective Date: (Date field) The date that associates with a Balance Adjustment entry.  Please note that dates must be in a format with the four-digit year.

After entering all of the appropriate data into the template, save the file as a .csv  or .txt (Unicode Text) file. It is then ready for import. (See importing steps above.)

*Note: An easy way to get the Employee Name and Employee # into the template is to copy and paste the information from a custom report in BambooHR.

Expand or collapse content Do you need to import time off requests?
Spreadsheet example showing the PTO Requests import template. Six numbered columns are displayed: Employee Name, Employee #, Date, Time Off Category, Amount Requested, and Note. Sample data shows requests for categories like sick and vacation, with amounts expressed in fractions or whole numbers, and notes like “Stomach Flu” or “Family Vacation.” The text explains that consecutive dates in the spreadsheet automatically group into one request, requests must use a four-digit year format, and the Amount Requested field must align with the category’s unit type (days or hours). Notes compile across multi-day requests, and minus signs should not be entered.

This template allows you to import a group of time off requests into the system all at once.

For the PTO Requests template, enter the following data:

  1. Employee Name: I have added this column to the template for reference purposes only. This column will not import.
  2. Employee #: The exact Employee # listed in BambooHR.*
  3. Date: The date of the time off request. If a request spans multiple days, you will need a separate line for each date in the request. Consecutive dates that span multiple rows in the spreadsheet will automatically group** as one request as long as they are of the same time off category. Note: Dates must be in a four-digit year format.
  4. Time Off Category: The time off category that the request will subtract from. The name of the category must match the category name within BambooHR.
  5. Amount Requested: The number of hours or days the employee will be taking off for the specific date(s) in the request. If the time off category tracks in days, the number cannot be greater than one. If the time off category tracks in hours, the number cannot be greater than 24. With this import, DO NOT enter a minus symbol in front of the time off request amount to indicate a negative amount ("-") because the system assumes that all values will deduct from the current existing balance. Do not enter days or hours in this field as the system automatically knows the time units based on the time off type category. (Note:  If you enter a minus symbol in front of an amount in the Amount Requested column, the system will add that time amount to the employee's balance.)
  6. Note: The note associated with the time off request. If a request spans multiple days, the notes will compile together into one note. So if you have a request that covers multiple days, it is best to only add your note to the first day in the request, and it will apply to the entire request.

After entering all of the appropriate data into the template, save the file as a .csv  or .txt file. It is then ready for import. (See importing steps above.)

*Note: An easy way to get the Employee Name and Employee # into the template is to copy and paste the information from a custom report in BambooHR.

** If one of the requests in a group of consecutively dated requests has an error when imported, the other requested days within the group will also show an error in the import. You will need to reimport the entirety of the request.

By importing, the system assumes that each time off request entered is already approved. All imported time off requests will automatically have an approved status, and the import will bypass the regular notification process.