Sample File & Results (Time Entries)

Mosaic's Time Entries import lets you bring historical or bulk time from a spreadsheet — logging hours against the right person, project, phase, and date all at once. This guide covers how to fill out your file and what the time looks like in Mosaic afterward.

Who can do this? Time-entry import is admin-only. If you don't see the import option, ask a workspace admin.

Throughout this guide we use one example file with eight time entries across several people and projects — including a Time Off day — to show how everything fits together.

Download the template: Start from the sample file attached to this page, then replace the example rows with your own data.


Before you start: this import references existing data

Unlike the project or member import, a timesheet import doesn't create people or projects — it logs time against things that already exist. Before importing, make sure:

  • Every person in the file is already a member of your Mosaic team (matched by email).
  • Every project, phase, and work category already exists in Mosaic (matched by name / ref#).

If a member or project can't be matched, that row is flagged.

[IMAGE — Overview]
A visual of one row → one logged time entry, showing the pieces it connects: who (member) + what (project → phase → work category) + when (date) + how long (hours).


What one import creates

Each row logs one time entry — a block of hours for one person, on one date, against one project (and optionally a phase and work category). A row can also carry a description, a billable flag, an hourly rate, and invoice hours.


How the file is structured

RequirementValue
File types.csv, .xlsx, or .tsv
Max file size20 MB
First rowColumn headers
Each rowOne time entry

Each row stands alone — one person, one day, one block of hours. The same person appears on as many rows as they have entries.


Column reference

Date, Employee Name, Employee Email, Project, and Hours are required. The rest are optional or depend on how the project is set up.

Who & when (required)

ColumnRequired?Format / accepted valuesExample
Date✅ AlwaysYYYY-MM-DD2026-07-06
Employee Name✅ AlwaysFirst and last name, with a spaceSarah Chen
Employee Email✅ AlwaysThe email of an existing Mosaic member[email protected]
Hours✅ AlwaysA non-negative number8

Where the time goes

ColumnRequired?Format / accepted valuesExample
PortfolioOptionalMust match the project's portfolio (blank for Time Off)Commercial Projects
Project✅ AlwaysAn existing project name (or Time Off)Oakridge Office Fit-Out
Project Ref#ConditionalRequired when two projects share the same name210075
PhaseOptional*An existing phase name, or Main Project PhaseDesign Development
Phase Ref#OptionalThe phase's identifier in Mosaic100
Work CategoryOptional*An existing work category on that phaseInterior Layout
Work Category Ref#OptionalThe work category's identifierC10

*If a project or phase already has phases / work categories defined, a matching value is required — see the rules below.

Details (optional)

ColumnRequired?Format / accepted valuesExample
BillableOptionaltrue / false (default true)true
Hourly RateOptionalA number150
Invoice HoursOptionalA non-negative number8
DescriptionOptionalFree text — what the time was forSchematic layouts for level 2

Rules that keep your file valid

  • Dates must be YYYY-MM-DD (e.g. 2026-07-06). Any other format is rejected.

  • The email must belong to an existing member — otherwise the row can't be matched.

  • Employee Name needs a space between first and last name.

  • Hours are required and non-negative. Invoice Hours, if used, must also be non-negative.

  • The project must exist. If two projects share a name, add the Project Ref# to say which one.

  • Match the project's structure. If the project has real phases, each row needs a Phase (or Main Project Phase). If a phase has work categories, each row for that phase needs a matching Work Category.

  • Time Off is special. For the built-in Time Off project, leave Portfolio and Project Ref# blank. For every other project, the Portfolio is required.


What your import looks like in Mosaic

Imported rows come in as Entered time — the first status, before anything is submitted or approved — and show up anywhere Mosaic displays hours. The main places to find them:

  • Timesheets report — a cross-project log of every entry, group by Date, Member, Project, or Activity. Each row shows the date, member, project (with phase), work category, description, and billable or not; the Status panel rolls the hours up as Entered / Submitted / Approved / Rejected. From the sample, Sarah Chen's 8h on 2026-07-06 against Oakridge Office Fit-Out → Design Development → Interior Layout appears here with the note "Schematic layouts for level 2" and Billable checked.

  • Project Budget Modal ▸ Spent — the same hours rolled into that project's actuals, grouped by members. Each row shows date, phase, work category, description, billable, bill rate, and hours, with a Total Hours figure that feeds the project's spent budget. On Oakridge Office Fit-Out you'd see Sarah, Marcus, Diego, and Emma's entries against their phases.

    • Member View

    • Phase View


Troubleshooting

ProblemFix
"The email address doesn't exist on Mosaic"Add the person as a member first, or fix the email
"Please enter a valid date in the format of YYYY-MM-DD"Reformat the date (e.g. 2026-07-06)
"Hours is required"Every row needs a numeric Hours value
"Project Ref# is required when multiple projects share this title"Add the unique Project Ref#
"Phase name or 'Main Project Phase' is required"Add a matching phase, or use Main Project Phase
"You must enter a work category for this phase"That phase has work categories — add a matching one
Time Off row rejectedLeave Portfolio and Project Ref# blank for the Time Off project