# Import a plan from MS Project

Teamhood imports a plan from the XML file that MS Project saves. It cannot read an `.mpp` file, so save the plan as XML first.

## Save the plan as XML

1. Open the plan in MS Project desktop.
2. Choose **File** → **Save As**.
3. Set **Save as type** to **XML Format (\*.xml)**.
4. Save the file.

## Import the XML file

1. Select **+** at the top of the sidebar, then **Import**.
2. Drop the `.xml` file, or select the drop area to pick the file. The file can be up to 10 MB.

## Place and import the tasks

1. On **Placement**, **Create an item for the project** puts the tasks under one item, the project item. The option is on by default while **Place under** is **No parent**. Check each type, and pick one where none is set.
   - With **No parent**, the project item starts as the first type you can create whose **Default open action** is **Children**.
   - The tasks start as the **Default child type** of their parent's type.
2. If you create the project item, check its name.
3. Go through **Map fields** and **Review**, then select the import button, such as **Import 18 items**.
4. Select **Open imported items**. With a project item, the button opens a Gantt of that item's tasks at the start of the plan. Otherwise, the button opens the view the import made.

## What is left out

- Constraints such as Start No Earlier Than.
- Calendars, working time and holidays.
- Baselines, costs and custom fields.
- Material and cost resources.

## What works differently from MS Project

- A task becomes an item, and a summary task becomes a parent item. The import gives a summary task no dates of its own, so the parent shows the span of the items under it.
- All four link types carry over. Lag is rounded to whole working days, and a negative lag is a lead.
- A milestone is an item with a **Duration (d)** of 0, and a task of zero duration becomes one. A task MS Project marks as a milestone but that has a duration becomes a task, and so does a milestone with tasks under it.
- Work resources are matched to people and teams by name. A resource that matches nobody is left off the item.
- A task at 100% complete is imported as completed. Any other percentage is imported as not completed.
- Teamhood has one kind of constraint, the pin. A **Start** you set becomes a pin, which works like Start No Earlier Than.
- Scheduling uses one calendar for the whole organization: Monday to Friday, minus the organization's holidays. Add the holidays in Teamhood.
- Capture a new baseline on a Gantt after the import.

> **The import keeps the dates that MS Project calculated.** It does not reschedule them, and a first import sets no pins. When a task changes later, the items that depend on it move to the earliest date their dependencies allow.

## Importing again

> **Importing the plan a second time adds its tasks again, unless you match them.** To update the tasks an earlier import made, match by a column mapped to an existing text or number field.

A top-level task that has tasks under it and matches no item can reuse an item of the same title and type in the same place. **Review** lists each such item under **Already there**, where you choose. A re-import that changes the **Start** of an existing item pins that item.

## Next

- [How re-importing a plan works](../re-importing-a-plan/)
- [How dependency scheduling works](../../how-it-works/dependency-scheduling/)
- [Set your organization's holidays](../../get-started/set-holidays/)
- [Compare against a baseline](../../views/compare-against-a-baseline/)
