# Update Following Event Instances — Google Calendar

> Update all instances of a recurring event following a specific instance. This creates a new recurring event starting from the selected instance. See the documentation

- Key: `google_calendar-update-following-instances`
- Type: Action (Write)
- Version: 0.0.8
- App: Google Calendar (`google_calendar`) — https://pipedream.com/apps/google-calendar.md
- This page (HTML): https://pipedream.com/apps/google-calendar/actions/update-following-instances
- Hints: destructive · open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/google_calendar/actions/update-following-instances/update-following-instances.mjs

## Description

Update all instances of a recurring event following a specific instance. This creates a new recurring event starting from the selected instance. [See the documentation](https://developers.google.com/calendar/api/guides/recurringevents#modifying_all_following_instances)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `calendarId` | `string` | No | Optionally select the calendar, defaults to the primary calendar for the logged-in user Options are loaded from the connected account. |
| `recurringEventId` | `string` | Yes | The ID of the recurring event Options are loaded from the connected account. |
| `instanceId` | `string` | Yes | The instance where the split will occur. All instances from this point forward will be updated with your changes, while earlier instances remain unchanged. For example, selecting the 4th instance will keep instances 1-3 as-is and update instances 4 onwards. Options are loaded from the connected account. |
| `summary` | `string` | No | Enter a new title for all following instances |
| `eventStartDate` | `string` | No | For all-day events, enter the Event day in the format yyyy-mm-dd. For events with time, format according to RFC3339: yyyy-mm-ddThh:mm:ss+01:00. A time zone offset is required unless a time zone is explicitly specified in timeZone. |
| `eventEndDate` | `string` | No | For all-day events, enter the Event day in the format yyyy-mm-dd. For events with time, format according to RFC3339: yyyy-mm-ddThh:mm:ss+01:00. A time zone offset is required unless a time zone is explicitly specified in timeZone. |
| `location` | `string` | No | Specify a new location for all following instances |
| `description` | `string` | No | Enter a new description for all following instances |
| `attendees` | `string` | No | Enter either an array or a comma separated list of email addresses of attendees |
| `repeatFrequency` | `string` | No | Optionally change the repeat frequency for following instances |
| `repeatInterval` | `integer` | No | Repeat interval (e.g., 1 for every day, 2 for every other day) |
| `repeatUntil` | `string` | No | The event will repeat only until this date (format: yyyy-mm-dd) |
| `repeatTimes` | `integer` | No | Limit the number of times this event will occur |
| `colorId` | `string` | No | The color assigned to this event on your calendar. You can only select a color from the list of event colors provided from your calendar. This setting will only affect your calendar. Options are loaded from the connected account. |
| `timeZone` | `string` | No | Time zone used in the response. Optional. The default is the time zone of the calendar. Options are loaded from the connected account. |
| `sendUpdates` | `string` | No | Configure whether to send notifications about the event |

## 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_calendar",
      },
    },
  },
)

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_calendar-update-following-instances",
  arguments: {
    calendarId: "Calendar",
    recurringEventId: "Recurring Event ID",
  },
})
```

**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_calendar-update-following-instances",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    google_calendar: { authProvisionId: "apn_xxxxxxx" },
    calendarId: "Calendar",
    recurringEventId: "Recurring Event ID",
  },
})

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_calendar-update-following-instances",
    "configured_props": {
      "google_calendar": { "authProvisionId": "apn_xxxxxxx" },
      "calendarId": "Calendar",
      "recurringEventId": "Recurring Event ID"
    }
  }'
```

---

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