# Get Booking Spots — Launch27

> Retrieves all booking spots for a given event type. See the documentation

- Key: `launch27-get-booking-spots`
- Type: Action (Read-only)
- Version: 0.0.2
- App: Launch27 (`launch27`) — https://pipedream.com/apps/launch27.md
- This page (HTML): https://pipedream.com/apps/launch27/actions/get-booking-spots
- Hints: read-only · open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/launch27/actions/get-booking-spots/get-booking-spots.mjs

## Description

Retrieves all booking spots for a given event type. [See the documentation](https://bitbucket.org/awoo23/api-2.0/wiki/Spots_for_booking)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `date` | `string` | Yes | The date to get booking spots for. Format: YYYY-MM-DD |
| `days` | `integer` | Yes | The number of days you need spots for starting from and including the date |
| `mode` | `string` | Yes | Affects how available spots calculated: using reschedule booking policy or new booking policy. new mode should be used when you need to create new booking. Note: New booking policy is applied, so it is possible to have future spots not available because of the policy. reschedule mode should be used when you need to change date and/or time for already existing booking. Note: Booking reschedule policy is applied, so it is possible to have future spots not available because of the policy |
| `grid` | `boolean` | No | If true response will contain grid and days sections |

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

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: "launch27-get-booking-spots",
  arguments: {
    date: "Date",
    days: 10,
  },
})
```

**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: "launch27-get-booking-spots",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    launch27: { authProvisionId: "apn_xxxxxxx" },
    date: "Date",
    days: 10,
  },
})

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": "launch27-get-booking-spots",
    "configured_props": {
      "launch27": { "authProvisionId": "apn_xxxxxxx" },
      "date": "Date",
      "days": 10
    }
  }'
```

---

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