curl --request POST \
--url https://api.lemlist.com/api/schedules \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Default schedule",
"timezone": "Europe/Paris",
"start": "09:00",
"end": "18:00",
"weekdays": [
1,
2,
3,
4,
5
]
}
'import requests
url = "https://api.lemlist.com/api/schedules"
payload = {
"name": "Default schedule",
"timezone": "Europe/Paris",
"start": "09:00",
"end": "18:00",
"weekdays": [1, 2, 3, 4, 5]
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Default schedule',
timezone: 'Europe/Paris',
start: '09:00',
end: '18:00',
weekdays: [1, 2, 3, 4, 5]
})
};
fetch('https://api.lemlist.com/api/schedules', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));require 'uri'
require 'net/http'
url = URI("https://api.lemlist.com/api/schedules")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Default schedule\",\n \"timezone\": \"Europe/Paris\",\n \"start\": \"09:00\",\n \"end\": \"18:00\",\n \"weekdays\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ]\n}"
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.lemlist.com/api/schedules",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Default schedule',
'timezone' => 'Europe/Paris',
'start' => '09:00',
'end' => '18:00',
'weekdays' => [
1,
2,
3,
4,
5
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"_id": "skd_VK2e2ON1xErgrc8NC",
"name": "Default schedule",
"secondsToWait": 120,
"timezone": "Europe/Paris",
"start": "09:00",
"end": "18:00",
"weekdays": [
1,
2,
3,
4,
5
],
"public": false,
"teamId": "tea_oQGvp4rfqA5RWLkqW",
"createdBy": "usr_AUGImxyH3VKF6eYEf",
"createdAt": "2025-01-17T15:17:59.207Z"
}{
"error": "BadRequest",
"message": "Bad team or invalid schedule fields"
}{
"error": "The authentication you supplied is incorrect"
}Create Schedule
Creates a new schedule with customizable timing and timezone settings.
curl --request POST \
--url https://api.lemlist.com/api/schedules \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Default schedule",
"timezone": "Europe/Paris",
"start": "09:00",
"end": "18:00",
"weekdays": [
1,
2,
3,
4,
5
]
}
'import requests
url = "https://api.lemlist.com/api/schedules"
payload = {
"name": "Default schedule",
"timezone": "Europe/Paris",
"start": "09:00",
"end": "18:00",
"weekdays": [1, 2, 3, 4, 5]
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Default schedule',
timezone: 'Europe/Paris',
start: '09:00',
end: '18:00',
weekdays: [1, 2, 3, 4, 5]
})
};
fetch('https://api.lemlist.com/api/schedules', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));require 'uri'
require 'net/http'
url = URI("https://api.lemlist.com/api/schedules")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Default schedule\",\n \"timezone\": \"Europe/Paris\",\n \"start\": \"09:00\",\n \"end\": \"18:00\",\n \"weekdays\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ]\n}"
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.lemlist.com/api/schedules",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Default schedule',
'timezone' => 'Europe/Paris',
'start' => '09:00',
'end' => '18:00',
'weekdays' => [
1,
2,
3,
4,
5
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"_id": "skd_VK2e2ON1xErgrc8NC",
"name": "Default schedule",
"secondsToWait": 120,
"timezone": "Europe/Paris",
"start": "09:00",
"end": "18:00",
"weekdays": [
1,
2,
3,
4,
5
],
"public": false,
"teamId": "tea_oQGvp4rfqA5RWLkqW",
"createdBy": "usr_AUGImxyH3VKF6eYEf",
"createdAt": "2025-01-17T15:17:59.207Z"
}{
"error": "BadRequest",
"message": "Bad team or invalid schedule fields"
}{
"error": "The authentication you supplied is incorrect"
}Authorizations
Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.
Body
The name of the schedule
Timezone for the schedule (e.g., 'Europe/Paris')
Start time in HH:mm format
^([01]\d|2[0-3]):[0-5]\d$End time in HH:mm format
^([01]\d|2[0-3]):[0-5]\d$Days of the week the schedule is active (1=Monday, 7=Sunday)
1 <= x <= 7Delay in seconds between operations
Set to true to make the schedule visible to use as a template
Response
Schedule successfully created
Sending time windows defining when campaigns can send messages (days and hours).
Unique schedule identifier
Schedule name
Seconds between sends
Schedule timezone (e.g., 'Europe/Paris')
Daily start time (HH:mm)
^([01]\d|2[0-3]):[0-5]\d$Daily end time (HH:mm)
^([01]\d|2[0-3]):[0-5]\d$Active weekdays (1=Monday, 7=Sunday)
1 <= x <= 7Whether the schedule is available as a template for other users
Unique identifier of the team that owns this schedule
Unique identifier of the user who created this schedule
Timestamp when the schedule was created
Timestamp when the schedule was deleted (only present if deleted)
Unique identifier of the user who deleted this schedule (only present if deleted)
Was this page helpful?