curl --request GET \
--url https://api.decodahealth.com/check-in/calendar/events-for-patient/{patient_id} \
--header 'API-KEY: <api-key>' \
--header 'TENANT: <tenant>'import requests
url = "https://api.decodahealth.com/check-in/calendar/events-for-patient/{patient_id}"
headers = {
"TENANT": "<tenant>",
"API-KEY": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {TENANT: '<tenant>', 'API-KEY': '<api-key>'}};
fetch('https://api.decodahealth.com/check-in/calendar/events-for-patient/{patient_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.decodahealth.com/check-in/calendar/events-for-patient/{patient_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 => [
"API-KEY: <api-key>",
"TENANT: <tenant>"
],
]);
$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.decodahealth.com/check-in/calendar/events-for-patient/{patient_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("TENANT", "<tenant>")
req.Header.Add("API-KEY", "<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.decodahealth.com/check-in/calendar/events-for-patient/{patient_id}")
.header("TENANT", "<tenant>")
.header("API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.decodahealth.com/check-in/calendar/events-for-patient/{patient_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["TENANT"] = '<tenant>'
request["API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"id": "<string>",
"start": "2023-11-07T05:31:56Z",
"end": "2023-11-07T05:31:56Z",
"type": "APPOINTMENT",
"status": "PENDING",
"organizer": {
"id": "<string>",
"type": "PROVIDER",
"firstName": "<string>",
"lastName": "<string>",
"phoneNumber": "<string>",
"email": "<string>",
"locationId": "<string>",
"preferredName": "<string>"
},
"title": "<string>",
"isAllDay": false,
"location": {
"id": "<string>",
"isVirtual": true,
"name": "<string>",
"addressLineOne": "<string>",
"addressLineTwo": "<string>",
"city": "<string>",
"state": "<string>",
"zipCode": "<string>",
"country": "<string>",
"timezone": "<string>",
"createdDate": "2023-11-07T05:31:56Z",
"spakinectLocationId": "<string>",
"dosespotClinicId": "<string>",
"dosespotClinicKey": "<string>",
"externalId": "<string>",
"taxIdentificationNumber": "<string>"
},
"roomId": "<string>",
"attendees": [],
"recurringEventId": "<string>",
"recurringEvent": {
"id": "<string>",
"rrule": "<string>",
"startDate": "2023-11-07T05:31:56Z",
"durationMinutes": 123,
"timezone": "<string>",
"type": "APPOINTMENT",
"organizerId": "<string>",
"segments": [
{
"type": "BOOKABLE",
"serviceId": "<string>",
"bookableId": "<string>",
"bookableGroupId": "<string>",
"providerId": "<string>",
"title": "<string>",
"color": "<string>",
"durationMinutes": 123,
"bufferMinutes": 123,
"offsetMinutes": 123
}
],
"serviceIds": [
"<string>"
],
"bookableIds": [
"<string>"
],
"capacity": 123,
"description": "<string>",
"patientRequestedProvider": true,
"isBusinessBlock": true,
"title": "<string>",
"attendeeIds": [
"<string>"
],
"locationId": "<string>",
"externalId": "<string>"
},
"segments": [],
"icons": [],
"noteIds": [],
"capacity": 123,
"quickNotes": [
{
"id": "<string>",
"patientId": "<string>",
"note": "<string>",
"creator": {
"id": "<string>",
"type": "PROVIDER",
"firstName": "<string>",
"lastName": "<string>",
"phoneNumber": "<string>",
"email": "<string>",
"locationId": "<string>",
"preferredName": "<string>"
},
"createdDate": "2023-11-07T05:31:56Z",
"eventId": "<string>",
"externalId": "<string>",
"updatedDate": "2023-11-07T05:31:56Z",
"isArchived": false,
"isPinned": false
}
],
"carePlan": {
"carePlanId": "<string>",
"stepNumber": 123,
"carePlanName": "<string>",
"status": "<string>"
},
"createdDate": "2023-11-07T05:31:56Z",
"updatedDate": "2023-11-07T05:31:56Z",
"meetingLink": "<string>",
"description": "<string>",
"gcalBusy": true,
"patientRequestedProvider": false,
"isBusinessBlock": false,
"marketingAttribution": {},
"locationId": "<string>",
"formCompleted": true,
"reminders": [],
"recurrenceModificationMode": "this",
"attribution": {
"staffId": "<string>",
"sourceType": "CALL",
"sourceId": "<string>",
"attributedAt": "2023-11-07T05:31:56Z"
}
}
]{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Get Events For Patient
List a patient’s non-archived events, optionally filtered by search term and status.
curl --request GET \
--url https://api.decodahealth.com/check-in/calendar/events-for-patient/{patient_id} \
--header 'API-KEY: <api-key>' \
--header 'TENANT: <tenant>'import requests
url = "https://api.decodahealth.com/check-in/calendar/events-for-patient/{patient_id}"
headers = {
"TENANT": "<tenant>",
"API-KEY": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {TENANT: '<tenant>', 'API-KEY': '<api-key>'}};
fetch('https://api.decodahealth.com/check-in/calendar/events-for-patient/{patient_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.decodahealth.com/check-in/calendar/events-for-patient/{patient_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 => [
"API-KEY: <api-key>",
"TENANT: <tenant>"
],
]);
$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.decodahealth.com/check-in/calendar/events-for-patient/{patient_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("TENANT", "<tenant>")
req.Header.Add("API-KEY", "<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.decodahealth.com/check-in/calendar/events-for-patient/{patient_id}")
.header("TENANT", "<tenant>")
.header("API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.decodahealth.com/check-in/calendar/events-for-patient/{patient_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["TENANT"] = '<tenant>'
request["API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"id": "<string>",
"start": "2023-11-07T05:31:56Z",
"end": "2023-11-07T05:31:56Z",
"type": "APPOINTMENT",
"status": "PENDING",
"organizer": {
"id": "<string>",
"type": "PROVIDER",
"firstName": "<string>",
"lastName": "<string>",
"phoneNumber": "<string>",
"email": "<string>",
"locationId": "<string>",
"preferredName": "<string>"
},
"title": "<string>",
"isAllDay": false,
"location": {
"id": "<string>",
"isVirtual": true,
"name": "<string>",
"addressLineOne": "<string>",
"addressLineTwo": "<string>",
"city": "<string>",
"state": "<string>",
"zipCode": "<string>",
"country": "<string>",
"timezone": "<string>",
"createdDate": "2023-11-07T05:31:56Z",
"spakinectLocationId": "<string>",
"dosespotClinicId": "<string>",
"dosespotClinicKey": "<string>",
"externalId": "<string>",
"taxIdentificationNumber": "<string>"
},
"roomId": "<string>",
"attendees": [],
"recurringEventId": "<string>",
"recurringEvent": {
"id": "<string>",
"rrule": "<string>",
"startDate": "2023-11-07T05:31:56Z",
"durationMinutes": 123,
"timezone": "<string>",
"type": "APPOINTMENT",
"organizerId": "<string>",
"segments": [
{
"type": "BOOKABLE",
"serviceId": "<string>",
"bookableId": "<string>",
"bookableGroupId": "<string>",
"providerId": "<string>",
"title": "<string>",
"color": "<string>",
"durationMinutes": 123,
"bufferMinutes": 123,
"offsetMinutes": 123
}
],
"serviceIds": [
"<string>"
],
"bookableIds": [
"<string>"
],
"capacity": 123,
"description": "<string>",
"patientRequestedProvider": true,
"isBusinessBlock": true,
"title": "<string>",
"attendeeIds": [
"<string>"
],
"locationId": "<string>",
"externalId": "<string>"
},
"segments": [],
"icons": [],
"noteIds": [],
"capacity": 123,
"quickNotes": [
{
"id": "<string>",
"patientId": "<string>",
"note": "<string>",
"creator": {
"id": "<string>",
"type": "PROVIDER",
"firstName": "<string>",
"lastName": "<string>",
"phoneNumber": "<string>",
"email": "<string>",
"locationId": "<string>",
"preferredName": "<string>"
},
"createdDate": "2023-11-07T05:31:56Z",
"eventId": "<string>",
"externalId": "<string>",
"updatedDate": "2023-11-07T05:31:56Z",
"isArchived": false,
"isPinned": false
}
],
"carePlan": {
"carePlanId": "<string>",
"stepNumber": 123,
"carePlanName": "<string>",
"status": "<string>"
},
"createdDate": "2023-11-07T05:31:56Z",
"updatedDate": "2023-11-07T05:31:56Z",
"meetingLink": "<string>",
"description": "<string>",
"gcalBusy": true,
"patientRequestedProvider": false,
"isBusinessBlock": false,
"marketingAttribution": {},
"locationId": "<string>",
"formCompleted": true,
"reminders": [],
"recurrenceModificationMode": "this",
"attribution": {
"staffId": "<string>",
"sourceType": "CALL",
"sourceId": "<string>",
"attributedAt": "2023-11-07T05:31:56Z"
}
}
]{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Headers
The tenant you are making this request on behalf of
Your api key
Path Parameters
Query Parameters
PENDING, RESERVED, CONFIRMED, CANCELLED, COMPLETED, OVERRIDABLE, NO_SHOW x <= 500Optional expansions to include per event.
Optional expansions a caller can ask a calendar read endpoint for.
Off by default because each one costs a query the common request does not need. Values are the response field they populate.
marketingAttribution Response
Successful Response
APPOINTMENT, SHIFT, BLOCK, GOOGLE_CALENDAR PENDING, RESERVED, CONFIRMED, CANCELLED, COMPLETED, OVERRIDABLE, NO_SHOW Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Service segment response with full service details.
- EventServiceDetail
- EventBookableSegmentTiny
- EventPrepSegmentTiny
- EventCleanupSegmentTiny
Show child attributes
Show child attributes
BOOKING_FEE_PAID, NEW_PATIENT, SCHEDULED_BY_AI, FORM_COMPLETED, FORM_NOT_COMPLETED, CHECKED_IN, ONLINE_BOOKING, NOTE_LINKED, PROVIDER_REQUESTED Show child attributes
Show child attributes
Minimal care-plan step reference for task/event display.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Enum representing the different modes for handling recurring event modifications Used when modifying recurring events to specify which occurrences should be affected
this, future, all Last-touch outbound attribution summary for an appointment.
Show child attributes
Show child attributes

