Skip to main content
When a document or a transcript announces a meeting, a hearing, a vote, or a comment deadline, PolicyMate records it as an event. Events let you build a calendar of what is coming up across every jurisdiction you follow, from a committee hearing in a state capitol to a planning board session in a county office.
Every event is read by AI from the document or transcript that announces it, and most events have not been checked against their source. Each event carries a verification object that tells you whether it was checked, and the passage it was read from when PolicyMate located it. Before acting on an event, such as filing a comment, you should check its source.

Retrieving Events

To retrieve a list of events, send a GET request to the /events endpoint. Events are returned in the order they start, soonest first. For example, the following request retrieves upcoming hearings and meetings in Maryland:
To retrieve a single event, send a GET request to /events/{id}.

Filtering Events

The /events endpoint accepts the shared filters, including the recommendation filters, along with the following query parameters: The q parameter searches the event’s name and description. An event’s jurisdiction is the jurisdiction of the document or transcript that announces it.

The Event Object

An event looks like the following. The values below are illustrative:
An event’s kind is one of meeting, vote, deadline, consultation, conference, summit, webinar, workshop, press_conference, or other. When the source describes a recurring event, such as “every first Tuesday”, is_recurring is true and recurrence holds that description in plain words. A recurring event is returned once, at its next known date, not as a series of occurrences. The source attribute is the document or transcript that announces the event. Its type is document or transcript, and its publisher is null for transcripts. When several sources announce the same event, PolicyMate returns the event once, with the first source that announced it. Two announcements are only treated as the same event when they agree on its date, so recognising duplicates is a best effort rather than a guarantee.

Postponed and Cancelled Events

PolicyMate does not track whether an event was postponed or cancelled. When a later document announces a new date, PolicyMate records it as a new event, and the original event keeps its date. Before relying on an event, especially one announced weeks earlier, you should look for newer events with a similar name. The recommendations attribute lists the workspaces the event was recommended to, as described in Recommendations on Records.

Date Precision

Sources do not always give an exact date. A notice may say a hearing will take place “in December”, or that comments are due “within 30 days”. Rather than inventing a precise date, PolicyMate records how precisely the source dated the event in the date_precision attribute: You should display an event no more precisely than its date_precision. For example, an event with a month precision should read “December 2026”, not “December 1, 2026”, and a day precision never means the event starts at midnight. When the source counts the date from its own publication, such as comments due “within 30 days”, the counted_from_publication attribute holds that period as an ISO 8601 duration, such as P30D, and starts_at is the source’s publication date plus that period. It is null when the source states the date itself.

Filtering by Date

The starts_after and starts_before filters match every event that may start within the range. An event dated “in December” is treated as starting at some point in December, so a request for events starting after December 15 includes it. Dates you pass are read in each event’s own timezone, so starts_before=2026-12-15 includes events on December 15, wherever they take place.