curl --request GET \
--url https://api.timeless.day/v1/meetings \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.timeless.day/v1/meetings"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.timeless.day/v1/meetings', 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.timeless.day/v1/meetings",
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: Bearer <token>"
],
]);
$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.timeless.day/v1/meetings"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.timeless.day/v1/meetings")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.timeless.day/v1/meetings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "mtg_abc123",
"title": "Weekly standup",
"status": "completed",
"source": "google_meet",
"start_time": "2025-01-15T10:00:00Z",
"end_time": "2025-01-15T10:30:00Z",
"duration": 1800,
"share_url": "https://my.timeless.day/m/N0tkM21RcFgydkxuUjhzWWZUNGJaYTlXbTV0SGNKNnlRbkIzeFZwTDdkR2s=",
"host": {
"id": "usr_def456",
"name": "Alice Johnson",
"email": "alice@example.com"
},
"participants": [
{
"name": "Bob Smith",
"email": "bob@example.com",
"title": "Engineer",
"company": "Acme Corp"
}
],
"created_at": "2025-01-15T10:00:00Z"
}
],
"next_cursor": "eyJjcmVhdGVkX2F0Ijo...",
"has_more": true
}{
"error": {
"code": "unauthorized",
"message": "Authentication required"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}List meetings
Returns a paginated list of meetings accessible to the authenticated user. Supports filtering by status, date range, participants, company, room, and more.
curl --request GET \
--url https://api.timeless.day/v1/meetings \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.timeless.day/v1/meetings"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.timeless.day/v1/meetings', 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.timeless.day/v1/meetings",
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: Bearer <token>"
],
]);
$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.timeless.day/v1/meetings"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.timeless.day/v1/meetings")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.timeless.day/v1/meetings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "mtg_abc123",
"title": "Weekly standup",
"status": "completed",
"source": "google_meet",
"start_time": "2025-01-15T10:00:00Z",
"end_time": "2025-01-15T10:30:00Z",
"duration": 1800,
"share_url": "https://my.timeless.day/m/N0tkM21RcFgydkxuUjhzWWZUNGJaYTlXbTV0SGNKNnlRbkIzeFZwTDdkR2s=",
"host": {
"id": "usr_def456",
"name": "Alice Johnson",
"email": "alice@example.com"
},
"participants": [
{
"name": "Bob Smith",
"email": "bob@example.com",
"title": "Engineer",
"company": "Acme Corp"
}
],
"created_at": "2025-01-15T10:00:00Z"
}
],
"next_cursor": "eyJjcmVhdGVkX2F0Ijo...",
"has_more": true
}{
"error": {
"code": "unauthorized",
"message": "Authentication required"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
API token from your Timeless dashboard.
Query Parameters
Filter by one or more meeting IDs. Pass multiple values to fetch specific meetings: ?id=mtg_abc&id=mtg_def
Filter by ownership scope.
all— all accessible meetingsowned— meetings you hostedshared— meetings shared with you
owned, shared, all Filter by meeting status: completed, processing, scheduled, or failed.
completed, processing, scheduled, failed Filter meetings starting on or after this date. Format: YYYY-MM-DD.
Filter meetings starting on or before this date. Format: YYYY-MM-DD.
Search by meeting title (substring match).
Semantic search query. Finds meetings whose content is relevant to the query, not just title matches.
Filter by participant name or email.
Filter by company name or domain.
Filter by room ID (e.g., room_abc123).
Expand related resources inline. Supported values: documents, shared_with.
documents, shared_with Pagination cursor from a previous response's next_cursor.
Number of results per page (1–100).
1 <= x <= 100