Schedule interview
Schedule an interview for an application with interviewers, time, video link and invite settings.
POST https://cotlet.dev/api/v1/ashby/applications/{application_id}/interview/schedule
Creates an interview the way Manual Schedule does: interview type, start time, length and interviewers, with a Google Meet, Zoom or Microsoft Teams link or custom location text. The candidate and interviewers get calendar invites only if you set notify_candidate and notify_interviewers; the confirmation email is off unless you turn it on. Needs Elevated Access as Hiring Manager or Admin, or Organization Admin. By default you confirm each call; you can switch that off for this tool.
Parameters
| Name | Type | Description |
|---|---|---|
| application_id string required | string | Application ID from list_applications or get_candidate. |
| interview string required | string | Interview type name from the job's interview plan, for example Technical screen. |
| start string required | string | ISO 8601 start time with offset. |
| duration_minutes integer required | integer | Length of the interview. |
| interviewers array required | array | Interviewer emails, one slot each. |
| location_type string | string | 'google_meet', 'zoom', 'microsoft_teams' or 'custom'. Default: custom. |
| location string | string | Location text, only with location_type 'custom'. |
| notify_candidate boolean | boolean | Send the calendar invite to the candidate. Default: false. |
| notify_interviewers boolean | boolean | Send the calendar invite to interviewers. Default: false. |
| confirmation_email boolean | boolean | Send the Candidate Confirmation Email. Default: false. |
Request
curl -X POST https://cotlet.dev/api/v1/ashby/applications/2b9f6e04-1c7d-4a35-b8e2-5d0a93c47f16/interview/schedule \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"interview":"Technical screen","start":"2026-10-22T14:00:00+02:00","duration_minutes":45,"interviewers":["priya.nair@example.com"],"location_type":"google_meet","notify_candidate":true,"notify_interviewers":true,"confirmation_email":false}' result = client.call("ashby", "schedule_interview", {"application_id":"2b9f6e04-1c7d-4a35-b8e2-5d0a93c47f16","interview":"Technical screen","start":"2026-10-22T14:00:00+02:00","duration_minutes":45,"interviewers":["priya.nair@example.com"],"location_type":"google_meet","notify_candidate":True,"notify_interviewers":True,"confirmation_email":False}) const result = await cotlet.call('ashby', 'schedule_interview', {"application_id":"2b9f6e04-1c7d-4a35-b8e2-5d0a93c47f16","interview":"Technical screen","start":"2026-10-22T14:00:00+02:00","duration_minutes":45,"interviewers":["priya.nair@example.com"],"location_type":"google_meet","notify_candidate":true,"notify_interviewers":true,"confirmation_email":false}); cotlet call ashby schedule_interview --data '{"application_id":"2b9f6e04-1c7d-4a35-b8e2-5d0a93c47f16","interview":"Technical screen","start":"2026-10-22T14:00:00+02:00","duration_minutes":45,"interviewers":["priya.nair@example.com"],"location_type":"google_meet","notify_candidate":true,"notify_interviewers":true,"confirmation_email":false}' Example response
{
"interview_id": "f4a1c096-3d78-4e25-8b9c-0a6e57d2b813",
"interview": "Technical screen",
"start": "2026-10-22T14:00:00+02:00",
"duration_minutes": 45,
"interviewers": [
"priya.nair@example.com"
],
"location": "Google Meet",
"candidate_invited": true,
"confirmation_email_sent": false
}