Skip to content

Get Calendar items by date

GET
/api/v1/calendar/range
curl --request GET \
--url 'https://example.com/api/v1/calendar/range?from=example&to=example' \
--header 'Authorization: Bearer <token>'

Requires a signed-in User. It returns Calendar items grouped by local date. It includes Log entries, Events, Notes, Files and Photos. It uses the requested time zone or the User’s saved time zone. It returns 400 for an invalid date range or time zone. Route: /api/v1/calendar/range. Inputs: from, to, tz. Safe reads can use bounded retries.

from
required
string

First local date, inclusive.

to
required
string

Last local date, inclusive.

tz
string

IANA time-zone name used to group file mtimes and Events. When omitted: the X-Calternal-Timezone header, else the user’s timezone setting, else UTC.

Calendar items grouped by local day

Media typeapplication/json
object
days
required
Array<object>
object
activity_count
required
integer format: int64
bookmark_count
required
integer format: int64
bookmarks
required
Array<object>
object
description

Page description for a bookmark or clip.

string | null
favicon

Favicon address supplied at capture time.

string | null
id
required
string
path
required
string
site

Page host for a bookmark or clip.

string | null
time
required

Note modification time, or bookmark save time, in the requested zone.

string
title
required
string
url

Original page address for a bookmark or clip.

string | null
cover_photo
One of:

The most recently modified photo, chosen as a stable day cover.

object
item_id
string | null
media_type
required
string
modified_at
required
string
name
required
string
owner_id
required
string
path
required
string
thumbnail_hash

Source BLAKE3 hash. The Files thumb route uses it to find the derived image.

string | null
date
required
string
event_count
required
integer format: int64
events
required
Array<object>

CalDAV and URL subscriptions project typed Events into Calendar views. date is already projected into the requested calendar time zone.

object
all_day
required

Whether this Event occupies the all-day lane.

boolean
color

User-selected layer colour for a URL subscription.

string | null
date
required

Local calendar day in the requested time zone.

string
end

RFC 3339 end time, or None for an all-day Event.

string | null
id
required

Provider-owned stable Event identity.

string
instance_end
string | null
instance_start

Full occurrence boundaries; all-day values use exclusive YYYY-MM-DD dates.

string | null
location

Place supplied by the Event provider.

string | null
provider
required

Provider display name.

string
read_only
required

True when the source is an external URL and cannot be edited in place.

boolean
recurring
required

Whether this source Event has recurrence rules or date overrides (#536).

boolean
source_id

Stable source layer ID for a read-only URL subscription.

string | null
start

RFC 3339 start time, or None for an all-day Event.

string | null
tags
required

Provider categories in their iCalendar order.

Array<string>
timezone
required

Time zone stored by the Event provider.

string
title
required

Event title.

string
file_count
required
integer format: int64
files
required
Array<object>
object
count
required
integer format: int64
hour
required
string
items
required
Array<object>
object
item_id
string | null
media_type
required
string
modified_at
required
string
name
required
string
owner_id
required
string
path
required
string
thumbnail_hash

Source hash for a supported Files thumbnail. Missing while a file type has no renderer or its Index entry has no content hash.

string | null
thumbnail_kind

Non-media renderer family; None keeps the historical media URL.

string | null
utc_offset
required
string
log_count
required
integer format: int64
logs
required
Array<object>
object
attachments
required
Array<object>
object
display_name

User-facing attachment label, such as a photo’s place or capture time.

string | null
embed
required
boolean
full_name

Full indexed file name shown by the shared tooltip.

string | null
item_id

Files item ID of the target, for /f/<item-id> links. None when the target is not indexed or the viewer cannot see it.

string | null
kind
required
string
media_type

Indexed media type of the target file.

string | null
missing
required

True when the target is a local file with no live Files, Note or Task row.

boolean
note_id

The target Note’s calternal-id, for /n/<id> links.

string | null
target
required
string
text
required
string
thumbnail_hash

Source hash for a supported Files thumbnail.

string | null
thumbnail_kind

Non-media renderer family for the shared Files thumb route (#510/#547).

string | null
end
string | null
id
string | null
place
One of:

Saved place recorded on this Log entry, without its coordinates.

object
id
required
string
name
required
string
start
required
string
tags
required
Array<string>
timezone

Missing only on legacy Log lines that predate capture-zone indexing.

string | null
title
required
string
note_count
required
integer format: int64
notes
required
Array<object>
object
description

Page description for a bookmark or clip.

string | null
favicon

Favicon address supplied at capture time.

string | null
id
required
string
path
required
string
site

Page host for a bookmark or clip.

string | null
time
required

Note modification time, or bookmark save time, in the requested zone.

string
title
required
string
url

Original page address for a bookmark or clip.

string | null
photo_count
required
integer format: int64
photos
required
Array<object>
object
count
required
integer format: int64
hour
required
string
items
required
Array<object>
object
item_id
string | null
media_type
required
string
modified_at
required
string
name
required
string
owner_id
required
string
path
required
string
thumbnail_hash

Source BLAKE3 hash. The Files thumb route uses it to find the derived image.

string | null
utc_offset
required
string
from
required
string
to
required
string
tz
required
string
Examplegenerated
{
"days": [
{
"activity_count": 1,
"bookmark_count": 1,
"bookmarks": [
{
"description": "example",
"favicon": "example",
"id": "example",
"path": "example",
"site": "example",
"time": "example",
"title": "example",
"url": "example"
}
],
"cover_photo": {
"item_id": "example",
"media_type": "example",
"modified_at": "example",
"name": "example",
"owner_id": "example",
"path": "example",
"thumbnail_hash": "example"
},
"date": "example",
"event_count": 1,
"events": [
{
"all_day": true,
"color": "example",
"date": "example",
"end": "example",
"id": "example",
"instance_end": "example",
"instance_start": "example",
"location": "example",
"provider": "example",
"read_only": true,
"recurring": true,
"source_id": "example",
"start": "example",
"tags": [
"example"
],
"timezone": "example",
"title": "example"
}
],
"file_count": 1,
"files": [
{
"count": 1,
"hour": "example",
"items": [
{
"item_id": "example",
"media_type": "example",
"modified_at": "example",
"name": "example",
"owner_id": "example",
"path": "example",
"thumbnail_hash": "example",
"thumbnail_kind": "example"
}
],
"utc_offset": "example"
}
],
"log_count": 1,
"logs": [
{
"attachments": [
{
"display_name": "example",
"embed": true,
"full_name": "example",
"item_id": "example",
"kind": "example",
"media_type": "example",
"missing": true,
"note_id": "example",
"target": "example",
"text": "example",
"thumbnail_hash": "example",
"thumbnail_kind": "example"
}
],
"end": "example",
"id": "example",
"place": {
"id": "example",
"name": "example"
},
"start": "example",
"tags": [
"example"
],
"timezone": "example",
"title": "example"
}
],
"note_count": 1,
"notes": [
{
"description": "example",
"favicon": "example",
"id": "example",
"path": "example",
"site": "example",
"time": "example",
"title": "example",
"url": "example"
}
],
"photo_count": 1,
"photos": [
{
"count": 1,
"hour": "example",
"items": [
{
"item_id": "example",
"media_type": "example",
"modified_at": "example",
"name": "example",
"owner_id": "example",
"path": "example",
"thumbnail_hash": "example"
}
],
"utc_offset": "example"
}
]
}
],
"from": "example",
"to": "example",
"tz": "example"
}
Media typeapplication/json

The standard API error response: { "error": { ... } }.

object
error
required

Error details.

object
code
required

Stable machine-readable code.

string
Allowed values: bad_request unauthorized forbidden not_found conflict name_conflict_case name_too_long push_endpoint_rejected too_many_requests internal service_unavailable
details
One of:

Optional field or operation details.

object
key
additional properties
string
message
required

Safe text for logs or a user-facing error message.

string
Example
{
"error": {
"code": "bad_request"
}
}
Media typeapplication/json

The standard API error response: { "error": { ... } }.

object
error
required

Error details.

object
code
required

Stable machine-readable code.

string
Allowed values: bad_request unauthorized forbidden not_found conflict name_conflict_case name_too_long push_endpoint_rejected too_many_requests internal service_unavailable
details
One of:

Optional field or operation details.

object
key
additional properties
string
message
required

Safe text for logs or a user-facing error message.

string
Example
{
"error": {
"code": "bad_request"
}
}