Last updated 2026-05-21

My Day

/my-day is your daily home in OtiumWork: tap a project tile → everything your desktop client captures until the next tap gets attributed to that project. For retrospective fixes use /events/mine.

How it works

  1. You open /my-day. You see tiles for every project your manager has assigned to you, ordered by urgency (tasks due in 48h → over-budget → logged-today → recent → everything else).
  2. You tap a tile. A focus session opens: project_id = that tile.
  3. The desktop client polls /api/focus/current every 30 seconds and stamps X-Session-Id on every captured event it uploads.
  4. On the server side, each work_event is tagged with session_id and its project_id is set to the tile's project (the tile-press is explicit user intent — it overrides any auto-guessed project_id from rules / LLM).
  5. When you tap a different tile, the current session closes (ended_at = now) and a new one opens.
  6. Tap "Stop & go idle" to close the session without opening a new one (lunch, end of day, etc.).

What doesn't change

  • Category, work type, department — still set by the existing three-layer classifier (admin rules → past corrections → Claude Haiku). My Day only owns project_id.
  • Desktop client capture — nothing changed. Window titles still get captured every few seconds, grouped into per-minute buckets, flushed every 5 minutes.
  • Your manual corrections — still override everything. Edit any event at /events/mine and your edit wins.

Precedence for project_id / task_id on each event

From highest to lowest priority:

  1. Manual correction in /events/mine
  2. My Day active tile + task (manually chosen via the tile grid / task dropdown)
  3. Outlook auto-focus session (opened because a calendar meeting's subject matched a project)
  4. Classification rule match on window title
  5. LLM (Haiku) guess
  6. NULL — shows up in the "needs classifying" queue

Note: if you manually tap a tile, the Outlook auto-focus will not override your choice. It only acts when you're idle (no open session) or when the currently-open session was itself auto-opened by Outlook.

The timeline below the tiles

Once you've started using tiles, "Today's sessions" appears below the grid — a chronological list of what you focused on today with duration per session. Each session is expandable to see the underlying captures.

Overlap warnings — when a manual block fights a calendar meeting

If you start a manual focus session (project tile) at, say, 2-3pm AND your Outlook calendar has a meeting at 2:30-3pm, both blocks render side-by-side on the timeline strip — and both contribute minutes to your totals. That's 1.5h on the books when you really only worked 1h.

To avoid the double-count, an amber banner appears at the top of /my-day with two quick-resolve buttons per overlap:

  • Keep meeting · drop session — deletes the manual focus_session plus any work_event rows that rolled under it.
  • Keep session · drop meeting — deletes the calendar-imported work_event row(s) for that meeting.

A pair is flagged when they overlap by ≥50% of the shorter block. Up to 5 conflicts surface at a time. Desktop-tracker fragments inside a meeting window get absorbed silently — those never trigger this warning.

Stale focus-session warning

If your current focus session was started more than 24h ago, a separate amber banner shows up offering a one-click "Stop the stale session" button. Common case: you tapped a tile on Monday morning and forgot to tap Stop. Until you close it, every desktop capture gets stamped with that session's project, and the calendar strip stretches across the whole stale window.

What "My Activity" is for now

/events/mine is still there. It's the audit / fix-it drawer: use it when you forgot to tap a tile in the morning, when you want to fine-tune per-event categorization, or when a manager asks "what were these 3 hours on Tuesday?" It's no longer the daily destination — My Day is.

Urgency ordering (tile sort)

Top-to-bottom:

  • Due soon (red): project has an assigned task with end_date ≤ today + 48h
  • Over budget (orange): project has budget_hours and logged hours exceed it
  • Today (blue): you've already logged any time to this project today — stay in context
  • Recent (gray): you've logged time to it in the last 7 days
  • Assigned (faint): everything else you're assigned to

Phase 2 (live as of 2026-04-24)

  • Task-level granularity. When you tap a tile, the active banner shows a Task: dropdown with that project's open tasks. The soonest-due task is auto-selected; switch to a different one anytime. Every event captured during the session stamps both project_id and task_id, so timesheets and reports can break down hours per task.
  • "Switch tile?" nudge. If the last 15 minutes of captured window titles mention a different project more than the tile you're currently on, a yellow banner appears at the top of /my-day with a one-click Switch to X button. Safety-net for the "oh, I forgot to tap" moment.
  • Outlook-meeting auto-focus. If you've connected Outlook (Admin → Settings → Microsoft 365), a server cron checks every 2 minutes whether a meeting is happening right now. If the meeting subject contains the name of one of your assigned projects, a focus session opens automatically — same as if you'd tapped the tile. Manually-opened sessions are never overridden. When the meeting ends, the auto-opened session closes and you return to idle.

Editing a calendar block — inline task creation

Click any block on the calendar timeline to open the Edit block modal. You can change the label, project, task, and start/end times.

If the project you pick doesn't yet have the task you want (e.g. you just realised this meeting was a reseller meeting and that task doesn't exist), hit the + button next to the Task dropdown. A small inline row appears — type the task name, hit Add (or Enter), and the task is created on that project and pre-selected for you. Manager/admin role required.

Phase 3 (not yet)

  • Cross-device tile sync via websocket (today it's 30s polling, which is fine)
  • AI suggesting the right tile from capture signals without even needing the nudge
  • Manager live view: see who on your team is focused on what right now

See something wrong or outdated in this article? Report it →