User API
Calendars
Calendar sync and events
GET
/calendarsList calendars
Query parameters
userIdstring
Responses
200Calendars
ok reqenum
truecalendars reqany[]
pageinteger
perPageinteger
totalinteger
Request
curl 'https://app.openassistant.us/api/calendars' \
-H "Authorization: Bearer ak_live_..."Response
{
"ok": true,
"calendars": [
{
"id": "string",
"platform": "google",
"name": "string",
"createdAt": "2025-01-15T10:30:00.000Z",
"updatedAt": "2025-01-15T10:30:00.000Z",
"role": "string",
"isPrimary": true,
"userIdentifier": "string",
"ownerEmail": "string"
}
]
}GET
/calendars/{calendarId}Get a calendar
Path parameters
calendarId reqstring
Responses
200Calendar
ok reqenum
truecalendar reqobject
id reqstring
platform reqenum
googleazureapplename reqstring
timezonestring
etagstring | null
referenceIdstring
conferenceSolutionsany[]
backgroundColorstring | null
lastSyncedAtstring | null
lastSyncTokenstring | null
syncErrorstring | null
syncErrorCountnumber
syncErrorAtstring | null
connectedAtstring | null
eventCountnumber
createdAt reqstring
updatedAt reqstring
Request
curl 'https://app.openassistant.us/api/calendars/<calendarId>' \
-H "Authorization: Bearer ak_live_..."Response
{
"ok": true,
"calendar": {
"id": "string",
"platform": "google",
"name": "string",
"createdAt": "2025-01-15T10:30:00.000Z",
"updatedAt": "2025-01-15T10:30:00.000Z"
}
}GET
/calendars/{calendarId}/eventsGet calendar events
Path parameters
calendarId reqstring
Query parameters
timezonestring
startsAtstring
endsAtstring
Responses
200Events
ok reqenum
trueevents reqany[]
Request
curl 'https://app.openassistant.us/api/calendars/<calendarId>/events' \
-H "Authorization: Bearer ak_live_..."Response
{
"ok": true,
"events": [
null
]
}POST
/calendars/{calendarId}/sync-eventsSync calendar events
Path parameters
calendarId reqstring
Responses
200Synced
ok reqenum
truesyncEvents reqobject
message reqstring
Request
curl 'https://app.openassistant.us/api/calendars/<calendarId>/sync-events' \
-X POST \
-H "Authorization: Bearer ak_live_..."Response
{
"ok": true,
"syncEvents": {
"message": "string"
}
}