List Schedules
list_schedulesLegislative agenda (sesiones, audiencias, debates) — list, or fetch one by id, in a single tool. Authoritative, sourced directly from each congress's official session calendar, refreshed every 1-2 hours on session days.
No id (default): paginated list across country_code (comma-separated; omit for every accessible/your default country). Use since/until (event_date, the actual session/hearing date) for upcoming or past events, e.g. since=today until=today+7 for the week ahead. Default order is ingestion recency; pass order_by="event_date" for chronological order (the week ahead) or "event_date_desc" for the latest sessions first — across pages, not just within one. Rows carry commission_name and bill_title next to their ids. Optionally narrow to one commission with commission_id (use list_commissions(country_code=...) to discover valid IDs). Use q to search by title and body (accent/case-insensitive). An empty future window says whether the agenda is likely just not published yet (empty_result.feed).
With id: ignores every other filter and returns full detail — title, date, issuing body, and the linked bill (project_id), if any.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Search the event title **and its subject/body** (accent/case-insensitive; every token must appear in one of them). Search the topic, not the bill number: a Colombian event is titled 'Proyecto de Ley número 141 de 2024 Senado', and what the session is about -- ponencia, debate, audiencia, the policy area -- is in the body. Schedules are not in the semantic corpus, so this is keyword-only. | |
| id | No | An event's own id. Set it for full detail including the linked bill; every other filter is ignored. | |
| limit | No | Rows per page (1-100, default 20). The response's `meta.has_more` and `meta.next_cursor` tell you whether there are more. `meta.total`, when it is not null, is the full count without paging; some lists return null rather than pay for a count. Raise the limit when you genuinely need a whole list in one call rather than the most relevant few. | |
| since | No | Filters event_date — the actual session/hearing date, not ingestion time. For the week ahead: since=today, until=today+7. | |
| until | No | Upper bound on event_date (YYYY-MM-DD). | |
| cursor | No | Opaque pagination cursor from a previous response's `meta.next_cursor`. Pass every other filter unchanged when paging. Only ever use a cursor this API handed you — never build one. With `q`, a cursor continues the keyword listing (`meta.mode: "keyword_fallback"`): relevance-ranked results are a single page of at most 20 rows and report `has_more: false`, so if you got one there is no next page to ask for, and a `limit` above 20 adds nothing to it. Narrow `q` instead of paging. | |
| order_by | No | 'ingested' (default): newest-ingested first. 'event_date': chronological by session date, earliest first — use with since=today for what is coming up. 'event_date_desc': latest session first. A cursor only continues the order it came from. | ingested |
| country_code | No | ISO alpha-2 country codes, comma-separated or as a list: 'BR,CO' or ['BR','CO']. Pass 'all' for every country you can access. Omitting it is NOT the same as 'all': logged in via OAuth it falls back to your own default country, and the response says so in `meta.country_scope`. | |
| commission_id | No | Narrow to one commission's agenda (list_commissions to discover IDs). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||