Clocking and Time Tracking using org-mode and EasyOrg

December 16, 2022

Clocking and Time Tracking using org-mode and EasyOrg

When working on projects it's common to have to track how much time is spent on different tasks. Sometimes it's enough to track how many hours you work each day. Sometimes you need to keep track of how much you should bill different customers. and yet other times you want to track the time spent on each individual task on your todo list.

Org-mode allows you to use a few different ways to achieve the above, either by storing clocking data in a LOGBOOK drawer or by using properties. There is also flexibility in how you want to organize it.

EasyOrg helps you summarize the date with the help of it's powerful table search capabilities as well as its calculation features. This way you can easily multiply your hourly rate with the hours worked and sum up each day or task for the month. Hours and minutes should be written in the form HH:MM.

Daily journal type clocking using properties

One easy way to track time spent on a daily basis is to add the data in a PROPERTIES drawer. You can add both hours worked as well as for example the hourly rate.

Time sheet Clocking using org-mode

When looking in the Table view you can see the date header and the COST and HOURS properties with their data in therir respective columns. By selecting the MULToperation selector you can multiply each rows values. They will also be added at the bottom of the page.

Time tracking and Clocking using org-mode

Daily journal type clocking using Logbook drawer

Instead of using PROPERTIES you can use a LOGBOOK drawer. There is a common practice to store clocking data using a key called CLOCK:. Here you can write down the hours and minutes worked in the for HH:MM. You can have multiple CLOCK lines within one LOGBOOK drawer. They will be added together when you look in the Table view.

In case you have several customers and you want to separate the calculations you can add a customer tag to the daily date header.

Clocking using org-mode

Table view: Clocking using org-mode

Daily journal type clocking using properties, customer based.

Another option to separate customers or projects is by puting each customer under its own header.

Clocking using org-mode

You can filter out each customer by searching on the parent header using the search expression h..

Clocking using org-mode

Tasks based clocking

You can track time spent on each todo task by either using a PROPERTIES drawer or a LOGBOOK drawer.

Clocking using org-mode

Clocking using a LOGBOOK and the CLOCK: key is useful in case the task is being worked on for multiple days as it allows for many CLOCK lines and they are automatically added up when looking in the Table view. They can also be combined with a PROPERTIES drawer in case you want to add the hourly rate there for further calculations in the Table view.

Clocking using org-mode

Filter out the information you need

You might need to filter out only the relevant lines. You might want to focus on a specific month and only a certain customer. Only the shown lines are multiplied/added together.

When using task based tracking you can filter by using closing timestamp as one parameter. You can in addition for example filter on the customer, either by filtering on tags if the customer name is there or maybe it is mentioned in the header or in the title.

Useful example searches include:

December 2022, tagged customer1

c.ge.2022-12-01 c.le.2022-12-31 t.customer1

December 2022, everything below parent header containing text 'Customer A'.

c.ge.2022-12-01 c.le.2022-12-31 h.Customer+A

Subscribe to our newsletter

Join us today and receive updates on new features and changelogs!

No spam, unsubscribe at any time.
Check out our Privacy Policy.