Nashville Rounds / Public data
Calendar data.
One public feed. The same rounds as the weekday directory.
Read the feed
/api/calendar returns read-only JSON without login. With no dates, it returns today and the next 59 days. Both boundaries are inclusive Nashville calendar dates. Request up to 366 days at once.
GET /api/calendar?from=2026-10-12&to=2026-10-18Supply real YYYY-MM-DD dates. If from is omitted, it defaults to today in Nashville. If to is omitted, it defaults to 59 days after from. Invalid dates, reversed ranges, and ranges over 366 days return HTTP 400 with a JSON error. GET and HEAD are supported; writes are rejected.
Status is part of the story
usual_schedule: generated from the listing’s recurrence. It is not confirmation that a show will happen on that date.
confirmed: an admin explicitly verified this specific date and saved its official source. This does not supply or verify an artist lineup.
canceled: explicitly canceled for this occurrence. Keep this status when comparing updates; do not advertise it as an upcoming show.
Dates, recurrence, and changes
Dates and clock times use America/Chicago, including daylight saving changes. A 7 PM round stays 19:00 when the UTC offset changes. Do not interpret these local values as UTC. A repeated fall-back clock time does not identify a unique instant; no UTC instant is invented.
Weekly rules use the listing’s weekdays. Alternating weeks use the Monday–Sunday week containing an explicitly entered anchor date; the anchor must fall on a selected weekday. Monthly rules use an explicit first, second, third, fourth, fifth, or last weekday. A fifth weekday is skipped in months without one. Specific-date rules use only entered dates. Optional start and end dates bound the schedule.
Free-text recurrence is never parsed into dates. Missing recurrence, start time, fixed venue/address, or source details are flagged for admin review and omitted from scheduled events. Explicitly varying locations are shown as “Location varies—check organizer.” Unknown admission or end times remain null. Paused listings do not generate usual events, but explicit dated changes can remain visible. Inactive, discontinued, and archived listings never appear.
An exception replaces its original occurrence rather than adding a second copy. Confirmed and canceled dates retain the time, venue choice, and admission recorded when saved; editing the usual schedule does not silently change that verification. A rescheduled event keeps its ID and original_date, while date changes. Filtering uses the effective date, so an event moved outside your range disappears from that range. This feed is a current snapshot, not an incremental change log; re-read an overlapping date range when checking changes.
Fields
| Field | Meaning |
|---|---|
schema_version | "1.0". The version of this JSON contract. |
generated_at | The response generation time as an ISO timestamp ending in Z (UTC). |
timezone | Always America/Chicago. |
range_start / range_end | Inclusive Nashville dates in YYYY-MM-DD format. |
events | Sorted occurrences, including canceled dates. An empty range returns []. |
id | Stable series ID plus original scheduled date. A time, venue, or date change does not change this ID. |
series_id | The existing weekday-directory listing ID. |
date | The effective event date after an override, in YYYY-MM-DD format. |
start_time / end_time | Local 24-hour HH:MM strings. Unknown values are null. No invented end time or UTC offset. |
round_name | The name from the shared round listing. |
venue / address / neighborhood | Public location strings, or null when unknown or explicitly varying. |
admission | free, ticketed, or null. Ticketed does not imply a known price. |
organizer_instagram | The organizer’s stored Instagram URL, or null. |
official_source_url | The date-specific source when overridden; otherwise the listing’s verification source or official organizer link. |
status | usual_schedule, confirmed, or canceled. |
recurrence_note | The structured recurrence, plus the existing public schedule note. |
last_updated | Latest series, applicable venue, or occurrence update, as an ISO timestamp with Z. It is not the date the event was confirmed. |
original_date | Identity date before rescheduling. |
location_varies | True when a changing venue was explicitly recorded. Venue and address remain null. |
public_note | An optional public change note; null if absent. |
listing_note | The listing’s public admission, age, and other notes, without interpreting or inventing prices. |
sponsored | True for a labeled sponsored round. Calendar order remains chronological. |
For weekly Instagram posts
Query the intended Monday through Sunday. Use the event’s date, local time, venue, and official source. Label usual schedules accurately, omit canceled events from recommendations, and never invent performers, ticket prices, or confirmation. The same event text is present in the calendar page’s initial HTML response.
