One event in full
calendar.event.get
GET/api/v1/households/{household_id}/queries/calendar.event.get
- Query
- Rigel runs it
The event with everything about it: times in the household's zone, how it repeats in words and as a rule, its changed and cancelled occurrences, extra dates, people, reminders, attachments, calendar and the app that owns it. Error: event_not_found.
Parameters#
| Field | Description |
|---|---|
household_idpathstringrequired | The household's ID. |
event_idquerystringrequired | A calendar event ID, such as evt_01JC0000000000000000000000. |
Response#
200 The answer.
| Field | Description |
|---|---|
event_idstringrequired | A calendar event ID, such as evt_01JC0000000000000000000000. |
titlestringrequired | No description. |
descriptionstring or nullrequired | No description. |
locationstring or nullrequired | No description. |
kindone of: event, appointment, activity, chore, meal, trip, birthday, holiday, reminder, busyrequired | No description. |
statusone of: confirmed, tentativerequired | No description. |
is_all_daybooleanrequired | No description. |
starts_atstring or nullrequired | ISO 8601 with the household's offset; null for all-day. |
ends_atstring or nullrequired | No description. |
start_datestring or nullrequired | No description. |
end_datestring or nullrequired | The last day, inclusive. |
time_zonestringrequired | The zone the event repeats in. |
whenstringrequired | The first occurrence in words. |
recurrencestring or nullrequired | The repeat rule (RFC 5545), or null for a single event. |
repeatsstring or nullrequired | The repeat rule in words, such as "every Saturday until Mar 28". |
exceptionsarray of objectsrequired | |
exceptions[].occurrence_startstringrequired | No description. |
exceptions[].cancelledbooleanrequired | No description. |
exceptions[].titlestring or nullrequired | The changed title, or null if unchanged. |
exceptions[].descriptionstring or nullrequired | No description. |
exceptions[].locationstring or nullrequired | No description. |
exceptions[].starts_atstring or nullrequired | No description. |
exceptions[].ends_atstring or nullrequired | No description. |
exceptions[].start_datestring or nullrequired | No description. |
exceptions[].end_datestring or nullrequired | No description. |
extra_datesarray of stringsrequired | Extra occurrences beyond the rule, by their start. |
peoplearray of objectsrequired | |
people[].idstringrequired | A person ID, such as per_01JC0000000000000000000000. |
people[].namestringrequired | No description. |
remindersarray of objectsrequired | |
reminders[].minutes_beforeintegerrequired | No description. |
reminders[].personobject or nullrequired | Who is reminded, or null for the people on the event. |
reminders[].person.idstringrequired | A person ID, such as per_01JC0000000000000000000000. |
reminders[].person.namestringrequired | No description. |
attachmentsarray of objectsrequired | |
attachments[].file_idstringrequired | A file ID, such as fil_01JC0000000000000000000000. |
attachments[].namestringrequired | No description. |
attachments[].positionintegerrequired | No description. |
calendarobjectrequired | |
calendar.idstringrequired | A calendar ID, such as cal_01JC0000000000000000000000. |
calendar.namestringrequired | No description. |
calendar.colorone of: calendar-1, calendar-2, calendar-3, calendar-4, calendar-5, calendar-6, calendar-7, calendar-8required | The calendar's color token. |
sourceobject or nullrequired | The app that owns the event, or null when it's the calendar's own. |
source.appone of: meals, recipes, shopping, inventory, calendar, email, tasks, documents, chat, maintenancerequired | An app: meals (meal planning), recipes, shopping, inventory, calendar, email, tasks, documents, chat, or maintenance (home maintenance). |
source.record_idstringrequired | The owning app's record. |
is_busy_onlybooleanrequired | No description. |
Errors#
Every error has the same envelope: error.code, error.message, error.details, error.recovery and error.request_id.
| Status | Code | When |
|---|---|---|
400 | validation_failed | A field is missing, misspelled or out of range. details.fields lists each problem. |
401 | unauthenticated | The request has no valid session. |
404 | event_not_found | The event doesn't exist in this household. |
404 | not_found | The household doesn't exist, or you aren't a member of it. |
Examples#
These are real. Each was recorded from a sample household, the Okafors, running through the whole API when this site was built.
Open an event
curl 'https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/calendar.event.get?event_id=evt_01M6V9CSHPG77MMGGKHAEJQ484' \
-H "Cookie: rigel_session=$RIGEL_SESSION"const response = await fetch("https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/calendar.event.get?event_id=evt_01M6V9CSHPG77MMGGKHAEJQ484", {
headers: {
Cookie: `rigel_session=${process.env.RIGEL_SESSION}`,
},
});
const data = await response.json();GET /api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/calendar.event.get?event_id=evt_01M6V9CSHPG77MMGGKHAEJQ484 HTTP/1.1
Host: rigel.house
Cookie: rigel_session=<your session>HTTP/1.1 200 OK
Content-Type: application/json
X-Request-Id: req_01M6V9CSJPHN3RGJEYQ8AJFB9H
{
"event_id": "evt_01M6V9CSHPG77MMGGKHAEJQ484",
"title": "Soccer practice",
"description": null,
"location": "Riverside Park",
"kind": "activity",
"status": "confirmed",
"is_all_day": false,
"starts_at": "2026-11-10T17:00:00-06:00",
"ends_at": "2026-11-10T18:00:00-06:00",
"start_date": null,
"end_date": null,
"time_zone": "America/Chicago",
"when": "Tue, Nov 10, 5–6pm",
"recurrence": "FREQ=WEEKLY;BYDAY=TU",
"repeats": "every Tuesday",
"exceptions": [],
"extra_dates": [],
"people": [
{
"id": "per_01M6V9CS7CDAEP5VDA5T8R9TG6",
"name": "Theo"
}
],
"reminders": [
{
"minutes_before": 60,
"person": null
}
],
"attachments": [],
"calendar": {
"id": "cal_01M6V9CSHK7NNRTMZQSM1BFD1B",
"name": "Nia and Theo",
"color": "calendar-5"
},
"source": null,
"is_busy_only": false
}For Rigel#
Rigel's tool for this query is calendar_event_get. Rigel runs this on its own, then says what it did. The agent guide has the rest.