Break times
There needs to be an implementation of break times here. My idea: It could be just one value which indicates the amount of break time. WHEN you took the break doesn't really matter to most people, just that it's there and accounted for (you went to your client at 8 and left at 5, somewhere in between there was 30 min of break, so you bill 8:30).
It would only be a number that gets subtracted from the resulting time.
In this way, recording could have a pause function that lets you account for your breaks - pause: you go on break; resume: you return from break.
I think that the pause function would be a great idea. But i think we would need a stop button and a pause button when a recording is registered 'live'. This is in my opinion a better idea then having a set value subtracted. A break is always very variable in time in my opinion.
Mockup of my idea:
before starting
while recording:
after having pressed pause:

Yes, this is exactly what I was trying to convey. The time should still be able to be set if you input your time manually...
I'm wondering how we will keep track of the break. Just have one possible break entry per time entry? Or do we want to have to possibility of tracking multiple breaks individually within a single time entry. Seems rather over the top. Now the duration of an entry is calculated with the starting and ending timestamp. The simple solution would be to keep the start and end date of a break in the same row of the time entry, but then only one break can be kept per entry. @ServiusHack what do you think?
I'm sorry, but as I said, I don't think many people would care much about WHEN the break happened or how many there were... Just the cumulative amount of time used for breaks...
Just my opinion though!
While I would prefer tracking each pause with its duration and when it happened (for completeness sake) I can see that this is over the top.
In the database, the duration of an entry is already stored separately from its start and end time. So, to achieve what sinni800 suggested only some minor changes should be necessary.
And how will we be dealing with editing the breaks? If we only keep the total duration of a break, then this is just a value to adjust. But this breaks will reflect on all the other values calculated in kimai: the users total time, the statistics, so i guess it will be some work dhow. @sinni800 where you thinking about keeping statistics of these breaks? Do you want to see them in the exported reports? In my opinion this wouldn't be necessary. The only problem is that of we don't mention these breaks, then you would see a starting time and an ending time, with a duration not corresponding with this values. This could cause some confusion.
@stephenreda I don't think tracking the breaks for much more than having a value that gets subtracted from the total time is really something for step 1. I don't think anyone needs the actual break time in a report for anything since they, for freelancers, usually don't reflect anything important / related to billing.
I need this feature because I am at a client for whole days, 08:00 - 17:00, 1h break, currently and I find myself setting 08:00 - 16:00 instead of creating two or three entries (there are two breaks in the day) in the timesheet. For me, personally, the break feature doesn't have to achieve anything else than signal that I am at the client's place from 08:00 until 17:00 and that somewhere along the line I sat there doing nothing.
Although, while I am at it, it could also use another feature, adding a timesheet entry type for fixed amounts of money. For example my client pays x € for each time I drive to them. This does not vary in the amount of time I take driving there, it's a fixed cost for something I do. On one hand it kinda falls out of the scope for a timesheet, but this being the place I print invoices form, it would be kinda neat. But this is OT here!
Sorry, hit the wrong button!
@sinni800
I need this feature because I am at a client for whole days, 08:00 - 17:00, 1h break, currently and I find myself setting 08:00 - 16:00 instead of creating two or three entries (there are two breaks in the day) in the timesheet. For me, personally, the break feature doesn't have to achieve anything else than signal that I am at the client's place from 08:00 until 17:00 and that somewhere along the line I sat there doing nothing.
I do understand why you are asking for the breaks but, if you use the same task, why not use the 'live' recording button, to easily start recording the latest selected task?
Although, while I am at it, it could also use another feature, adding a timesheet entry type for fixed amounts of money. For example my client pays x € for each time I drive to them. This does not vary in the amount of time I take driving there, it's a fixed cost for something I do. On one hand it kinda falls out of the scope for a timesheet, but this being the place I print invoices form, it would be kinda neat. But this is OT here!
This feature already exists (it's called an expenses)
The break thingy is still a great idea dhow
Oh, @stephenreda, I should have looked deeper about that one.
Well, if I live record, I will still create multiple entries in the sheet, which is currently probably the way to go for simulating breaks. But multiple entries will kinda litter the whole thing.
Also why I don't live record here: I arrive at 8 and I get paid from when I arrive, not from when my computer at that client finally turns on. It's a little different circumstances than regular freelancer work currently.
In my opinion it gives you more detail when doing multiple recordings. That way you can really document what you did in a certain time interval. When tying to describe everything you did at the end of the day always seems incomplete.
Some perspective might be helpful here. There were similar discussions on Toggl a year or two ago. Initially they implemented breaks like this feature request (subtracting a value from the total time but not record start&end of the break), but then actually found that this is not a good idea, so they actually removed breaks (following user requests) and now record time like Kimai.
One of the problems with subtracting a time is that many people who work on different projects simultaneously often you often have to modify entries afterwards and without the precise times of breaks, this is difficult to do. For example, you may have 4 or 5 shorter breaks and perhaps a few phonecalls on a day, and sometimes you forget to stop the time. So at the end of the day you wonder if you recorded your lunch break or forgot it, but if you only have the information "1:24 breaks during the whole day", there is no way you can reconstruct that.
A better way to handle this is to improve the reporting system, so that the time entries reflect exactly what you did every minute, but you can compile summary reports from them saying something like "worked from 8:00-17:00 with 5:20 on project A, 2:10 on Project B, 1:24 breaks".
So I would actually suggest, instead of implementing breaks in the database, focus on the reporting features to make it easier to produce good reports from the raw data, but try to record the raw data as precise as possible.
... oh, if there is a majority for implementing this break feature, please make it optional and give users the choice to disable the pause button.
+1
Personally (not as Kimai developer) I see a break as a standard task in a work day. You can track it on an internal project with a loan of zero. You can even use your live recording button for it. Yes, you might get more rows in your monthly view, but you can definitely say what you did and when you did it.
As developer I agree with @stephenreda that it could actually make things more complicated. People often ask for some kind of special time entries (weekend work, holiday work, breaks) but that would bloat the core of Kimai and make it more complicated than necessary.
If someone comes up with a great idea how this could be added as plugin, I'd love to review the pull request! But I would not bake it into the core of Kimai...
And I agree with @smatthie that a good reporting extension would be much more helpful, so we can filter these pauses easily.
I agree that it might be better to track tasks one by one. Pause button would still come in handy for simply stopping the running task and then creating a new task of the same kind. We had problems with very blown-up reports with lots of small breaks therefore having heaps of entries with very simimlar or even identical tasks.
Here comes my idea: Changing the report feature in a way that identical tasks (except for start/stop time) are grouped together therefore shortening the report. Could look like this
08:15 - 09:21 project1 Doing a lot of serious stuff 09:39 - 10:12 10:25 - 14:23 16:35 - 17:00 project1 Doing something else
+1
+1
+1
+1 what be a very important feature to substract a definable break time