Welcome to the Jose Madrid Salsa developer docs — explore features, APIs, and deployment guides.
Jose Madrid SalsaJMS Docs

Events & Shows

The show calendar — booking pipeline, "Where is Jose?", staffing, and pack-out manifests.

Events & Shows

Shows are where a large share of the business actually happens: festivals, markets, fairs. /admin/events manages the whole pipeline, from "we might apply" through to what got packed into the van.

The event

FeaturedEvent carries both the calendar facts and the booking facts:

FieldNotes
title, description, locationDisplay copy
startDate, endDateWhen the show runs
featuredFrom, featuredToWhen it appears on the site
isWhereIsJoseWhether it shows on the "Where is Jose?" page
displayPriorityOrdering among concurrent events
venue, address, city, stateFrom the 20-column Show import CSV
driveTimeDriving time from the shop, as exported ("7h 04m")

Every column sourced from the Show import CSV is nullable, and an empty cell there means "not published" — never zero. Do not coalesce those fields to 0 when summarising.

Booking pipeline

bookingStatus tracks where a show is:

INTERESTEDAPPLIEDWAITLISTEDACCEPTEDCONFIRMED, with DECLINED and CANCELLED as exits. The default is CONFIRMED.

applicationDeadline is deliberately distinct from startDatedeadlines routinely fall months before the event itself, and treating the start date as the thing to watch means missing the application window entirely.

boothFee records the vendor fee.

Google Calendar

googleEventId links an event to its Google Calendar counterpart, with lastGoogleSync recording the last sync. manuallyModified and modifiedFields protect local edits: once a field has been changed by hand, a sync must not overwrite it. customDescription is the locally-authored description used in place of the calendar's.

See Google Calendar Two-Way Sync.

Staffing and contacts

EventStaff records who is working a show; EventContact holds the organiser contacts for it.

Manifests

EventManifest is the pack-out list for a show — one per event, with EventManifestItem rows for what went:

StatusMeaning
DRAFTBeing built
packedAt and returnedAt stamp the two ends of the trip

The difference between what was packed and what came back is what the show actually sold, which is how show takings reach the bookkeeping ledger.

Permissions

Governed by the EVENTS permission category. events:read is in the default STAFF set; writing is not.

How is this guide?

Edit on GitHub

Last updated on

On this page