Sleep Diary

Record sleep intervals, naps and awake minutes with explicit UTC offsets, then export an entered sleep diary.

Files stay on your device No sign-up Free to use
How this works

The tool runs in this browser. Your file or text is not uploaded to UseFreeTools. Check this tool's limits for anything it may save on your device.

Privacy details

Review sleep diary controls

One tab-separated row per session: start and end as a date and time with an explicit UTC offset (for example 2026-09-01T23:15-04:00), then main or nap, then the number of awakenings and the minutes spent awake during the session. Up to 200 rows and 100,000 characters. Only awake minutes are subtracted from time in bed; awakening counts are reported separately. The sample rows are examples; replace them with your own.

Drop your file here

or choose one from your device

Choose a sleep-diary.json file saved by this tool to load its sessions back. Import restores the editable controls and clears the file selection.

    Processed in your browser. Your inputs stay on this device.

    Showing a generated example. Generate again for a new result.

    How to use Sleep Diary

    1. Enter start and end timestamps with explicit UTC offsets, followed by main or nap, awakening count and awake minutes.
    2. Check elapsed time and the subtraction of awake minutes. Main sessions starting before 18:00 are grouped under the previous evening; naps use their start date.
    3. Download CSV for rows, JSON to continue editing later, or PDF for a printable copy. Review exports before sharing them.

    Example: Sleep Diary

    Subtract twelve awake minutes from a main sleep interval.

    You add
    Sleep sessions: start, end, kind, awakenings, awake minutes: 2026-09-01T23:15-04:00 2026-09-02T06:45-04:00 main 1 12 2026-09-02T14:00-04:00 2026-09-02T14:25-04:00 nap 0 0
    You get
    Recorded 2 sessions across 2 nights. Sample rows: 2026-09-01 | main | 2026-09-01T23:15-04:00 | 2026-09-02T06:45-04:00 | 7.5 | 1 | 12 | 7.3 | 7.3 | ; 2026-09-02 | nap | 2026-09-02T14:00-04:00 | 2026-09-02T14:25-04:00 | 0.417 | 0 | 0 | 0.417 | | 0.417

    Options

    Session grouping
    The evening grouping is a report convention. It does not identify a biological night or select a sleep target.
    Awake minutes
    Only the entered minutes reduce the interval. Awakening count is reported separately; overlapping sessions are refused.

    Supported inputs and limits

    Up to 200 sessions. Enter both endpoints and awake minutes; the tool cannot infer missing sleep. Processing runs in the browser without uploading entries or automatic saving. JSON projects are limited to 512 KiB. Saved files contain your supplied details. Printable reports use standard Latin fonts; unsupported characters are refused rather than omitted.

    Where your input is processed

    This tool processes your input in this browser. Your text and files are not uploaded to UseFreeTools. Check this tool's limits for anything it may save on your device.

    Elapsed time comes from explicit offsets

    Start and end timestamps include their UTC offsets. This makes elapsed time independent of the browser location and allows an offset change across daylight-saving transitions. Awake minutes are subtracted from the interval; awakening counts are reported separately. The result is an entered record, not a sleep-quality score or diagnosis.

    Questions about Sleep Diary

    Does it recommend how long to sleep?

    No. It totals the sessions and awake minutes you enter. It does not select a sleep target or judge sleep quality.

    What if the clocks changed overnight?

    Enter the offset in force at each endpoint. The tool uses the two actual instants and does not guess a time-zone transition.

    Can sessions overlap?

    Overlapping intervals are refused so the same time cannot be counted twice. Correct the timestamps or split the record into separate nonoverlapping sessions.

    Project manager: Tony Hines · Content updated 4 October 2026 · Report a problem