# New or Modified Files (Polling) — Google Drive

> Emit new event when a file in the selected Drive is created, modified or trashed. See the documentation

- Key: `google_drive-new-or-modified-files-polling`
- Type: Trigger (Polling)
- Version: 0.0.13
- App: Google Drive (`google_drive`) — https://pipedream.com/apps/google-drive.md
- This page (HTML): https://pipedream.com/apps/google-drive/triggers/new-or-modified-files-polling
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/google_drive/sources/new-or-modified-files-polling/new-or-modified-files-polling.mjs

## Description

Emit new event when a file in the selected Drive is created, modified or trashed. [See the documentation](https://developers.google.com/drive/api/v3/reference/changes/list)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `timer` | `$.interface.timer` | Yes | Timer |
| `drive` | `string` | Yes | Defaults to My Drive. To select a Shared Drive instead, select it from this list. Options are loaded from the connected account. |
| `files` | `string[]` | No | The specific file(s) to watch for changes. Leave blank to watch all files in the Drive. Note that events will only be emitted for files directly in these folders (not in their subfolders, unless also selected here) Options are loaded from the connected account. |
| `folders` | `string[]` | No | The specific folder(s) to watch for changes. Leave blank to watch all folders in the Drive. Options are loaded from the connected account. |
| `newFilesOnly` | `boolean` | No | If enabled, only emit events for newly created files (based on createdTime) |
| `changesPageSize` | `integer` | No | Maximum number of changes to fetch per API call (1-1000). Lower values reduce memory usage and the risk of execution timeouts or out-of-memory errors on active drives. |

## Returns

Events emitted by Google Drive.

## Run it

**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 deployed = await pd.triggers.deploy({
  id: "google_drive-new-or-modified-files-polling",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    google_drive: { authProvisionId: "apn_xxxxxxx" },
    timer: { "intervalSeconds": 900 },
    drive: "Drive",
  },
  webhookUrl: "https://example.com/webhooks/google-drive",
})

console.log(deployed.id)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/triggers/deploy \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "google_drive-new-or-modified-files-polling",
    "webhook_url": "https://example.com/webhooks/google-drive",
    "configured_props": {
      "google_drive": { "authProvisionId": "apn_xxxxxxx" },
      "timer": { "intervalSeconds": 900 },
      "drive": "Drive"
    }
  }'
```

**MCP**

MCP servers expose Google Drive actions as on-demand tools.

New or Modified Files (Polling) is an event source, so your application deploys it with the Connect SDK or API and then either receives each event at a webhook URL or retrieves events on demand with the trigger events API.

## Event delivery

Every event is sent to the HTTP endpoint you choose when you deploy the source. Or: no webhook required — your app or agent can fetch recent events from the [trigger events API](https://pipedream.com/docs/connect/api-reference/list-trigger-events.md) instead.

---

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