time-entries

Merge Time Entries

Fold 1..N time entries into another one, discarding the sources.

Backs the desktop gesture of dropping one or more entries onto another entry's row. Every source's time blocks move to the target and each source is soft-deleted; the target keeps its own narrative, matter/segment, activity code and billability, and its legal time is re-derived or summed by the rule in resolve_merged_legal_time.

This is deliberately not a block move with a flag. A block-level gesture never deletes the source entry (server/AGENTS.md), so the deletion belongs to an explicitly entry-level endpoint. Per-source rejections come back as structured FailedEntryMerge items; problems with the target reject the whole request, since every source shares it. Every returned row is in cursor-sync wire shape for direct local-mirror apply.

post/v1/time-entries/merge

Request

  • Base URL
    https://app.tokumalabs.com/api
  • Auth
    OAuth 2
    Password
    Token URL: v1/auth/token

Request body

source_time_entry_idsinteger[] required

Entries to fold into the target. Each is discarded once its blocks have moved.

target_time_entry_idinteger required

The surviving entry. Keeps its own narrative, matter, code and billability.

Response

Successful Response

Changes

No recorded changes to this operation across all 1 revision of this API.