3.6. Working with time entries

3.6.1. About time entries

A time entry represents the time spent doing something for a service. It is defined by a start time, elapsed time, pause time and a finish time. If you work from 09:00 AM until 11:00 AM and you take two 15 minutes breaks, the elapsed time will be 1:30 hours and the pause time will be 0:30 hours.

Depending on how you want to enter time, Fanurio lets you choose how to do it.

  • Absolutely: You enter the start and finish times and hen Fanurio calculates the elapsed time by subtracting the start time from the finish time.

  • Relatively to start: You enter the start time and the elapsed time and then Fanurio calculates the end time by adding the elapsed time to the start time.

  • Relatively to finish: You enter the elapsed time and the finish time and then Fanurio calculates the start time by subtracting the elapsed time from the end time.

3.6.2. Adding time manually

Whether you forget to record time or you are not in the front of the computer most of the day, you can always record time manually. Please note that you can only add time to a service item and not directly to a client or a project.

There several ways you can add time to a service item:

  1. Go to Business » New Time to add time to the currently selected service item. If no service item is selected, you will have to specify one. This is probably the fastest way to enter time in Fanurio.

  2. Go to the Timesheet view and use the New button. When you use this method and the date filter is set to a specific date, time is added by default to that date. This method is very useful if you need to enter time for previous dates as it saves you from specifying the date for each time entry.

  3. Open a project and select the service item where you want to add time. Then click the New Time button.

  4. Edit a service item and go to the Time section to add time to that item.

The major drawback of manual time recording is that you need to remember the times and duration of each task. That's why a better method to track time for your activities is to use a timer.

3.6.3. Transferring time between multiple computers

Fanurio can help you manage time recorded on multiple computers. You can export time recorded in one instance of Fanurio running on a certain computer and then import it in another instance of Fanurio running on a different computer. Here's how to do this:

  • Export time: Go to the Timesheet view and use the filters above the table to specify the time that must be exported.

    Go to File » Export » Export Timesheet... to export the timesheet to an XML file.

  • Import time: For the moment, Fanurio can only import time exported from another instance of Fanurio.

    Go to File » Import » Import Timesheet... to import a timesheet from an XML file.

    Note: Fanurio will not import time to invoiced service items because that would alter existing invoices. Instead, it will create new non-billable services and it will save the time there. Missing clients, projects or service items will be automatically created.

    Note: A backup copy will be created before time is actually imported so that you can always revert to the data before the import. Go to File » Restore from Backup... to restore a backup copy.

The following two examples show when this feature is useful.

Example 3.4. same user, multiple computers

Many people use two computers for work whether it's a desktop and a laptop or a home computer and an office computer. The time recorded on one computer can be exported and then imported in the other computer for billing purposes.


Example 3.5. multiple users, multiple computers

If you are part of a team, each member could install Fanurio on his or her computer to track time. Team members can then export their time and send it to the team leader to prepare invoices for their clients.


3.6.4. Importing time from CSV

Whether you want to switch to Fanurio from some other application or import time from a mobile app (iOS, Android, Blackberry), Fanurio has an import wizard that can import time from any CSV file. Just go to File » Import » Import Timesheet... and select CSV for source.

When you select a CSV file for import, Fanurio will try to detect its format so it can read its time records. If a format is not found, it will ask you to create one so that it knows how to map data from the CSV file to its own fields. Fanurio has predefined formats for the following applications:

A CSV format tells Fanurio how to map columns from the CSV file to one of the following fields:

  • Client: name of the client.

  • Project: name of the project.

  • Service: name of the service item where time is saved.

  • Billable: whether the service item is billable or not (eg true).

  • Date: date when the time entry was recorded (eg 2012-07-22).

  • Start: start time when the time entry was recorded (eg 17:29:59:999 which is almost 5:00 PM).

  • Time: total recorded time (eg 02:30:00 which means 2.5 hours).

  • Description: description associated with the time entry.

  • Tags: tags associated with the time entry (must be a list of tags separated by commas).

To map columns from a CSV file to Fanurio, it usually means that you have to associate a column from the CSV file with a field in Fanurio. For instance, if you have a CSV file that has a column called Customer then you may want to map it to the Client field. Some fields like the Time field, need additional information. For instance, if your CSV file has a column called Elapsed time (minutes) then you need to specify this column for the Time field but you also need to select Minutes in the format field so that Fanurio knows how to interpret it.

Important: If you have problems creating a format for your CSV file, contact us and we'll create it for you.

Once you have a format that Fanurio can use to parse the file, you can select the time entries that you want to import. Before importing them, you can adjust the client, project and service names by double-clicking their table cells. You can also tag all selected time entries by using the Tag button.

If the clients, projects and service items do not exist, they will be created automatically by Fanurio. The default settings for new service items are:

  • if the new service item has the same name as one of the catalog items, it uses its settings

  • if no item is found in the catalog, it uses the default project settings

  • if the project has no settings, the new service item is created with no billing settings (price is zero, no rounding, etc)

The following examples show to handle various mapping scenarios. A CSV format is actually a set of mapping expressions, one for each field. Fanurio uses Freemarker for these expressions, the same language that it uses for invoice templates.

Example 3.6. Mapping a field to a column

In order to connect a field from Fanurio to a column from the CSV file, you must select the column from the drop down box associated with that field. That box also shows the value from the first row for that column so that you can know out what you are importing.

If you have a column called Customer then the expression that maps this column to the Client field is displayed below.

${column("Customer")}

Example 3.7. Mapping a field to a fixed text

The CSV file may not have columns for each field. For instance, some applications save time directly on the project instead of saving it on tasks or services like Fanurio does. In that case, you can't map a certain column to the Service field. If your file doesn't have a column that can be mapped to the Service field then you should enter some text in the text box of that field (eg Activity, Service, Job or any other name). All the time entries will be imported to service items with that name.

The Service field accepts any text but other fields accept only text formatted in a certain way.

  • Client: any text. All the time entries will be imported to the same client.

  • Project: any text. All the projects will have the same name.

  • Service: any text. All the service items will have the same name.

  • Billable: true or false. Use this if you want to make all your service items billable or non-billable.

  • Date: text formatted as yyyy-MM-dd (eg 2012-07-22).

  • Start: text formatted as hh:mm:ss:SSS (eg 17:29:59:999).

  • Time: text formatted as hh:mm:ss (eg 02:30:00).

  • Description: any text

  • Tags: a list of comma-separated tags


Example 3.8. Not mapping a field to a column

The Description and Tags fields may not have a column where they can be mapped. In that case, you shouldn't select a column for them and leave their text box empty.


Example 3.9. Splitting columns

Some applications only have projects and the only way you can record both the client name and the project name in the same field is to use some separator. For instance, if you recorded your time on a project called Aristotle-Rhetoric that contains both the client name and the project name, then you can split it and extract the first part for the client name and the second part for the project name.

If you have a column called Job that contains both the client name and the project name separated by a minus (-) then the expression for the Client field is displayed below.

${column("Job")?split("-")[0]}

The expression for the Project field is displayed below.

${column("Job")?split("-")[1]}

Example 3.10. Mapping the date and start fields

Date, start, time and billable fields are the only fields that require additional formatting. So, when mapping a column to these fields, you need to pay attention to their format.

For instance, if the CSV file contains a Date column that has values like 4/28/2010 then the expression that maps this column to the Date field is displayed below.

${column("Date")?date("M/dd/yyyy")}

For instance, if the CSV file contains a Time In column that has values like 20:21:00 then the expression that maps this column to the Start field is displayed below.

${column("TimeIn")?time("hh:mm:ss")}

For more detalis on date and time patterns, see this page.


3.6.5. Using tags to organize time entries

When you record a time entry, you need to have a client, a project and a service item. For some people this solution is all they need to organize their time entries but others want more flexibility.

You can associate one or more tags to a time entry in the Tags field. They have to be separated by commas (eg: tag1,tag2,tag3). Once you have one or more entries with tags, you can then filter them in the Timesheet view. Just click the small arrow icon from the search field to tell it that you want to search by tags.

Tags are useful if you want to track time for multiple persons. You could use a tag for each person to know who did what.

3.6.6. Creating time reports

To learn more about the time you record in Fanurio, go to the Timesheet view and use the filters above the time entries table. The table will display only those time entries that match the selected filters. Time can be filtered by:

  • client status (any, active, not active),

  • project status (any, finished, not finished),

  • invoiced status (any, invoiced, not invoiced),

  • billing status (any, billable, not billable) and

  • date.

Once you set these filters, the table footer will display the total of all visible time entries. For instance, you could use these filters to see how much time you've recorded on a date, week or month.

Note: If these time reports are not enough, you can also use project reports to learn more about your services and the time recorded on them.

If you need to do extra calculations on the list of time entries, you can also export it to CSV or Excel from File » Export » Export Timesheet. Fanurio can also export a time report to the QuickBooks .iif format (discussed in a separate section) and to .xml.

The table can also be filtered using a search field that can search by:

  • description,

  • tag,

  • client;project;service and

  • invoice.

The client;project;service option allows you to filter time entries by client, project, or service item name.

If you have a client called Aristotle with a project called Rhetoric and a service item called Proofreading the manuscript, just type Aristotle;Rhetoric;Proofreading the manuscript and it will display this exact service item. If you type Aristotle it will display all time entries for this client whereas if you type ;Rhetoric it will display all time entries for the project. The semicolon is very important as it helps Fanurio distinguish between fields.