Raw schema
{
"type": "object",
"properties": {
"question": {
"type": "string",
"description": "The decision or action being considered"
},
"targetDate": {
"type": "string",
"description": "YYYY-MM-DD. Default: today (single mode only)"
},
"targetHour": {
"type": "integer",
"minimum": 0,
"maximum": 23,
"description": "Clock hour 0..23. Auto-rounded to the containing 2-hour block. 23:XX rolls the effective day forward by one."
},
"compareHours": {
"type": "array",
"maxItems": 4,
"items": {
"type": "object",
"properties": {
"date": {
"type": "string"
},
"hour": {
"type": "integer",
"minimum": 0,
"maximum": 23
}
},
"required": [
"date",
"hour"
]
},
"description": "Up to 4 additional (date, clock-hour 0..23) pairs to compare against targetDate+targetHour. Pairs that resolve to the same 2-hour block (e.g. hours 7 and 8 on the same date) are deduplicated — submit distinct blocks if you want distinct results."
},
"bestInDay": {
"type": "object",
"properties": {
"date": {
"type": "string"
},
"top": {
"type": "integer",
"minimum": 1,
"maximum": 12,
"description": "Number of top hours to return (default 5)"
}
},
"required": [
"date"
],
"description": "Find best hours within a single day. Each entry carries an explicit `window` span."
},
"category": {
"type": "string",
"enum": [
"career",
"relationship",
"health",
"finance",
"travel",
"general"
],
"description": "Decision domain — tunes the analysis weighting. Default: general."
},
"birthInfo": {
"type": "object",
"description": "Optional override. If provided, all 6 fields required: { year, month, day, hour, minute, gender } — use null for unknown hour/minute/gender. Omit entirely to use the stored profile."
}
},
"required": [
"question"
]
}