# Create Event — Google Calendar

> 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…

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

## Description

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](https://developers.google.com/calendar/api/v3/reference/events/insert)

## 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. |
| `summary` | `string` | Yes | Enter a title for the event, (e.g., My event) |
| `eventStartDate` | `string` | Yes | 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. |
| `eventEndDate` | `string` | Yes | 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. |
| `location` | `string` | No | Specify the location of the event |
| `description` | `string` | No | Enter a description for the event |
| `attendees` | `string[]` | No | An array of email addresses (e.g., ["alice@example.com", "bob@example.com"]) |
| `addSelfAsAttendee` | `boolean` | No | 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. |
| `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 |
| `createMeetRoom` | `boolean` | No | Whether to create a Google Meet room for this event. |
| `visibility` | `string` | No | Visibility of the event |
| `repeatFrequency` | `string` | No | Select a frequency to make this event repeating |
| `repeatInterval` | `integer` | No | Enter 1 to "repeat every day", enter 2 to "repeat every other day", etc. Defaults to 1. |
| `repeatSpecificDays` | `string[]` | No | The event will repeat on these days of the week. Repeat Frequency must be WEEKLY. |
| `repeatUntil` | `string` | No | The event will repeat only until this date, if set. Only one of Repeat Until or Repeat How Many Times may be entered. |
| `repeatTimes` | `integer` | No | Limit the number of times this event will occur. Only one of Repeat Until or Repeat How Many Times may be entered. |

## 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-create-event",
  arguments: {
    calendarId: "Calendar",
    summary: "Event Title",
  },
})
```

**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-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**

```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-create-event",
    "configured_props": {
      "google_calendar": { "authProvisionId": "apn_xxxxxxx" },
      "calendarId": "Calendar",
      "summary": "Event Title"
    }
  }'
```

---

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