Time tracking for Redmine with GPS: log hours to issues automatically

Redmine usually runs on your own server, and years of issues live in it. Nobody wants to move them into yet another tool — and Taskloc doesn't ask you to. The Android app pulls issues from Redmine through the standard REST API, adds a GPS session, the route and a proof of the on-site visit, and logs the worked hours back to the issue as an ordinary time entry.

No server plugins, no agents. You connect as a regular Redmine user — the same account people already use in the browser.

Why Redmine time logs rarely match reality

  • Spent time is logged after the fact, from memory: "about four hours, I think".
  • The route and the time on site are not recorded anywhere, so there is nothing to show a client who disputes billable hours.
  • Breaks — lunch, waiting at the gate, idle time — never make it into the log.
  • Mileage is collected separately and by hand, if at all.
  • A technician on site is not going to open Redmine in a browser to log anything.

How Redmine time tracking works with Taskloc

  1. The employee opens their Redmine issue in the app and starts a GPS session.
  2. From then on time and route are recorded automatically: movement, stops, the check-in on site. Nothing else to tap.
  3. When the session stops, the app creates a time entry on the Redmine issue — through the standard REST API.
  4. A comment and a status change go to the same issue. The issue stays in Redmine, where it belongs.

The full working set is supported: browsing and creating issues, comments, status changes, time entries, attachments. Custom fields are picked up automatically — the app builds the project's field catalog itself and writes mileage and address there.

What only the Redmine connector does

Redmine is the deepest of our connectors, and the difference is practical:

  • Idle auto-pause. If there is no movement during a GPS session for a set time, the server pauses the session and adds a note about the pause to the issue; when movement resumes, a note about resuming follows. It works even when the phone is offline, because the server acts, not the device.
  • "Tasks" block on the "My statistics" screen. Assigned to me, closed, watching, overdue, created by me — the counters are right in the app. Other connectors don't have this block: their APIs don't return ready-made counters for the current user.
  • Saved filters are your Redmine saved queries. Set one up once in the browser and use it in the app.

What managers get

  • Time on site and travel time — separately, for every issue.
  • The route of each trip on a map, mileage as a number.
  • A check-in as proof of the visit: location, geofence, route.
  • A live team map and per-employee reports in the web dashboard.
  • Timesheets built from entries recorded while the work was happening, not on Friday evening.

Limitations of the Redmine connector

  • Redmine 4.x and newer is supported. 3.x and older cannot be connected.
  • Redmine wikis, forums and documents are not supported — issues only.
  • Error 422 "Issue is invalid" when sending time is a refusal from Redmine itself, not an app failure: the project doesn't have the "Time tracking" module enabled. A Redmine admin turns it on in Project → Settings → Modules. The recorded time is not lost — it stays in Taskloc.

Privacy and credentials — plainly

The employee starts the GPS session. Outside an active session the app does not collect location at all: stop the shift and you disappear from the team map.

One more thing most vendors keep quiet about. For the Redmine connector, your server credentials are additionally stored on the Taskloc server, encrypted. Besides Redmine, only Taiga works this way; for all other connectors credentials stay on the device, in the Android Keystore. The reason is the auto-pause: to pause a session and post a note while the employee has no network, the server needs access. If storing credentials on an external server is unacceptable for your organization, decide that before connecting, not after.

Setup guide: connecting Redmine.

Questions from Redmine admins

Which Redmine version do I need?

Redmine 4.x or newer. Versions 3.x and older are not supported — upgrade first.

What permissions does the user need?

The app works through the REST API on behalf of the connected user. It needs the same permissions as for everyday work: see project issues, comment, change statuses, log time. Details are in the setup guide.

Why do I get error 422 when time is sent?

Redmine refuses the entry because the project doesn't have the "Time tracking" module enabled. Enable it in the project settings. The time is not lost — it is already saved in Taskloc.

Do I need to install anything on the Redmine server?

No. No plugins and no agents: the app uses the REST API Redmine already has. The only requirement is that the REST API is enabled.

Where are our Redmine credentials stored?

On the employee's device and, encrypted, on our server — this is what makes the auto-pause possible. See the privacy section above.

Is there an iPhone app?

No. The field app is Android-only; the manager's web dashboard opens in any browser, including on a phone.

Who uses it

Redmine teams that send people to sites: installation, maintenance, construction. If your case is installation crews, see time tracking for installation crews.

Try it on your Redmine

Connect your server, install the app on one phone and take one issue from the start of a session to the time entry appearing in Redmine. Free works forever for one seat; the Team trial gives 14 days and 3 seats, once per account, with no card required. When the trial ends, the account moves to Free — nothing is charged.

Team payments are currently accepted only with Mir cards issued in Russia and the CIS and via SBP. If you are elsewhere, contact us and we will look at your case — we can't promise a particular payment method in advance.

Try the Team plan for 14 days with three seats — no card, no sales call.

Try free for 14 days