---
title: "interviewSchedule.create"
method: POST
path: "/interviewSchedule.create"
tags: ["Interview Schedule"]
---

# interviewSchedule.create

`POST /interviewSchedule.create`

Create a scheduled interview in Ashby.

**Requires the [`interviewsWrite`](authentication#permissions-interviewschedulecreate) permission.**

## Request body

- InterviewScheduleCreateRequest
  - `applicationId` string, uuid, required — The id of the application for this interview schedule
  - `interviewEvents` object[], required — The list of events that make up this interview schedule
    - `startTime` string, required — The start time of this event
    - `endTime` string, required — The end time of this event
    - `interviewers` object[], required — The interviewers for this event
      - `email` string, required — The email address of the user in Ashby
      - `feedbackRequired` boolean, nullable — Whether this interviewer is required to provide feedback
    - `extraData` object, nullable — Key-value pairs of additional metadata to store on the event. Keys must be ≤100 characters, values ≤512 characters, and the total size must be under 1kb.
    - `interviewId` string, uuid, nullable — The id of the interview used in this event. If no value is provided, the organization's default interview will be used.

## Response `200`

Responses from the interviewSchedule.create endpoint

- union
  - InterviewScheduleCreateSuccessResponse
    - `success` true, required
    - `results` InterviewSchedule, required
      - `id` string, uuid, required — The unique identifier for the interview schedule
      - `status` 'NeedsScheduling' | 'SchedulingRequested' | 'WaitingOnCandidateBooking' | 'WaitingOnCandidateAvailability' | 'CandidateAvailabilitySubmitted' | 'Scheduled' | 'WaitingOnFeedback' | 'Complete' | 'Cancelled' | 'OnHold' | 'Unknown', required — The current status of the interview schedule
      - `applicationId` string, uuid, required — The id of the application for this interview schedule
      - `interviewStageId` string, uuid, required — The id of the interview stage for this interview schedule
      - `scheduledBy` User, required
        - `id` string, uuid, required — The unique identifier for the user
        - `firstName` string, required — The user's first name
        - `lastName` string, required — The user's last name
        - `email` string, email, nullable, required — The user's email address
        - `globalRole` 'Organization Admin' | 'Elevated Access' | 'Limited Access' | 'External Recruiter', required — The user's global role in the organization
        - `isEnabled` boolean, required — Whether the user is enabled (not deactivated)
        - `updatedAt` string, required — The timestamp when the user was last updated (ISO 8601 format)
        - `managerId` string, uuid — The unique identifier for the user's manager
        - `customFields` CustomField[] — Custom fields associated with the user (only included when requested)
          - `id` string, uuid, required — The unique identifier for the custom field definition
          - `isPrivate` boolean, required — Whether the custom field is private
          - `title` string, required — The title of the custom field
          - `value` union, required — The value of the custom field
            - boolean
            - number
            - string
            - string[]
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
          - `valueLabel` union — The label of the custom field value. This is only present for value select custom fields.
            - string
            - string[]
      - `createdAt` string, date-time, required — The timestamp when the interview schedule was created
      - `updatedAt` string, date-time, required — The timestamp when the interview schedule was last updated
      - `interviewEvents` InterviewEvent[], required — The interview events that make up this interview schedule
        - `id` string, uuid, required — The unique identifier for the interview event
        - `interviewId` string, uuid, required — The id of the interview for this event
        - `interviewScheduleId` string, uuid, required — The id of the interview schedule for this event
        - `interviewerUserIds` string[], nullable — The ids of the users interviewing in this event
        - `interviewers` InterviewerWithPoolUser[], required — The users interviewing in this event
          - `id` string, uuid, required — The unique identifier for the user
          - `firstName` string, required — The user's first name
          - `lastName` string, required — The user's last name
          - `email` string, email, nullable, required — The user's email address
          - `globalRole` 'Organization Admin' | 'Elevated Access' | 'Limited Access' | 'External Recruiter', required — The user's global role in the organization
          - `isEnabled` boolean, required — Whether the user is enabled (not deactivated)
          - `updatedAt` string, required — The timestamp when the user was last updated (ISO 8601 format)
          - `managerId` string, uuid — The unique identifier for the user's manager
          - `customFields` CustomField[] — Custom fields associated with the user (only included when requested)
            - `id` string, uuid, required — The unique identifier for the custom field definition
            - `isPrivate` boolean, required — Whether the custom field is private
            - `title` string, required — The title of the custom field
            - `value` union, required — The value of the custom field
              - …
            - `valueLabel` union — The label of the custom field value. This is only present for value select custom fields.
              - …
          - `trainingRole` string, nullable — The interviewer's training role for this interview, if any
          - `interviewerPool` InterviewerPoolBrief
            - `id` string, uuid, required — The unique identifier for the interviewer pool
            - `title` string, required — The title of the interviewer pool
            - `isArchived` boolean, required — Whether the interviewer pool is archived
          - `isFeedbackRequired` boolean, required — Whether feedback is required from this interviewer
        - `createdAt` string, date-time, required — The timestamp when the interview event was created
        - `updatedAt` string, date-time, required — The timestamp when the interview event was last updated
        - `startTime` string, date-time, required — The scheduled start time of the interview event
        - `endTime` string, date-time, required — The scheduled end time of the interview event
        - `feedbackLink` string, uri, required — The link interviewers can use to submit feedback
        - `location` string, nullable — The location for the interview event, if any
        - `meetingLink` string, nullable — The meeting link for the interview event, if any
        - `interviewerCalendarEventId` string, nullable — The external calendar event id for the interviewer's calendar event
        - `hasSubmittedFeedback` boolean, required — Whether feedback has been submitted for this interview event
        - `extraData` object, nullable — Additional metadata associated with the interview event
        - `interview` Interview
          - `id` string, uuid, required — The unique identifier for the interview
          - `title` string, required — The internal title of the interview
          - `externalTitle` string, required — The title of the interview shown to candidates
          - `type` 'Assessment' | 'Interview' | 'InterviewWithoutSchedule' | 'TakeHome' | 'Debrief', required — The interview definition type, such as Interview, TakeHome, or Debrief
          - `isArchived` boolean, required — Whether the interview is archived
          - `isDebrief` boolean, required — Whether the interview is a debrief
          - `isFeedbackRequired` boolean, required — Whether feedback is required for this interview
          - `isFeedbackRequested` boolean, required — Whether feedback is requested for this interview
          - `instructionsHtml` string, nullable — The interview instructions rendered as HTML
          - `instructionsPlain` string, nullable — The interview instructions rendered as plain text
          - `jobId` string, uuid, nullable — The unique identifier for the job associated with this interview, if any
          - `feedbackFormDefinitionId` string, uuid, required — The unique identifier for the feedback form definition used by this interview
        - `notetakerTranscriptId` string, uuid, nullable — The id of the notetaker transcript for this event, if any
  - ErrorResponse
    - `success` false, required
    - `errors` ErrorDetail[], required
      - `message` string, required
      - `parameter` string

---

[API](https://skmtc.net/ashbyhq/apis/ashby-api.md) · [All operations](https://skmtc.net/ashbyhq/apis/ashby-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ashbyhq/ashby-api/versions/778b919dc743/schema)
