Creating a Timesheet in Plain Text

Whether you’re a full-time employee or a contractor, chances are you need to fill out the dreaded timesheet to track the hours you’ve worked. And, really, who enjoys that?

It’s a necessary evil, one compounded by having to do that using your employer’s timesheet entry system. At the last few Day JobTMs that I’ve held, that system was balky at the best of times. Most of my co-workers, then and now, wait until the end of the week to enter and submit their hours. By then, most of them find it hard to recall how much time they put into which tasks on which day.

While I know there are more than a few command line applications that will generate a plain text timesheet, I decided to forego the person in the middle. Instead, I turn to my text editor.

I’ve found that using a simple text file to record what I’ve been working on, and for how long, is an effective solution for keeping track of things until I enter information into my employer’s timesheet entry system.

Let’s take a look at how to create a simple, but effective, plain text timesheet.

Naming and Structuring the File

With my timesheets, I use one text file per week. That works with my current employer — I have to submit my timesheet each Friday before close of business. That may or may not work for you.

I name timesheet files using this convention: timesheet-entries-[date]-to-[date].txt — for example, timesheet-entries-12-July-to-16-July-2021.txt.

In the file, I add dates with some space below them. Three dashes visually) separate each day. Here’s an example of an empty timesheet file, just waiting for entries:






Entering Information

I keep the week’s timesheet file open in a tab in a text editor. As I complete a task, I log it in the file with a short description of that task and that amount of time I spent on it. In that way, my timesheet is similar to an interstitial journal (which I’ll be looking at in a future article).

At my current Day JobTM, I work with several product teams. As well, I attend various meetings each day and do other tasks that aren’t related to project work. Sounds like an average work day for many of us, doesn’t it?

The name of each product team I work with, along with the meetings and non-project tasks, becomes a heading under a date. Here’s an example of a partially-completed set of timesheet entries for a single day featuring those elements:


Team 1:

- Reviewed and edited knowledge base articles for new xyz feature - 2 hrs
- Walked new BA through the process of creating new knowledge base articles - 0.75 hrs

Team 2:

- Worked with developers to design a new API documentation template - 2 hrs


- Attended Team 1 daily standup - 0.25 hrs
- Weekly Knowledge Management team meeting - 1 hr


- Updated templates in Confluence to match revised article formats - 1 hr
- Initial planning for webinar sessions/demos around new Knowledge Base process - 1.5 hrs

I repeat that process each day, then copy and paste the entries into the company’s timesheeting software on Friday.

You might notice that I go into a bit of detail with each entry. That’s a throwback to the days when I was consulting and my clients wanted details about everything I did. You don’t need to be as granular as I do.

You’ll also notice that don’t use any markup besides dashes for lists of items and three dashes to separate the entries for each day. My timesheet file isn’t something I publish or convert to another format, so adding markup is an unnecessary frill.

If push came to shove, I could submit my weekly timesheet file to an employer. I think it’s clear and detailed enough to give the powers that sign my cheques a good idea about what I did and how long it took. I’d need to include a tally of my daily and weekly hours, and add a header with my contact details to the top of the file though.

For me, this is the easiest and most efficient way to keep track of the hours that I’ve worked. Using this timesheet format, I can put off using my employer’s baulky timesheeting software until the end of the week, while at the same time avoid struggling to remember what I did during the previous five days.