# Get Daily Activity Summary — Google Health

> Get a full day of activity at once: steps, distance, calories, active minutes by intensity, active zone minutes by heart rate zone, and floors. The right tool when the user wants an overall picture of a day rather than one metric — use Get…

- Key: `google_health-get-daily-activity-summary`
- Type: Action (Read-only)
- Version: 0.0.3
- App: Google Health (`google_health`) — https://pipedream.com/apps/google-health.md
- This page (HTML): https://pipedream.com/apps/google-health/actions/get-daily-activity-summary
- Hints: read-only · open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/google_health/actions/get-daily-activity-summary/get-daily-activity-summary.mjs

## Description

Get a full day of activity at once: steps, distance, calories, active minutes by intensity, active zone minutes by heart rate zone, and floors. The right tool when the user wants an overall picture of a day rather than one metric — use **Get Daily Step Count** for steps alone or **Get Heart Rate** for heart rate detail. The range is inclusive and capped at **14 days** (calories and active minutes impose that limit on the aggregation). Example: startDate="2026-08-24" → `days: [{ date, steps: 8432, distanceKm: 6.1, totalCalories: 2380, activeCalories: 620, activeMinutes: { light, moderate, vigorous, total }, activeZoneMinutes: { fatBurn, cardio, peak, total }, floors: 12 }]`. Set dataSourceFamily="google-wearables" to exclude manually logged activity. A `null` metric means that one metric did not sync for that day and says nothing about the rest of the day — a day can carry real steps alongside a `null` `distanceKm`, so do not report the whole day as empty. An empty `days` array is the separate case where no activity data synced at all for the range. Never report either as zero. The API has no concept of daily goals, so no targets are returned. [See the documentation](https://developers.google.com/health/reference/rest/v4/users.dataTypes.dataPoints/dailyRollUp)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `startDate` | `string` | No | Start date in YYYY-MM-DD format (e.g. 2026-08-24), in the user's own timezone. Defaults to today in UTC, which can be a day off from the user's local date late at night — pass an explicit date when the exact day matters. |
| `endDate` | `string` | No | End date in YYYY-MM-DD format, inclusive. Defaults to Start Date, i.e. a single day. For a whole week, set Start Date to the Monday and End Date to the Sunday. |
| `dataSourceFamily` | `string` | No | Which data sources to include. all-sources (the default) counts everything. google-wearables counts only Fitbit trackers and Pixel Watches, excluding manually logged entries — use it when the user asks about what their watch or tracker recorded. Only applies to aggregated (roll-up) queries. |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "google_health",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "google_health-get-daily-activity-summary",
  arguments: {
    startDate: "Start Date",
    endDate: "End Date",
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "google_health-get-daily-activity-summary",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    google_health: { authProvisionId: "apn_xxxxxxx" },
    startDate: "Start Date",
    endDate: "End Date",
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "google_health-get-daily-activity-summary",
    "configured_props": {
      "google_health": { "authProvisionId": "apn_xxxxxxx" },
      "startDate": "Start Date",
      "endDate": "End Date"
    }
  }'
```

---

- App: https://pipedream.com/apps/google-health.md · All apps: https://pipedream.com/apps
