Skip to main content
Every cal.api.* operation is listed below with parameter shapes and return types from the plugin Zod schemas.
New to Corsair? See API access, authentication, and error handling.

Bookings

cancel

bookings.cancel Cancel a booking [DESTRUCTIVE] Risk: destructive
await corsair.cal.api.bookings.cancel({});
Input
NameTypeRequiredDescription
uidstringYes
cancellationReasonstringNo
allRemainingBookingsbooleanNo
Output
NameTypeRequiredDescription
statusstringYes
dataobjectNo
{
  id: number,
  uid: string,
  title?: string,
  description?: string | null,
  status: string,
  start?: string,
  end?: string,
  duration?: number,
  eventTypeId?: number,
  eventType?: {
    id: number,
    slug?: string
  },
  meetingUrl?: string | null,
  location?: string | null,
  absentHost?: boolean,
  createdAt?: string,
  updatedAt?: string,
  cancellationReason?: string | null,
  reschedulingReason?: string | null,
  rescheduledFromUid?: string | null,
  attendees?: {
    name: string,
    email: string,
    timeZone: string,
    language?: string,
    absent?: boolean
  }[],
  hosts?: {
    id: number,
    name: string,
    email?: string,
    username?: string,
    timeZone?: string
  }[],
  guests?: string[],
  metadata?: {
  } | null,
  bookingFieldsResponses?: {
  } | null
}

confirm

bookings.confirm Confirm a pending booking Risk: write
await corsair.cal.api.bookings.confirm({});
Input
NameTypeRequiredDescription
uidstringYes
Output
NameTypeRequiredDescription
statusstringYes
dataobjectNo
{
  id: number,
  uid: string,
  title?: string,
  description?: string | null,
  status: string,
  start?: string,
  end?: string,
  duration?: number,
  eventTypeId?: number,
  eventType?: {
    id: number,
    slug?: string
  },
  meetingUrl?: string | null,
  location?: string | null,
  absentHost?: boolean,
  createdAt?: string,
  updatedAt?: string,
  cancellationReason?: string | null,
  reschedulingReason?: string | null,
  rescheduledFromUid?: string | null,
  attendees?: {
    name: string,
    email: string,
    timeZone: string,
    language?: string,
    absent?: boolean
  }[],
  hosts?: {
    id: number,
    name: string,
    email?: string,
    username?: string,
    timeZone?: string
  }[],
  guests?: string[],
  metadata?: {
  } | null,
  bookingFieldsResponses?: {
  } | null
}

create

bookings.create Create a new booking Risk: write
await corsair.cal.api.bookings.create({});
Input
NameTypeRequiredDescription
startstringYes
eventTypeIdnumberYes
attendeeobjectYes
meetingUrlstringNo
lengthInMinutesnumberNo
bookingFieldsResponsesobjectNo
metadataobjectNo
{
  name: string,
  email: string,
  timeZone: string
}
{
}
{
}
Output
NameTypeRequiredDescription
statusstringYes
dataobjectNo
{
  id: number,
  uid: string,
  title?: string,
  description?: string | null,
  status: string,
  start?: string,
  end?: string,
  duration?: number,
  eventTypeId?: number,
  eventType?: {
    id: number,
    slug?: string
  },
  meetingUrl?: string | null,
  location?: string | null,
  absentHost?: boolean,
  createdAt?: string,
  updatedAt?: string,
  cancellationReason?: string | null,
  reschedulingReason?: string | null,
  rescheduledFromUid?: string | null,
  attendees?: {
    name: string,
    email: string,
    timeZone: string,
    language?: string,
    absent?: boolean
  }[],
  hosts?: {
    id: number,
    name: string,
    email?: string,
    username?: string,
    timeZone?: string
  }[],
  guests?: string[],
  metadata?: {
  } | null,
  bookingFieldsResponses?: {
  } | null
}

decline

bookings.decline Decline a pending booking Risk: write
await corsair.cal.api.bookings.decline({});
Input
NameTypeRequiredDescription
uidstringYes
reasonstringNo
Output
NameTypeRequiredDescription
statusstringYes
dataobjectNo
{
  id: number,
  uid: string,
  title?: string,
  description?: string | null,
  status: string,
  start?: string,
  end?: string,
  duration?: number,
  eventTypeId?: number,
  eventType?: {
    id: number,
    slug?: string
  },
  meetingUrl?: string | null,
  location?: string | null,
  absentHost?: boolean,
  createdAt?: string,
  updatedAt?: string,
  cancellationReason?: string | null,
  reschedulingReason?: string | null,
  rescheduledFromUid?: string | null,
  attendees?: {
    name: string,
    email: string,
    timeZone: string,
    language?: string,
    absent?: boolean
  }[],
  hosts?: {
    id: number,
    name: string,
    email?: string,
    username?: string,
    timeZone?: string
  }[],
  guests?: string[],
  metadata?: {
  } | null,
  bookingFieldsResponses?: {
  } | null
}

get

bookings.get Get a booking by UID Risk: read
await corsair.cal.api.bookings.get({});
Input
NameTypeRequiredDescription
uidstringYes
Output
NameTypeRequiredDescription
statusstringYes
dataobjectNo
{
  id: number,
  uid: string,
  title?: string,
  description?: string | null,
  status: string,
  start?: string,
  end?: string,
  duration?: number,
  eventTypeId?: number,
  eventType?: {
    id: number,
    slug?: string
  },
  meetingUrl?: string | null,
  location?: string | null,
  absentHost?: boolean,
  createdAt?: string,
  updatedAt?: string,
  cancellationReason?: string | null,
  reschedulingReason?: string | null,
  rescheduledFromUid?: string | null,
  attendees?: {
    name: string,
    email: string,
    timeZone: string,
    language?: string,
    absent?: boolean
  }[],
  hosts?: {
    id: number,
    name: string,
    email?: string,
    username?: string,
    timeZone?: string
  }[],
  guests?: string[],
  metadata?: {
  } | null,
  bookingFieldsResponses?: {
  } | null
}

list

bookings.list List all bookings Risk: read
await corsair.cal.api.bookings.list({});
Input
NameTypeRequiredDescription
statusupcoming | recurring | past | cancelled | unconfirmedNo
attendeeEmailstringNo
attendeeNamestringNo
eventTypeIdsstringNo
eventTypeIdnumberNo
teamsIdsstringNo
teamIdnumberNo
afterStartstringNo
beforeEndstringNo
sortStartasc | descNo
sortEndasc | descNo
sortCreatedasc | descNo
takenumberNo
skipnumberNo
Output
NameTypeRequiredDescription
statusstringYes
dataobject[]No
{
  id: number,
  uid: string,
  title?: string,
  description?: string | null,
  status: string,
  start?: string,
  end?: string,
  duration?: number,
  eventTypeId?: number,
  eventType?: {
    id: number,
    slug?: string
  },
  meetingUrl?: string | null,
  location?: string | null,
  absentHost?: boolean,
  createdAt?: string,
  updatedAt?: string,
  cancellationReason?: string | null,
  reschedulingReason?: string | null,
  rescheduledFromUid?: string | null,
  attendees?: {
    name: string,
    email: string,
    timeZone: string,
    language?: string,
    absent?: boolean
  }[],
  hosts?: {
    id: number,
    name: string,
    email?: string,
    username?: string,
    timeZone?: string
  }[],
  guests?: string[],
  metadata?: {
  } | null,
  bookingFieldsResponses?: {
  } | null
}[]

reschedule

bookings.reschedule Reschedule a booking to a new time Risk: write
await corsair.cal.api.bookings.reschedule({});
Input
NameTypeRequiredDescription
uidstringYes
startstringYes
rescheduledBystringNo
Output
NameTypeRequiredDescription
statusstringYes
dataobjectNo
{
  id: number,
  uid: string,
  title?: string,
  description?: string | null,
  status: string,
  start?: string,
  end?: string,
  duration?: number,
  eventTypeId?: number,
  eventType?: {
    id: number,
    slug?: string
  },
  meetingUrl?: string | null,
  location?: string | null,
  absentHost?: boolean,
  createdAt?: string,
  updatedAt?: string,
  cancellationReason?: string | null,
  reschedulingReason?: string | null,
  rescheduledFromUid?: string | null,
  attendees?: {
    name: string,
    email: string,
    timeZone: string,
    language?: string,
    absent?: boolean
  }[],
  hosts?: {
    id: number,
    name: string,
    email?: string,
    username?: string,
    timeZone?: string
  }[],
  guests?: string[],
  metadata?: {
  } | null,
  bookingFieldsResponses?: {
  } | null
}