GothenburgBitFactory / GothenburgBitFactory/timewarrior

unexpected `summary <range>` behavior

Open
#783 0 comments 0 reactions 1 assignee Claimed by @lauft View on GitHub
Dominant language
C++
Stars
1.7k
Forks
117
Avg merge
1d 7h
Merged PRs (30d)
5

Description

Using a month like `august` just shows this month, which is what I expected:

```
$ timew summary august

Wk Date Day Tags Start End Time Total
W32 2026-08-03 Mon stuff 6:10:00 13:40:29 7:30:29
stuff 20:50:00 22:14:27 1:24:27 8:54:56
W32 2026-08-04 Tue stuff 7:14:37 8:42:52 1:28:15
stuff 10:55:00 13:39:05 2:44:05 4:12:20
...
W35 2026-08-28 Fri stuff 6:05:00 13:51:57 7:46:57 7:46:57
W36 2026-08-31 Mon stuff 6:00:00 8:30:00 2:30:00
stuff 11:00:00 12:05:00 1:05:00
stuff 13:00:00 13:50:00 0:50:00 4:25:00

127:37:31
```

Using the month format apparently expands to the first day of the month as range (I expected it to be functionally the same as `timew summary august`):

```
$ timew summary 2026-08
No filtered data found in the range 2026-08-01T00:00:00 - 2026-08-02T00:00:00.
```

Using the week format turns out to take the first day of that week as start of the range with open end:

```
$ timew summary 2026-W35

Wk Date Day Tags Start End Time Total
W35 2026-08-24 Mon admin, retreat 9:00:00 11:30:00 2:30:00
admin, retreat 12:00:00 14:30:52 2:30:52 5:00:52
...
W36 2026-09-03 Thu stuff 6:35:00 - 5:40:27 5:40:27

58:15:32
```

---

I was looking for short commands (less typing and thinking 😅 but joke aside this means less cognitive energy needed) for the following:

1. show the summary of a given month

This works with e.g. `timew summary june` but would be more complex for last year: `timew summary 2025-06 - 2025-07` which could just be written as `timew summary 2025-06` for give me last years June.
1. show the summary of a given calendar week

Shortest that works is `timew summary 2026-W25 - 2026-W26`

---

To reduce the size of the command, it would be nice to have if `YYYY-MM` and `YYYY-Www` were treated as their respective full range with `timew summary` as in:

- treat `YYYY-MM` as range `YYYY-MM-01 - YYYY-MM-{end_of_month}`
- treat `YYYY-Www` as range `YYYY-Www-{first_day_of_week} - YYYY-Www-{end_of_week}`

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.