TodayReminderResult today.reminder-result@1
Generated at from
openvibe-contracts v0.419.0 and
openvibe-sdk v0.161.0.
- Version
- 1.0.0
- Owner
- today
- Visibility
- first-party
- Status
- active
- Compatibility
- backward
- Schema
https://openvibe.network/contracts/today/reminder-result.v1.json
today.reminder-result@1: answers of the reminder routes on OpenVibe.Today. POST /api/v1/reminders/parse → a preview (title, rule, tz, next_at, summary); POST /api/v1/reminders, /:id/done and /:id/snooze → one reminder; GET /api/v1/reminders → { reminders }. A refusal is 422 { error } in words the person can act on ("Say when: …").
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
reminders | https://openvibe.network/contracts/today/reminder-result.v1.json#/$defs/reminder | |||
id | string |
| ||
title | string | |||
summary | string | The rule in words: "Every 2 hours, 9 am–5 pm". | ||
next_at | string | null |
| ||
error | string |
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: list
{
"reminders": [
{
"id": "rem_01J8Z3Q4R5S6T7V8W9X0Y1Z2N1",
"title": "Stretch",
"said": "stretch every 2 hours from 9 to 5",
"rule": {
"kind": "interval",
"minutes": 120,
"from": "09:00",
"to": "17:00"
},
"tz": "America/Chicago",
"url": null,
"source": "today",
"status": "active",
"next_at": "2026-11-02T15:00:00.000Z",
"last_sent_at": null,
"sent_count": 0,
"summary": "Every 2 hours, 9 am–5 pm",
"repeats": true,
"created_at": "2026-11-01T22:00:00.000Z"
}
]
}Valid: refused
{
"error": "Say when: \"at 3pm\", \"tomorrow morning\", \"every day at 9\" or \"in 20 minutes\"."
}Rejected: bad-status
{
"reminders": [
{
"id": "rem_01J8Z3Q4R5S6T7V8W9X0Y1Z2N1",
"title": "Stretch",
"summary": "Every 2 hours",
"status": "paused",
"next_at": null,
"repeats": true
}
]
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('today.reminder-result@1', value); // { valid, errors: [{ path, message }] }