Skip to content

ScreenTime consent-forward “how my day was spent” summary #9

Description

@horner

You can build a consent-forward “how my day was spent” summary — but Screen Time–style APIs usually only get you “time in apps/categories,” not “what you worked on.” So meetings vs Google Docs is doable at a high level, and “which meeting / which doc” generally requires separate integrations (calendar + possibly browser/desktop telemetry) with clear user permission.

What Screen Time–type data can tell you (and what it can’t)

iOS / iPadOS

Apple’s Screen Time frameworks (FamilyControls / DeviceActivity / ManagedSettings) are designed for parental control–style use cases and require special entitlement + user authorization. oai_citation:0‡Apple Developer

What you can reliably get:

  • Time spent in specific apps (e.g., Google Docs app, Google Meet/Zoom/Teams)
  • Threshold/interval reporting around usage (e.g., “30 min in Docs”) via DeviceActivity concepts oai_citation:1‡Apple Developer

What you generally won’t get from Screen Time APIs alone:

  • The document title, doc ID, or which file in Google Docs
  • The meeting name, attendee list, or agenda
  • Fine-grained “this was a meeting” unless you infer it from the app (Meet/Zoom/Teams) or from the calendar.

Also, practically: getting production access to Apple’s Screen Time entitlements can be non-trivial depending on distribution model and review expectations (Apple positions it around parental controls/guardianship). oai_citation:2‡Apple Developer

Android

Android’s UsageStatsManager can provide foreground time and usage events (with the user explicitly granting “Usage Access”). oai_citation:3‡Android Developers
This makes it easier to generate “time in Zoom/Docs/Email,” but still won’t tell you “which doc” without additional integration.

Desktop (often the easiest path for “Google Docs time”)

If the work is primarily on a laptop, you can be much more precise:

  • A browser extension can observe active tab changes (with permissions) and measure time on docs.google.com / meet.google.com. oai_citation:4‡Chrome for Developers
    This can get you from “time in Chrome” → “time in Google Docs vs Meet,” and even URLs (if the user allows it).

How to accurately summarize “meetings vs Google Docs”

Best practice is to combine 2 signals:

  1. Calendar as the source of truth for meetings
  • Pull events from Google Calendar / Outlook (with OAuth consent).
  • Treat events marked busy as “meeting blocks.”
  • Optionally cross-check with app usage (Teams/Zoom/Meet) to detect overruns/early exits.
  1. App / browser usage for “work blocks”

This produces a clean leader-friendly breakdown without needing invasive content capture.

A consent + employee-approval workflow that leaders will accept

A pattern that tends to work well:

  1. Local collection (raw timeline stays private by default)
  • Collect coarse events: {start, end, label} (e.g., “Google Docs”, “Meeting”, “Email”).
  • Avoid collecting titles/URLs unless explicitly needed.
  1. On-device (or user-private) draft summary
  • Generate a short narrative + buckets:
    • Meetings: 2h 15m
    • Docs/Writing: 1h 40m
    • Email/Admin: 45m
    • Project tool: 1h 10m
  1. Employee review + edit gate
  • Show the draft and the underlying breakdown.
  • Let employee:
    • rename buckets (“Design doc” instead of “Google Docs”)
    • delete items
    • merge blocks
    • add 1–2 bullets of outcomes
  1. Explicit “Submit to leader” action
  • Only the approved summary is transmitted.
  • Keep an audit record: “Employee approved at 5:42pm”.
  1. Minimize retention
  • Retain only the approved summary (and maybe totals), not raw telemetry.

Practical “lowest-friction” output format (leaders like this)

Example daily summary (employee-approved):

  • Total focused work: 5h 20m
  • Meetings: 2h 15m (team sync, customer call)
  • Docs/Writing: 1h 40m (proposal + notes)
  • Execution: 1h 05m (tickets/PR reviews)
  • Admin: 20m
  • Key outcomes: shipped X, unblocked Y, next step Z

Key decision: what devices are in scope?

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions