# Create Reservation — Planyo Online Booking

> Enters a new reservation into the system. See Docs

- Key: `planyo_online_booking-create-reservation`
- Type: Action (Write)
- Version: 0.0.2
- App: Planyo Online Booking (`planyo_online_booking`) — https://pipedream.com/apps/planyo-online-booking.md
- This page (HTML): https://pipedream.com/apps/planyo-online-booking/actions/create-reservation
- Hints: open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/planyo_online_booking/actions/create-reservation/create-reservation.mjs

## Description

Enters a new reservation into the system. [See Docs](https://www.planyo.com/api.php?topic=make_reservation)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `startTime` | `string` | Yes | Datetime in ISO 8601 format. Start time of the event. For example 2023-02-22T23:31:23+00:00 |
| `endTime` | `string` | Yes | Datetime in ISO 8601 format. End time of the event. For example 2023-02-22T23:31:23+00:00 |
| `resourceId` | `string` | Yes | If you specify resource ID, the vacation will be added only for this resource. If you leave this empty, vacation will be added for the whole site. Options are loaded from the connected account. |
| `quantity` | `integer` | Yes | Enter the number of resources which should be made unavailable |
| `userId` | `string` | No | Optionally you can pass an existing user ID for the reservation. If you don't do this, planyo will identify the user ID by their email address. Options are loaded from the connected account. |
| `email` | `string` | No | User's email address. This field is required only if user_id is not set. |
| `firstName` | `string` | No | User's first name. This field is required only if user_id is not set. |
| `lastName` | `string` | No | User's last name |
| `address` | `string` | No | User's address |
| `city` | `string` | No | User's city |
| `state` | `string` | No | State or province |
| `zip` | `string` | No | Zip or postal code |
| `country` | `string` | No | Two-letter country code (ISO 3166-1 alpha-2) |
| `phonePrefix` | `string` | No | Phone country code (e.g. 1 for USA and Canada) |
| `phoneNumber` | `string` | No | Phone number (excluding country code) |

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

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: "planyo_online_booking-create-reservation",
  arguments: {
    startTime: "Start Time",
    endTime: "End time",
  },
})
```

**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: "planyo_online_booking-create-reservation",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    planyo_online_booking: { authProvisionId: "apn_xxxxxxx" },
    startTime: "Start Time",
    endTime: "End time",
  },
})

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": "planyo_online_booking-create-reservation",
    "configured_props": {
      "planyo_online_booking": { "authProvisionId": "apn_xxxxxxx" },
      "startTime": "Start Time",
      "endTime": "End time"
    }
  }'
```

---

- App: https://pipedream.com/apps/planyo-online-booking.md · All apps: https://pipedream.com/apps
