Redmine automation · runs weekly
Log time on Redmine issues from your agent
It is Friday afternoon, the week's work sits in your head and in a dozen Redmine issues, and each hour still has to be entered one issue at a time with an activity and a comment.
Cotlet does it in your own Redmine account with list_issues, list_time_entries, list_issue_options and log_time, called by your AI agent, an n8n workflow or a script.
Hosted · nothing to install or maintain
Can Redmine do this on its own?
Redmine's Time Entries API can create and update entries, so a script can log time once it knows the issue number, hours and activity ID (checked 16 Oct 2026). It does not decide what you worked on, and it needs your instance address and an API key in the script. There is no official MCP server.
How you do it in Redmine today
- Open the issue and click Log time on the issue details page, or enter the time while updating the issue.
- Type the hours: Redmine accepts 1h, 30m, 1h30, 1:30 and decimals such as 1.5, and shows totals in decimal form.
- Pick the activity, add a short comment and save. Leave the issue empty to log hours against the project as a whole.
- Check the totals under Project overview > Spent time > Details or Report, once for every project you worked in.
- Repeat for every issue. Entries missed on Friday are rebuilt from memory on Monday.
How to log time on Redmine issues from your agent
Every Friday, list the issues assigned to me that changed this week, check which of them already have time logged, and log the hours I give you on each with the activity Development. - 01
Collect the candidates
list_issues runs for you with status set to all and sorted by update time, so an issue you closed on Wednesday is still on the list. The agent drops issues from projects where you said you do not track time.
- 02
Look at what is already logged
list_time_entries covers the same week with from and to. An issue that already has an entry from you on that day is shown, not logged a second time.
- 03
Resolve the activity
list_issue_options returns the instance's activities. The agent uses the one you named, or the one flagged as the default, and asks if neither exists, because Redmine requires an activity unless a default is configured.
- 04
Convert minutes to decimals
Redmine stores hours as decimals, where 0.15 is 9 minutes and not 15. The agent turns "45 minutes" into 0.75 before every log_time call.
- 05
Log and total it
log_time runs once per issue with a comment of 255 characters or fewer. The agent ends with hours per day and per project, so you can compare them with your own record of the week.
What you get back
Issues you worked on, 12 to 16 Oct: 7
Already logged: #4790 (2h on Mon)
Logged 6 entries, Development, 14.5h:
- #4821 Login loop after password reset: 1.5h (Thu)
- #4825 Invoice PDF footer: 2h (Wed)
Project totals: Billing portal 11h, Intranet 3.5h
Needs you: #4830, no hours given Other ways to ask
- Log 30 minutes on #4821 today with the comment "Reviewed the fix" and activity Design.
- Every evening, list the issues I updated today and ask me for the hours of each before logging.
- Show my time entries for last month per project, but do not log anything.
- Find days this week with fewer than 6 hours logged and list the issues I touched on those days.
What Redmine allows, and what to know first
- Redmine requires hours on a time entry, and activity_id unless the instance has a default activity configured; spent_on defaults to today.
- The comment of a Redmine time entry is limited to 255 characters, so the agent shortens longer notes instead of failing.
- Redmine shows time totals in decimal hours: 0.15 hours is 9 minutes, not 15.
- Time tracking is a module switched on per project under Settings > Modules, so a project can have issues but no Log time link.
- Each entry belongs to one user and spent-time reports total hours per person, which is why log_time always logs for the signed-in account.
log_time changes only your own Redmine data and reach no one else, so it runs without asking first.
Sources: Redmine Guide: Time tracking · Redmine Guide: REST API, Time Entries · Redmine Guide: REST API, Enumerations
Call log_time from a script
curl -X POST https://cotlet.dev/api/v1/redmine/times \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"issue_id":4821,"hours":1.5,"activity_id":9,"spent_on":"2026-10-15","comments":"Reproduced the login loop and patched the session check"}' {
"time_entry_id": 18433,
"project": "Billing portal",
"issue_id": 4821,
"user": "Dana Whitfield",
"activity": "Development",
"hours": 1.5,
"spent_on": "2026-10-15",
"comments": "Reproduced the login loop and patched the session check"
} MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is redmine_write → log_time. Example data.
Schedule it in n8n, Make, Zapier or cronRedmine tools this automation uses
| Tool | Parameters |
|---|---|
| list_issues | project_id, assigned_to_id, status, tracker_id, sort, limit, offset |
| list_time_entries | project_id, user_id, from, to, limit, offset |
| list_issue_options | none |
| log_time | issue_id, project_id, hours, activity_id, spent_on, comments |
Frequently asked questions
Can it log time on a project instead of an issue?
Yes. Redmine accepts either an issue or a project on a time entry, and the Log time form leaves the issue empty for project-level hours. Pass project_id instead of issue_id.
Is it safe to connect Redmine to Cotlet?
Yes. You sign in to Redmine yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Redmine once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.
Give your agent access to Redmine.
Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with Redmine.