Get a connected calendar
curl --request GET \
--url https://api.withallo.com/v2/api/calendars/{id} \
--header 'Authorization: <api-key>'import requests
url = "https://api.withallo.com/v2/api/calendars/{id}"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.withallo.com/v2/api/calendars/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.withallo.com/v2/api/calendars/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.withallo.com/v2/api/calendars/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.withallo.com/v2/api/calendars/{id}")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.withallo.com/v2/api/calendars/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"id": "exc-abc123",
"name": "Acme bookings",
"provider": "GOOGLE_CALENDAR",
"status": "ACTIVE",
"is_team_default": true,
"owner": {
"user_id": "<string>",
"user_name": "<string>",
"email": "<string>",
"is_current_user": true
},
"available_event_types": [
{
"id": "42",
"slug": "intro-call",
"title": "Intro call",
"length_in_minutes": 30,
"provider_description": "<string>",
"required_questions": [
{
"id": "notes",
"label": "Anything we should know before the visit?"
}
]
}
]
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"retryable": true,
"request_id": "<string>",
"retry_after_seconds": 123
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"retryable": true,
"request_id": "<string>",
"retry_after_seconds": 123
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"retryable": true,
"request_id": "<string>",
"retry_after_seconds": 123
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"retryable": true,
"request_id": "<string>",
"retry_after_seconds": 123
}
}Réceptionniste IA
Lire un agenda
Returns one connected calendar with the event types its provider currently offers, read live from the provider. This is the catalog you pick from when filling scheduling.calendars.
GET
/
v2
/
api
/
calendars
/
{id}
Get a connected calendar
curl --request GET \
--url https://api.withallo.com/v2/api/calendars/{id} \
--header 'Authorization: <api-key>'import requests
url = "https://api.withallo.com/v2/api/calendars/{id}"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.withallo.com/v2/api/calendars/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.withallo.com/v2/api/calendars/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.withallo.com/v2/api/calendars/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.withallo.com/v2/api/calendars/{id}")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.withallo.com/v2/api/calendars/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"id": "exc-abc123",
"name": "Acme bookings",
"provider": "GOOGLE_CALENDAR",
"status": "ACTIVE",
"is_team_default": true,
"owner": {
"user_id": "<string>",
"user_name": "<string>",
"email": "<string>",
"is_current_user": true
},
"available_event_types": [
{
"id": "42",
"slug": "intro-call",
"title": "Intro call",
"length_in_minutes": 30,
"provider_description": "<string>",
"required_questions": [
{
"id": "notes",
"label": "Anything we should know before the visit?"
}
]
}
]
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"retryable": true,
"request_id": "<string>",
"retry_after_seconds": 123
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"retryable": true,
"request_id": "<string>",
"retry_after_seconds": 123
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"retryable": true,
"request_id": "<string>",
"retry_after_seconds": 123
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"retryable": true,
"request_id": "<string>",
"retry_after_seconds": 123
}
}Scope requis :
AGENTS_READComportement
Renvoie un agenda connecté avecavailable_event_types, les types d’événement que son fournisseur propose actuellement. C’est le catalogue dans lequel vous choisissez pour remplir scheduling.calendars sur Modifier la configuration.
Le catalogue est lu en direct chez le fournisseur à chaque appel : il reflète donc toujours ce qui est proposé aujourd’hui.
Lire available_event_types
available_event_types est absent pour un fournisseur qui n’a pas de notion de type d’événement. C’est une réponse différente d’une liste vide, qui signifie que le fournisseur n’en propose aucun.
Deux champs méritent d’être distingués :
provider_descriptionest le texte rédigé chez le fournisseur d’agenda. C’est du contexte, pas de l’aiguillage.description, que vous renvoyez dansscheduling.calendars, est votre propre note sur le moment où le réceptionniste doit réserver ce type d’événement plutôt qu’un autre. C’est ce texte qu’il compare au motif de l’appelant.
required_questions sont des réponses sans lesquelles le fournisseur refuse une réservation : le réceptionniste les recueille pendant l’appel. Elles sont en lecture seule et figées au moment où vous sélectionnez le type d’événement.
Erreurs
404 AGENT_CALENDAR_NOT_FOUND: aucun agenda avec cet id n’est visible pour vous.500 AGENT_CALENDAR_EVENT_TYPES_FETCH_FAILED: le fournisseur n’a pas pu être joint. Cette erreur est réessayable. Si elle persiste, la connexion de l’agenda doit être renouvelée dans l’app Allo.
Autorisations
Paramètres de chemin
Calendar identifier from GET /v2/api/calendars
Exemple:
"exc-abc123"
Réponse
The calendar and its available event types
A calendar connected to your workspace, whether or not a receptionist books on it.
Show child attributes
Show child attributes
Cette page vous a-t-elle été utile ?