Skip to main content
TroopyDocs
Open Troopy
Troopy

API reference / Apps

List calendar events

The events of the Google Calendar that the workspace connected, the soonest first: from now (or from), until 2 days later (or to), 50 at most. A private event shows only as busy time: its title, people and notes stay out. connected is false until an owner or admin connects Google Calendar in Settings > Apps. Read only.

get/api/v1/apps/googlecalendar/events

Authorization

HeaderAuthorization: Bearer <API key>
Or the headerX-API-Key: <API key>
API keyMake one in Troopy under Settings > API keys. It acts as you, in its workspace.
Scopesapps:read

Other ways to call it

CLItroopy calendar events
MCP tooltroopy_calendar_events
Rate limit60 calls in 60 seconds, for each key

Query parameters

fromstring

From this time. Left out: now

date-time

tostring

Until this time, at most 31 days after from. Left out: 2 days after from

date-time

Response

200 · application/json
data*object
4 properties
connected*boolean
account*string | null

The calendar that Troopy reads

events*array<object>
10 properties
id*string
title*string

Busy, for a private event

start*string

An ISO date and time, or a date like 2026-10-12 for an event of whole days

end*string
allDay*boolean
location*string | null
organizer*string | null
attendees*array<object>
3 properties
email*string
name*string | null
response*string | null

accepted, declined, tentative or needsAction

notes*string | null

The first 1,000 characters of its notes

private*boolean

A private event shows only as busy time: its title, people and notes stay out

more*boolean

The window holds more events than these 50: ask for a shorter window

Errors

400 invalid_inputFix the field named in detail. Each operation's schema is in /api/v1/openapi.json.
401 unauthorizedSend an API key as `Authorization: Bearer tr_live_...`. Create one in Troopy under Settings.
403 forbiddenThe key lacks a scope this operation needs, or its owner lacks the role. detail says which; create a key with the scope, or ask an organization owner or admin.
429 rate_limitedWait the number of seconds in Retry-After, then retry.