Skip to content
Rigel docs
Open Rigel

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#

One event in full: parameters
FieldDescription
household_idpathstringrequired

The household's ID.

event_idquerystringrequired

A calendar event ID, such as evt_01JC0000000000000000000000.

Response#

200 The answer.

One event in full: response fields
FieldDescription
event_idstringrequired

A calendar event ID, such as evt_01JC0000000000000000000000.

titlestringrequiredNo description.
descriptionstring or nullrequiredNo description.
locationstring or nullrequiredNo description.
kindone of: event, appointment, activity, chore, meal, trip, birthday, holiday, reminder, busyrequiredNo description.
statusone of: confirmed, tentativerequiredNo description.
is_all_daybooleanrequiredNo description.
starts_atstring or nullrequired

ISO 8601 with the household's offset; null for all-day.

ends_atstring or nullrequiredNo description.
start_datestring or nullrequiredNo 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_startstringrequiredNo description.
exceptions[].cancelledbooleanrequiredNo description.
exceptions[].titlestring or nullrequired

The changed title, or null if unchanged.

exceptions[].descriptionstring or nullrequiredNo description.
exceptions[].locationstring or nullrequiredNo description.
exceptions[].starts_atstring or nullrequiredNo description.
exceptions[].ends_atstring or nullrequiredNo description.
exceptions[].start_datestring or nullrequiredNo description.
exceptions[].end_datestring or nullrequiredNo 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[].namestringrequiredNo description.
remindersarray of objectsrequired
reminders[].minutes_beforeintegerrequiredNo 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.namestringrequiredNo description.
attachmentsarray of objectsrequired
attachments[].file_idstringrequired

A file ID, such as fil_01JC0000000000000000000000.

attachments[].namestringrequiredNo description.
attachments[].positionintegerrequiredNo description.
calendarobjectrequired
calendar.idstringrequired

A calendar ID, such as cal_01JC0000000000000000000000.

calendar.namestringrequiredNo 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_onlybooleanrequiredNo description.

Errors#

Every error has the same envelope: error.code, error.message, error.details, error.recovery and error.request_id.

One event in full: errors
StatusCodeWhen
400validation_failedA field is missing, misspelled or out of range. details.fields lists each problem.
401unauthenticatedThe request has no valid session.
404event_not_foundThe event doesn't exist in this household.
404not_foundThe 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

Request, curl
curl 'https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/calendar.event.get?event_id=evt_01M6V9CSHPG77MMGGKHAEJQ484' \
  -H "Cookie: rigel_session=$RIGEL_SESSION"
Request, TypeScript
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();
Request, HTTP
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>
Response, 200
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.

Rigel is in early access, and sign-up is by invitation. Open Rigel