Google Calendar ACTION
Create Event
Create a new event on a Google Calendar — a single or recurring appointment at a specific date/time (optionally with attendees, location, and description). Use this whenever the user wants to add something to their calendar. This creates calendar EVENTS only: it cannot configure calendar settings, working hours, availability, or default preferences, and it cannot create a new calendar. Do not represent any of those requests as an event — creating an event named after the request does not fulfill it. See the documentation
- Action
- Writes data
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Google Calendar account once, then configure and run Create Event 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-create-event",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
google_calendar: { authProvisionId: "apn_xxxxxxx" },
calendarId: "Calendar",
summary: "Event Title",
},
})
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-create-event",
"configured_props": {
"google_calendar": { "authProvisionId": "apn_xxxxxxx" },
"calendarId": "Calendar",
"summary": "Event Title"
}
}'// 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-create-event",
arguments: {
calendarId: "Calendar",
summary: "Event Title",
},
})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 |
summary Event Title | string | Enter a title for the event, (e.g., My event) Required |
eventStartDate Event Start Date | string | For all-day events, enter the date in the format yyyy-mm-dd (e.g., 2025-01-15). For events with time, format according to RFC3339: yyyy-mm-ddThh:mm:ss+01:00 (e.g., 2025-01-15T10:00:00-05:00). A time zone offset is required unless a time zone is explicitly specified in timeZone. Required |
eventEndDate Event End Date | string | For all-day events, enter the date in the format yyyy-mm-dd (e.g., 2025-01-15). For events with time, format according to RFC3339: yyyy-mm-ddThh:mm:ss+01:00 (e.g., 2025-01-15T11:00:00-05:00). A time zone offset is required unless a time zone is explicitly specified in timeZone. Required |
location Event Location | string | Specify the location of the event Optional |
description Event Description | string | Enter a description for the event Optional |
attendees Attendees | string[] | An array of email addresses (e.g., ["alice@example.com", "bob@example.com"]) Optional |
addSelfAsAttendee Add Self as Attendee | boolean | Whether to add the authenticated user (the event organizer) to the guest list. Default is true, which mirrors the Google Calendar web UI behavior of adding the creator as an attendee. 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 |
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 |
createMeetRoom Create Meet Room | boolean | Whether to create a Google Meet room for this event. Optional |
visibility Visibility | string | Visibility of the event Optional |
repeatFrequency Repeat Frequency | string | Select a frequency to make this event repeating Optional |
repeatInterval Repeat Interval | integer | Enter 1 to "repeat every day", enter 2 to "repeat every other day", etc. Defaults to 1. Optional |
repeatSpecificDays Repeat Specific Days | string[] | The event will repeat on these days of the week. Repeat Frequency must be WEEKLY. Optional |
repeatUntil Repeat Until | string | The event will repeat only until this date, if set. Only one of Repeat Until or Repeat How Many Times may be entered. Optional |
repeatTimes Repeat How Many Times? | integer | Limit the number of times this event will occur. Only one of Repeat Until or Repeat How Many Times may be entered. 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-create-event
- Version
- 1.1.2
- App
- Google Calendar
- Authentication
- OAuth
- Read-only
- No
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗