An event holds the show. Its dates hold the days. Each date can be split into named parts with their own rooms and times. Publication and booking are tracked separately, so a contracted, staffed, paid night can sit under an event you never announced — and a filter can never confuse the two.
From one record to a whole run, in four steps
Every event is born a draft, whatever created it — the intake form, an import, the API. Each one names a producer, and a booking with genuinely no producer has to say so in writing rather than leave the field blank.
One row per calendar day, each attached to the rooms it uses, each carrying a show window and a separate setup and teardown window. Load-in time is booked, not guessed.
Split a date into named parts — doors, class, social — each with its own rooms and times. Define the shape once and apply it to every future date of the run.
Publish now, or set a date and time and let it flip itself. The check runs every minute, so 10:00 on Tuesday means 10:00 on Tuesday.
“Can the public see this?” and “is the room held?” are not the same question. Most tools give you one field for both, and then the calendar lies.
Draft, pending, tentative, approved, published, denied, cancelled. Only published puts the event on your public page, the discovery feed and the sitemap; the rest are your own triage vocabulary. Cancelled is the one other status the system acts on.
A date carries its own status, and so does every room attached to it. One Saturday can hold the main hall as approved and the studio as tentative, at different times of day, while the event above them stays a permanent draft. Your venue calendar reads the dates, not the announcement.
The producer of record, anyone holding a grant on that event, and admins and managers of the organization that owns it. Every write is checked when it is made, not by hiding a button.
When an outside producer edits an event, nothing is written. Each changed field becomes a proposal in a review queue. Staff edits apply straight away.
Approving a proposed reschedule runs the whole reschedule path — conflict check, staff shifts carried across, ticket holders emailed — rather than quietly writing a new day into the column.
A Tuesday at a dance studio is not one thing. It is doors, then a class, then a social — three rooms, three clocks, one evening. Venue Family models that as parts of a single date rather than three separate bookings you have to keep in step.
Lobby · box office and bar open
Studio A · no partner needed · 24 places
Main Floor and Lobby · live band from 21:00
Name, description, start, end, rooms and capacity. Parts are real rows on the date, not a note in a description field, so the rest of the platform can read them.
Part times compile down to a per-room occupancy window on the date. Availability, conflict warnings, shift sizing and the Eventbrite listing all see the right room held for the right hours without knowing what a part is.
Ticket types say which parts of which dates they admit, so a class-only pass and a whole-evening pass sell off the same night. The rules live on the Ticketing & Finance page.
The public event page and the JSON API publish the agenda — each part's name, description, times and rooms. Each part also becomes its own Google Calendar entry, keyed so that reordering two parts never swaps their identity, their invitees or their reminders.
Save the shape of the day as a pattern and apply it to every future date of the run in one action. The confirm panel tells you how many dates will change, how many are keeping a schedule you customised, and how many already happened.
Detach one date — the week the class runs long, the night the band needs a soundcheck — and it keeps its own shape. Later pattern changes skip it.
Apply pattern to 12 remaining dates
A season, a two-week run and a Saturday with four rooms in use are all the same record with more dates on it.
A calendar day appears exactly once on an event. Two enquiries for the same day do not fight: the intake merges them, taking the union of the rooms and the widest window. That is what makes a four-room Saturday a single, coherent day.
Four date types, color-coded through the editor grid and the calendars, so a load-in day is a booking rather than a note. Renters choosing their own dates are offered three: performance or class, rehearsal, setup or cleanup.
The show window is what the public and the door see. The rental window is what the room is actually held for. A night that ends after midnight rolls to the next day instead of collapsing to nothing.
Before a date moves, you are told how many tickets are sold, how many staff have claimed shifts, how many people signed in, whether an Eventbrite listing is linked, and which rooms clash on the target day. Then you decide.
Select the dates, set the new times, and the first press tells you how many dates change and how many ticket holders will be emailed. The second press does it. Claimed shifts travel with a moved date.
Cancel the whole event or pick the dates. Cancelled dates release their rooms; cancelling the last remaining date cancels the event, recording who did it, when, and why. Staff are notified, and when staff cancel, the producer is too.
The point of one record is that everything hanging off it moves together. Nobody re-sends an invite, and nobody updates the building calendar by hand.
We ask Google for the narrowest access it offers: we can only touch calendars this app created, and your personal calendar is not readable by us. Sync runs one way, out of Venue Family — an edit made in Google is replaced the next time that record syncs.
Scheduled publish
The event goes live at the minute you named
Guest list to your inbox
Emailed to the organization and the producer, once per date
Sales and attendance report
To programming, admin and the producer. Quiet nights are skipped
Missing artwork reminder
Producers of upcoming events with no image, in your own email branding
Calendar self-repair
Anything Google refused is re-sent; an expired login is flagged for one-click reconnection
Eventbrite attendee reconcile
Requires the Ticketing Channels add-on
Calendar sync is on every plan, including the smallest. There is no calendar upsell.
Venue Family is not owned, developed, or controlled by Eventbrite, and we are not an Eventbrite partner.
Published and not private. That single rule serves the event page, the discovery feed and the sitemap, so the three cannot disagree about what your audience is allowed to see.
The discovery feed shows published dates as a month calendar, a map of the venues and a filterable list. Date and venue filters drive all three at once.
Three embeds: your events calendar, an archive of past events, and a compact upcoming-events widget. They drop into the site you already have.
Mark an event private and it leaves the page, the feed and the sitemap. The API still reports the slot as taken, as “Private Event”, with no identifying detail. Your own team sees it in full.
The same URLs serve the world a published, redacted picture, and serve a token belonging to one of your own members every status and every date. One integration drives your public site and your internal tools.
Assign images to named slots — banner and slider at 2:1, list at 1:1, page at 4:5, plus background, gallery and logo. If a slot is empty, the page falls back to another of the event's slotted images, then to the parent event's, then to any image it holds at all. An event with a picture never renders a placeholder.
The programming overview surfaces the events with unapproved dates, the ones waiting on approval, the ones with no description and the ones with no image, alongside a count of everything at each stage. Per event, a read-only health report lists each date with its status, its sign-in count and whether it sells tickets.
Bring your dates, your rooms and your program across. We will help you work out which plan fits and what a migration looks like.
Or read about Ticketing & Finance, Venues & Bookings, Shifts & Volunteers and the rest of the platform.