log_wearable
Log daily wearable/manual health metrics (RHR, HRV, Zone Minutes / AZM, VO2max, calories eaten / dietary energy, stress, supplemental steps, and physiological vitals including SpO₂, respiratory rate, skin temperature, blood pressure, blood glucose, and core temperature).
VITALS — use the vital fields for manual/home/device readings and corrections, including a finger-stick, CGM, home glucose meter, or wearable/Apple Health/Health Connect value the user explicitly wants stored manually. A glucose value from an actual lab report or blood draw belongs in log_lab_results instead, not here.
STEPS — read before using step_count: manual step_count is ADDITIVE — it adds on top of whatever a connected wearable (Fitbit, Oura, Apple Health, Health Connect) already recorded that day; it never replaces or overrides device data. Only use it when the user explicitly says they walked steps their device did NOT capture (phone left home, battery died, device not worn). If the user says sync is wrong, steps look doubled, or they want to fix/override/replace device data: do NOT pass step_count — explain that manual steps add on top, and sync issues need investigating at the device level.
ALL OTHER FIELDS (RHR, HRV, AZM, VO2max, stress, and physiological vitals) replace the existing manual value for that day and are safe to use for corrections.
SLEEP ADDITIONS — only when the user EXPLICITLY asks to add missing sleep periods to an EXISTING record, use sleep_periods and add_to_existing_sleep_record: true. Each start/end accepts local HH:MM or ISO 8601 with offset. Only the source powering the displayed sleep total can be enriched, selected using the user's Sleep source priority. If sleep_source is specified it must match that source. Never infer consent from a complaint about sleep; do not mix additions with other metrics.
INFER — do not ask: date defaults to today unless the user says otherwise.
IDEMPOTENT: if the values you'd log already exist for that date (any source), the tool returns a no-op success — report this as "already had data", not "failed".
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date for the entry. Format: YYYY-MM-DD. Default to today. | |
| resting_hr | No | Legacy provider resting heart rate, BPM. Use only when the measurement type is unknown; do not infer waking or sleeping from this value. | |
| step_count | No | Supplemental steps NOT captured by any connected wearable. ADDITIVE — adds to device data, never replaces it. Only use when user explicitly says their device missed these steps. | |
| hrv_morning | No | Morning HRV in milliseconds (RMSSD or similar). Optional. | |
| skin_temp_c | No | Skin temperature in °C. Manual/home/device reading. Optional. | |
| sleep_source | No | Optional source identity. Must match the displayed sleep total source; see SLEEP ADDITIONS. | |
| spo2_avg_pct | No | SpO₂ in %. Manual/home/device reading. Optional. | |
| stress_score | No | Stress score (0–100 scale). Optional. | |
| sleep_periods | No | Missing sleep periods to ADD. Start/end: local HH:MM or offset-aware ISO 8601. See SLEEP ADDITIONS. | |
| vo2max_estimate | No | VO2max estimate (ml/kg/min). Optional. | |
| core_body_temp_c | No | Core temperature in °C. Manual/home/device reading. Optional. | |
| dietary_calories | No | Dietary energy / calories eaten for the day in kcal, imported from a connected health app (Apple Health / Health Connect). Optional. | |
| overnight_min_hr | No | Overnight minimum HR in BPM: the actual lowest reading during the MAIN sleep period. Never log nighttime average or generic RHR here. | |
| systolic_bp_mm_hg | No | Systolic blood pressure in mmHg. Provide with diastolic_bp_mm_hg. Manual/home/device reading. Optional. | |
| daytime_resting_hr | No | Daytime resting HR in BPM, measured during awake rest or estimated from documented awake, stable, non-exercise samples. Only when the user identifies this type. | |
| diastolic_bp_mm_hg | No | Diastolic blood pressure in mmHg. Provide with systolic_bp_mm_hg. Manual/home/device reading. Optional. | |
| blood_glucose_mg_dl | No | Blood glucose in mg/dL. Manual/home/device reading. Optional. | |
| active_zone_min_peak | No | Zone Minutes (also called Active Zone Minutes by Fitbit, Heart Points by Google Fit) at peak intensity. Optional. | |
| confirm_supplemental | No | Set to true ONLY after the user has explicitly confirmed these steps were walked without their device and were not captured. Do not set true based on your own inference. | |
| respiratory_rate_bpm | No | Breathing in br/min. Manual/home/device reading. Optional. | |
| active_zone_min_moderate | No | Zone Minutes (also called Active Zone Minutes by Fitbit, Heart Points by Google Fit) at moderate intensity. Optional. | |
| add_to_existing_sleep_record | No | True only on an explicit request to supplement an existing sleep record. See SLEEP ADDITIONS. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes | Human-readable result text returned by the tool. |