It is Tuesday morning. Your watch shows a completed night of sleep, but today's Health.md note looks empty. The data may not be missing at all—it may be in Monday's note.
Daily sleep summaries use a local noon-to-noon journal window. Monday’s window runs from Monday 12:00 to Tuesday 12:00. Sleep from Monday 23:45 to Tuesday 07:30 belongs to Monday; so does sleep from Tuesday 01:00 to 07:30. A Tuesday afternoon nap belongs to Tuesday. See the complete sleep-date examples.
For the complete metric-selection, preview, and CSV workflow, follow how to export Apple Health sleep data.
What to export in the morning
| What you want | Date to export |
|---|---|
| Last night's sleep on Tuesday morning | Yesterday (Monday) |
| Tuesday's steps and activity | Today (Tuesday) |
| Both in one run | Monday and Tuesday |
This rule applies to readable exports, Daily Note Injection, API Endpoint payloads, and compatible Apple and Android summaries.
Why use a sleep journal window?
The journal window keeps a typical night together instead of splitting it at midnight. The opening noon is included and the next noon excluded. Sleep crossing noon can contribute to adjacent summaries; source timestamps are not rewritten.
Raw or canonical records retain original timestamps and their own ownership rules. Software must not infer session boundaries from a daily total. The typed healthmd_sleep_sessions query is available on supported Apple Health CLI/MCP paths; Android typed MCP queries are not currently supported. See platform capabilities.
Health Connect may present a night using the wake date in another interface. That display choice does not change Health.md's shared attribution rule. The rule is kept the same across compatible Apple and Android exports so a vault or consumer does not need a different daily-note convention for each phone.
Configure a morning schedule
A practical morning automation exports Yesterday for sleep and, if needed, Today for same-day activity. On iPhone, use the “Export Yesterday's Health Data” Shortcut. On Android, select the equivalent date scope in the schedule or explicit automation action.
If a watch or source app synchronizes after the scheduled run, export the sleep journal day again. Health.md's file updates are designed for repeatable output, and Daily Note Injection replaces app-managed fields rather than appending duplicates.
What an empty result does—and does not—mean
Before concluding that no sleep occurred, check:
- the HealthKit or Health Connect permission;
- whether the source app has synchronized;
- the previous day's file;
- the selected metric and date range;
- coverage or partial-status fields.
Denied access, unsupported data, late synchronization, and an empty matching range are possible causes, not states that can always be distinguished from an empty result. On iPhone, HealthKit does not reveal whether read access was denied. Review the actual coverage or error information and allowed categories; do not invent a permission state or turn a missing value into zero. See export troubleshooting.
There is currently no setting that moves the daily sleep summary to the wake date. Keeping one documented rule protects stable filenames, automation, and downstream consumers.