DEV Community

Vladimir Letiagin
Vladimir Letiagin

Posted on

Jira can't move a worklog to another issue, so we put worklogs on a calendar

Last Friday I found 3h 20m logged on PROJ-1417, a ticket I'd touched for about five minutes. The actual work went into PROJ-1423, which showed zero. No problem, I thought, I'll move the worklog.

Turns out you can't. Jira has no "move worklog to another issue". There's no button in the UI, and the REST API doesn't have the operation either. I build a time tracker for Jira for a living, and this one still gets a "wait, seriously?" from almost everyone I tell.

What Jira expects you to do instead: open the entry, write down the duration, the start time and the comment somewhere, delete it, open the correct ticket, and type everything back in through the Log work dialog. If you get distracted halfway through, that's it. Worklogs have no undo and no recycle bin.

Why there's no move button

A worklog is a tiny record: seconds spent, start timestamp, comment, author. Notice what's missing: an issue field. The issue is the address of the worklog (it's literally in the API path, /rest/api/3/issue/{key}/worklog/{id}), not one of its properties. There's nothing to edit. Any "move", in any tool, can only be a copy created on the destination plus a delete at the source. Jira simply doesn't offer to run the pair for you.

Knowing this doesn't make the manual version less annoying, but at least it stops looking like an oversight. It's structural.

Wrong-ticket time comes in batches

Something we learned from our own support inbox: misfiled worklogs almost never arrive one at a time. There's always a systematic cause. The timer kept running on the old ticket after a task switch, so the whole afternoon landed wrong. The hours went to the story when the sub-task was the actual work. Or two client projects have near-identical keys and autocomplete guessed wrong all week.

Each of those gives you five or ten bad entries in one go, and the delete-and-retype ritual is per entry. Realistically, nobody spends their Friday on that. The entries stay where they fell, the project totals are off, and whatever reads those totals (reports, invoices) is off too. Jira makes it worse by having no screen where you'd even notice: there's no view that shows all your worklogs in one place, so a misfiled entry stays invisible unless you go digging through the Work log tab of a ticket you don't suspect.

So we put the week on a calendar

Our tracker is called Planim Time, a desktop time tracker for Jira that lives in the menu bar. The part that matters for this post is the calendar: every worklog is a block on a week grid, sitting at its start time, with the issue key on it. Height is duration.

Once your week looks like that, misfiled time stops being a search problem. The bad entry is just... sitting there. Wrong key, plain sight.

And each way an entry can be wrong turns into a direct manipulation:

  • wrong issue: click the block, search for the right ticket, confirm. Duration, start time and comment travel with it
  • wrong day or time: drag it where it belongs
  • ran too long because you forgot to stop the timer: grab the edge and shrink it

Everything writes back to Jira as ordinary worklogs, through your own account. Sync is two-way, so entries you created in Jira's own dialog (or in any other tool) show up on the calendar too and can be fixed the same way. Wrong day and wrong duration have a few extra wrinkles of their own; we wrote those up separately in a guide to changing logged hours in Jira.

To be clear about what happens underneath: Jira still has no move, so on "confirm" the app creates the copy on the new issue first and deletes the original after. Worst case, a crash between the two leaves you a duplicate for a moment. The manual ritual's worst case is the entry existing only in your memory.

The limits are Jira's rules, not ours: you can only move worklogs you authored (the API has no way to write a worklog as someone else), and you need worklog permissions on both projects.

Doing it by hand anyway

Maybe a stray worklog happens to you twice a year and installing anything is overkill. Fair. Then at least flip the order of the official procedure: log the time on the correct issue first, with the original date in the Date started field, check it saved, and only then delete the entry from the wrong ticket. Create first, delete second. Nothing ever exists only in your head. The full walkthrough, permission names and estimate prompts included, is in our post on moving a Jira worklog to another issue.

The tracker itself is free to try: macOS, Windows, Linux, signs in with your Atlassian account. Tracking and two-way sync are on the free tier; the calendar is a Pro feature with a 14-day trial. If your Fridays regularly include archaeology on your own worklogs, you'll know within a week whether the calendar earns its keep.

Top comments (0)