Back to the calendar

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-18

Supply 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

FieldMeaning
schema_version"1.0". The version of this JSON contract.
generated_atThe response generation time as an ISO timestamp ending in Z (UTC).
timezoneAlways America/Chicago.
range_start / range_endInclusive Nashville dates in YYYY-MM-DD format.
eventsSorted occurrences, including canceled dates. An empty range returns [].
idStable series ID plus original scheduled date. A time, venue, or date change does not change this ID.
series_idThe existing weekday-directory listing ID.
dateThe effective event date after an override, in YYYY-MM-DD format.
start_time / end_timeLocal 24-hour HH:MM strings. Unknown values are null. No invented end time or UTC offset.
round_nameThe name from the shared round listing.
venue / address / neighborhoodPublic location strings, or null when unknown or explicitly varying.
admissionfree, ticketed, or null. Ticketed does not imply a known price.
organizer_instagramThe organizer’s stored Instagram URL, or null.
official_source_urlThe date-specific source when overridden; otherwise the listing’s verification source or official organizer link.
statususual_schedule, confirmed, or canceled.
recurrence_noteThe structured recurrence, plus the existing public schedule note.
last_updatedLatest series, applicable venue, or occurrence update, as an ISO timestamp with Z. It is not the date the event was confirmed.
original_dateIdentity date before rescheduling.
location_variesTrue when a changing venue was explicitly recorded. Venue and address remain null.
public_noteAn optional public change note; null if absent.
listing_noteThe listing’s public admission, age, and other notes, without interpreting or inventing prices.
sponsoredTrue 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.

Browse the calendar · Open the default JSON feed