Overview
The /schedule endpoint creates a meeting at a specific time you’ve already selected. Use this when you’ve used /availability to find slots and want the user to pick, or when you have a predetermined time.
For AI-powered automatic scheduling, use /schedule/auto instead.
Authentication
Requires Platform API Key in the X-API-Key header.
Request
POST https://api.syncline.run/v1/schedule
Request Body
Array of exactly 2 email addresses
ISO 8601 timestamp for meeting start (e.g., “2025-01-22T14:00:00Z”)
Meeting duration in minutes
Meeting description/agenda
Defaults to “Google Meet” for video conference
Example Request
{
"attendees" : [ "alice@example.com" , "bob@example.com" ],
"start_time" : "2025-01-22T14:00:00Z" ,
"duration_minutes" : 30 ,
"title" : "Product Demo" ,
"description" : "Walkthrough of new features" ,
"location" : "Google Meet"
}
Response
Success Response (200 OK)
{
"success" : true ,
"meeting_id" : "evt_7d8f9e3a2b1c" ,
"start_time" : "2025-01-22T14:00:00Z" ,
"end_time" : "2025-01-22T14:30:00Z" ,
"title" : "Product Demo" ,
"attendees" : [ "alice@example.com" , "bob@example.com" ],
"location" : "Google Meet" ,
"meet_link" : "https://meet.google.com/abc-defg-hij"
}
Error Responses
Same error responses as /schedule/auto.
Usage Limits
Each successful schedule counts toward your monthly meeting limit based on plan:
Developer : 25 meetings/month
Starter : 250 meetings/month
Pro : 1,000 meetings/month
Scale : 5,000 meetings/month
Enterprise : Unlimited
Example
// First, find availability
const availResponse = await fetch ( 'https://api.syncline.run/v1/availability' , {
method: 'POST' ,
headers: {
'X-API-Key' : 'sk_live_...' ,
'Content-Type' : 'application/json'
},
body: JSON . stringify ({
attendees: [ 'alice@example.com' , 'bob@example.com' ],
duration_minutes: 30
})
});
const { slots } = await availResponse . json ();
// User picks slot[2]
const chosenSlot = slots [ 2 ];
// Schedule at that time
const scheduleResponse = await fetch ( 'https://api.syncline.run/v1/schedule' , {
method: 'POST' ,
headers: {
'X-API-Key' : 'sk_live_...' ,
'Content-Type' : 'application/json'
},
body: JSON . stringify ({
attendees: [ 'alice@example.com' , 'bob@example.com' ],
start_time: chosenSlot . start_time ,
duration_minutes: 30 ,
title: 'Product Demo'
})
});
const meeting = await scheduleResponse . json ();
Find Availability Find mutual availability first
Auto Schedule Let AI pick the time