PATCH
/
v1
/
teams
/
{teamId}
/
scheduling-slots
/
{slotId}
TypeScript client
import { OctosparkClient } from '@octospark/sdk'

const client = new OctosparkClient({
  token: process.env.OCTOSPARK_TOKEN
})

const response = await client.schedulingSlots.updateSchedulingSlot({
  teamId: process.env.OCTOSPARK_TEAM_ID ?? "teamId",
  slotId: process.env.OCTOSPARK_SLOT_ID ?? "slotId",
  body: {},
})
import os
from octospark_sdk import OctosparkClient

client = OctosparkClient(token=os.environ["OCTOSPARK_TOKEN"])

response = client.scheduling_slots.update_scheduling_slot(
teamId=os.environ.get("OCTOSPARK_TEAM_ID", "teamId"),
slotId=os.environ.get("OCTOSPARK_SLOT_ID", "slotId"),
body={}
)
octospark scheduling-slots update-scheduling-slot \
--request '{"path":{"teamId":"teamId","slotId":"slotId"},"body":{}}'
use reqwest::Client;
use std::env;

#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let client = Client::new();
let base_url = env::var("OCTOSPARK_API_URL").unwrap_or_else(|_| "https://api.octospark.ai".to_string());
let team_id = env::var("OCTOSPARK_TEAM_ID").unwrap_or_else(|_| "teamId".to_string());
let slot_id = env::var("OCTOSPARK_SLOT_ID").unwrap_or_else(|_| "slotId".to_string());
let url = format!("{}/v1/teams/{}/scheduling-slots/{}", base_url.trim_end_matches('/'), team_id, slot_id);
let token = env::var("OCTOSPARK_TOKEN").expect("OCTOSPARK_TOKEN");
let mut request = client.patch(url).bearer_auth(token);
request = request.json(&serde_json::json!({}));
let response = request.send().await?;
println!("{}", response.text().await?);
Ok(())
}
import 'dart:convert';
import 'dart:io';
import 'package:http/http.dart' as http;

Future<void> main() async {
final baseUrl = Platform.environment['OCTOSPARK_API_URL'] ?? 'https://api.octospark.ai';
final token = Platform.environment['OCTOSPARK_TOKEN'];
final teamId = Platform.environment['OCTOSPARK_TEAM_ID'] ?? 'teamId';
final slotId = Platform.environment['OCTOSPARK_SLOT_ID'] ?? 'slotId';
final url = '${baseUrl.replaceFirst(RegExp(r'/$'), '')}/v1/teams/$teamId/scheduling-slots/$slotId';
final uri = Uri.parse(url);
final headers = {
'Authorization': 'Bearer $token',
'Content-Type': 'application/json',
};
final response = await http.patch(
uri,
headers: headers,
body: jsonEncode({}),
);
print(response.body);
}
curl --request PATCH \
--url https://api.octospark.ai/v1/teams/{teamId}/scheduling-slots/{slotId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"hour": 11,
"minute": 29,
"label": "<string>",
"daysOfWeek": [
3
]
}
'
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.octospark.ai/v1/teams/{teamId}/scheduling-slots/{slotId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'hour' => 11,
'minute' => 29,
'label' => '<string>',
'daysOfWeek' => [
3
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.octospark.ai/v1/teams/{teamId}/scheduling-slots/{slotId}"

payload := strings.NewReader("{\n \"hour\": 11,\n \"minute\": 29,\n \"label\": \"<string>\",\n \"daysOfWeek\": [\n 3\n ]\n}")

req, _ := http.NewRequest("PATCH", url, payload)

req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.patch("https://api.octospark.ai/v1/teams/{teamId}/scheduling-slots/{slotId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"hour\": 11,\n \"minute\": 29,\n \"label\": \"<string>\",\n \"daysOfWeek\": [\n 3\n ]\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.octospark.ai/v1/teams/{teamId}/scheduling-slots/{slotId}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"hour\": 11,\n \"minute\": 29,\n \"label\": \"<string>\",\n \"daysOfWeek\": [\n 3\n ]\n}"

response = http.request(request)
puts response.read_body
$headers=@{}
$headers.Add("Authorization", "Bearer <token>")
$headers.Add("Content-Type", "application/json")
$response = Invoke-WebRequest -Uri 'https://api.octospark.ai/v1/teams/{teamId}/scheduling-slots/{slotId}' -Method PATCH -Headers $headers -ContentType 'application/json' -Body '{
"hour": 11,
"minute": 29,
"label": "<string>",
"daysOfWeek": [
3
]
}'
import Foundation

let parameters = [
"hour": 11,
"minute": 29,
"label": "<string>",
"daysOfWeek": [3]
] as [String : Any?]

let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])

let url = URL(string: "https://api.octospark.ai/v1/teams/{teamId}/scheduling-slots/{slotId}")!
var request = URLRequest(url: url)
request.httpMethod = "PATCH"
request.timeoutInterval = 10
request.allHTTPHeaderFields = [
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
]
request.httpBody = postData

let (data, _) = try await URLSession.shared.data(for: request)
print(String(decoding: data, as: UTF8.self))
using RestSharp;


var options = new RestClientOptions("https://api.octospark.ai/v1/teams/{teamId}/scheduling-slots/{slotId}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"hour\": 11,\n \"minute\": 29,\n \"label\": \"<string>\",\n \"daysOfWeek\": [\n 3\n ]\n}", false);
var response = await client.PatchAsync(request);

Console.WriteLine("{0}", response.Content);
using RestSharp;


var options = new RestClientOptions("https://api.octospark.ai/v1/teams/{teamId}/scheduling-slots/{slotId}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"hour\": 11,\n \"minute\": 29,\n \"label\": \"<string>\",\n \"daysOfWeek\": [\n 3\n ]\n}", false);
var response = await client.PatchAsync(request);

Console.WriteLine("{0}", response.Content);
CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://api.octospark.ai/v1/teams/{teamId}/scheduling-slots/{slotId}");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer <token>");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{\n \"hour\": 11,\n \"minute\": 29,\n \"label\": \"<string>\",\n \"daysOfWeek\": [\n 3\n ]\n}");

CURLcode ret = curl_easy_perform(hnd);
CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://api.octospark.ai/v1/teams/{teamId}/scheduling-slots/{slotId}");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer <token>");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{\n \"hour\": 11,\n \"minute\": 29,\n \"label\": \"<string>\",\n \"daysOfWeek\": [\n 3\n ]\n}");

CURLcode ret = curl_easy_perform(hnd);
val client = OkHttpClient()

val mediaType = MediaType.parse("application/json")
val body = RequestBody.create(mediaType, "{\n \"hour\": 11,\n \"minute\": 29,\n \"label\": \"<string>\",\n \"daysOfWeek\": [\n 3\n ]\n}")
val request = Request.Builder()
.url("https://api.octospark.ai/v1/teams/{teamId}/scheduling-slots/{slotId}")
.patch(body)
.addHeader("Authorization", "Bearer <token>")
.addHeader("Content-Type", "application/json")
.build()

val response = client.newCall(request).execute()
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "teamId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "hour": 11,
  "minute": 29,
  "label": "<string>",
  "daysOfWeek": [
    3
  ],
  "createdAt": "<string>",
  "updatedAt": "<string>"
}
{
"issues": [
{
"path": [
"<string>"
],
"message": "<string>"
}
],
"message": "<string>",
"_tag": "HttpApiDecodeError"
}
{
"message": "<string>",
"_tag": "Unauthorized"
}
{
"message": "<string>",
"_tag": "PaymentRequired"
}
{
"message": "<string>",
"_tag": "Forbidden"
}
{
"message": "<string>",
"_tag": "NotFound"
}
{
"message": "<string>",
"_tag": "Conflict"
}
{
"message": "<string>",
"_tag": "TooManyRequests"
}
{
"message": "<string>",
"_tag": "InternalError"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

teamId
string
required

Team (workspace) id (UUID). Discover ids via the list teams endpoint or the agent context.

slotId
string
required

Scheduling slot id (UUID) from the team scheduling-slot grid, as returned by the list/create scheduling-slots endpoints.

Body

application/json
hour
integer

a number between 0 and 23

Required range: 0 <= x <= 23
minute
integer

a number between 0 and 59

Required range: 0 <= x <= 59
label
string | null

Optional human-friendly name for this slot (for example "Morning" or "Lunch"), shown in the composer and calendar. Omit it or send null to leave the slot unlabelled.

daysOfWeek
integer[]

Days of the week this slot fires on, as integers where 0 is Sunday through 6 is Saturday. Omit to default to all seven days.

Minimum array length: 1

a number between 0 and 6

Required range: 0 <= x <= 6

Response

Success

id
string<uuid>
required

a Universally Unique Identifier

Pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
teamId
string<uuid>
required

a Universally Unique Identifier

Pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
hour
integer
required

a number between 0 and 23

Required range: 0 <= x <= 23
minute
integer
required

a number between 0 and 59

Required range: 0 <= x <= 59
label
string | null
required
daysOfWeek
integer[]
required

an array of at least 1 item(s)

Minimum array length: 1

a number between 0 and 6

Required range: 0 <= x <= 6
createdAt
string
required
updatedAt
string
required