Track Work Time appTrack Work Time is Time tool that is open source under the GPL-3.0-only license. This app can track your work time easily! You can automate time tracking using geo-fencing functions (see below). You may also categorize each recorded interval by a predefined client/task and a free text. Of course, the list of clients/tasks can be edited to suit your needs, and the app has a widget for your home screen.
Additionally, if you wish, your flexible time account is taken care of: you always see how much you worked. You can also keep an eye on how much work time is left for today or for the current week (by a notification which you can enable).
The app enables you to modify the planned working time effortlessly - just tap on the date you want to edit in the main table.
You may provide the geo-coordinates of your work place and the app can automatically clock you in while you are at work. This is done without using GPS, so your battery won't be emptied by this app.
You also may provide a Wi-Fi network name which is visible at your work place the app can use to clock in automatically when this SSID is in range (you don't need to be connected to this network). Of course you should have Wi-Fi enabled for this to work.
You don't want to open the app for clocking in and out? No problem - there are at least three ways to do that: add the widget to your home screen, use launcher shortcuts (long press the app icon for that) or add a new quick settings tile to your panel by tapping on the pencil below and dragging the "Track Work Time" tile up which then can toggle your clocked-in state.
If you prefer to use other apps like LlamaLab Automate or Tasker for tracking your movements, that's fine - TWT can be triggered from other apps and just do the book-keeping of your work time. In this case, you have to create broadcast intents called org.zephyrsoft.trackworktime.ClockIn or org.zephyrsoft.trackworktime.ClockOut. When using ClockIn, you can also set the parameters task=... and text=... in the "extra" section of the intent so your events are more meaningful. You can also use the action org.zephyrsoft.trackworktime.StatusRequest to get the current state of TWT: is the user clocked in, and if so, with which task and how much time remains for today? For more details on this, see the web site.
It's also possible the other way around: TWT generates broadcast intents on event creation/update/deletion. Automation apps can listen for the actions org.zephyrsoft.trackworktime.event.Created, org.zephyrsoft.trackworktime.event.Updated and org.zephyrsoft.trackworktime.event.Deleted. See the web site for more details and some screenshots on how to use it.
If you have a Pebble smart watch, the app will notify you on clock-in and clock-out events which is especially useful if you want to be in the know about automatic time tracking via location and/or WiFi.
If you want to back up your data, you have the choice: use Google's mechanism or do it on your own. To use Google's servers just enable the corresponding option. And if you don't want to give your data to Google: The app automatically creates a backup each day which is written to the directory you allowed for the app (if you didn't allow it, no automatic backups are written). You could use a synchronization app of your choice to periodically copy the whole directory (or just the subdirectory "twt_automatic_backup").
Finally, the app can generate reports for you. The raw events report is the right thing if you want to import your data somewhere else, while year/month/week reports are fine if you want to keep track of your task progress.
Important note: This app definitely won't use your personal data for anything you don't want! It uses the INTERNET permission only to offer you to send some information about crashes to the developer (and does that only if you agree, you will be asked every time). The app does NOT include tracked times or places in the bug report, but the general log file is appended and might potentially include personal data - if so, it will be kept strictly conf