Google Calendar ACTION
Update Event Instance
Update a single occurrence of a recurring event. Changes apply only to that instance and only the fields you supply change; reminders, attendees and all other fields are kept. Set
Show As to mark the instance as Free or Busy. Use List Event Instances to find the instance, or Update Event to change the whole series. Returns the updated instance. See the documentation- Action
- Writes data
- Destructive
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Google Calendar account once, then configure and run Update Event Instance from your backend or agent.
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-event-instance",
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 -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-event-instance",
"configured_props": {
"google_calendar": { "authProvisionId": "apn_xxxxxxx" },
"calendarId": "Calendar",
"recurringEventId": "Recurring Event ID"
}
}'// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{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-event-instance",
arguments: {
calendarId: "Calendar",
recurringEventId: "Recurring Event ID",
},
})SCHEMA
Inputs
Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.
| Property | Type | Description |
|---|---|---|
calendarId Calendar | string | Optionally select the calendar, defaults to the primary calendar for the logged-in user Optional Dynamic |
recurringEventId Recurring Event ID | string | The ID of the recurring event Required Dynamic |
instanceId Event Instance ID | string | The ID of the specific instance to update. Use List Event Instances action to get instance IDs. Required Dynamic |
summary Event Title | string | Enter a new title for this instance Optional |
eventStartDate Event Start Date | string | 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. Optional |
eventEndDate Event End Date | string | 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. Optional |
location Event Location | string | Specify a new location for this instance Optional |
description Event Description | string | Enter a new description for this instance Optional |
attendees Attendees | string | Enter either an array or a comma separated list of email addresses of attendees, e.g. alice@example.com,bob@example.com or ["alice@example.com"]. Replaces the instance's current attendee list; to add attendees without removing existing ones, use Add Attendees To Event instead. Optional |
colorId Color ID | string | 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. Optional Dynamic |
transparency Show As | string | Whether the event blocks time on the calendar: opaque (Busy) blocks time; transparent (Free) leaves the time available. E.g. transparent for an all-day reminder or out-of-office notice that shouldn't block scheduling. If left empty, a new event uses Google's default (opaque) and an updated event keeps its current setting. Optional |
timeZone Time Zone | string | Time zone used in the response. Optional. The default is the time zone of the calendar. Optional Dynamic |
sendUpdates Send Updates | string | Configure whether to send notifications about the event Optional |
REFERENCE
Tool details
Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.
- Registry key
- google_calendar-update-event-instance
- Version
- 0.1.0
- App
- Google Calendar
- Authentication
- OAuth
- Read-only
- No
- Destructive
- Yes
- Open world
- Yes
- Source
- View on GitHub ↗