Festival Volunteer Shifts: A Three-Day Station Roster That Keeps Up With Changes
A three-day food festival's volunteer roster is built from Calendly sign-ups, kept in Airtable and mirrored on the shift calendar in one Kylon room. Agents keep the records in step and the volunteer coordinator approves every change before volunteers hear about it.
Three days, nine stations and sign-ups that keep changing
A weekend festival runs on volunteers. Each station, from the main gate to the recycling point to the kids tent, needs a minimum number of people for every shift from Friday afternoon to Sunday evening. Volunteers pick shifts through a Calendly link, then swap, cancel and book again, and the roster still has to show who is where at every hour.
Sign-ups live in Calendly, the roster the station leads use is in Airtable, the shift calendar that volunteers and leads see is in Google Calendar, the station map and coverage minimums are in Google Drive, and during the festival everything runs through Slack. When a volunteer reschedules, Calendly records a new booking. If the roster adds a new row and the calendar a new event, that person now counts twice, and the gap it hides is real.
Who works in the room
People
Volunteer coordinator
Owns the roster, approves every change and decides how gaps get filled
Station leads
Run each station during the festival and report no-shows and early finishes
Festival operations manager
Sets station hours and minimum coverage and approves any change to them
Agents

RyanRoster keeper
Turns Calendly bookings into roster rows and shift events, keeps the two in step and lists coverage gaps by station and shift
Calendly
Airtable
Google Calendar
Google Drive
FinVolunteer messages
Drafts confirmations, reminders and requests for extra shifts, and reads station leads' updates during the festival
Everything for the festival happens in one Kylon room. Ryan is the default agent, so any question about who is on a shift reaches it. The room guidelines send anything addressed to volunteers to Fin. When Ryan finds a gap, it mentions Fin with the station, the shift and the volunteers who offered extra time, and Fin drafts the ask. Ryan reads Calendly and writes to Airtable and Google Calendar through a grant the coordinator approved for this room, and each write still waits for the coordinator's approval.
Building the roster and keeping it true
The roster covers Friday through Sunday only, and the room guidelines say so, which leaves Thursday load-in and Monday teardown to their own crews.
- Agent works
- Person decides
- Arrives or gets recorded
flowchart TD
book([Volunteers book shifts<br>through Calendly])
build["<b>Ryan</b> turns each booking into one<br>roster row and one shift event"]
outside([Set aside with a note])
ok1["<b>Volunteer coordinator</b> approves<br>the rows and events"]
cover["<b>Ryan</b> lists coverage gaps<br>by station and shift"]
ops["<b>Operations manager</b> confirms<br>which gaps matter most"]
ask["<b>Fin</b> drafts asks to volunteers who<br>offered extra time, in order"]
send["<b>Coordinator</b> sends each request"]
swap([A swap or cancellation<br>arrives from Calendly])
match["<b>Ryan</b> matches it to the existing<br>row and event"]
ok2["<b>Coordinator</b> approves the<br>roster and calendar together"]
standby["<b>Ryan</b> proposes a replacement for<br>each no-show from the standby list"]
accept["<b>Station lead</b> accepts<br>the replacement"]
wrap["<b>Ryan</b> tallies final hours per<br>volunteer and per station"]
sign["<b>Coordinator</b> signs off the roster"]
book --> build
build -->|outside window| outside
build -->|in window| ok1
ok1 --> cover --> ops --> ask --> send --> standby
swap --> match --> ok2 --> standby
standby --> accept --> wrap --> sign
class build,cover,ask,match,standby,wrap agent
class ok1,ops,send,ok2,accept,sign person
class book,outside,swap event
classDef agent fill:#FFFFFF,stroke:#DCD3C8,color:#1B1712
classDef person fill:#EEF0E3,stroke:#6E7447,color:#1B1712
classDef event fill:#F4ECDD,stroke:#F4ECDD,color:#564C42| Stage | What happens | Who acts | Who decides |
|---|---|---|---|
| First build | Calendly bookings inside the festival window become one roster row and one shift event each | Ryan | The coordinator approves before Airtable and the calendar change |
| Coverage check | Each station and shift is compared with the minimum in the coverage plan | Ryan | The operations manager confirms which gaps matter most |
| Filling gaps | Volunteers who offered extra time are asked, in the order they offered | Fin | The coordinator sends each request |
| Swaps and cancellations | A rescheduled booking updates its existing row and event, and a canceled one comes off both | Ryan | The coordinator approves each change |
| Festival days | Station leads post no-shows in Slack, and replacements are proposed from the standby list | Ryan, then Fin | The station lead accepts the replacement |
| Wrap-up | Final hours per volunteer and per station are tallied for thank-you notes | Ryan | The coordinator signs off the roster |
When the brief is one line and the weekend keeps moving
The request to build the roster is often one line in Slack. Ryan reads the scope from the coverage plan in Drive and, where the plan is silent, asks the coordinator in the thread before it writes anything. Bookings that fall outside Friday to Sunday are set aside with a note, never added or dropped without a word.
Through the week, every change arrives as a Calendly event: a swap, a cancellation, a new sign-up. Ryan matches each one to the volunteer's existing row and event before proposing anything, so a reschedule moves one record instead of creating two. After each batch the thread shows the roster and the calendar side by side, and the coordinator approves both together.
What the checks catch
- A Thursday or Monday booking from an old link that falls outside the festival window
- A rescheduled volunteer who appears on both the old shift and the new one
- A roster row with no matching calendar event, or an event with no row behind it
- A station that looks covered because a canceled volunteer still counts
What stays with people
- Approving every roster and calendar change before it is written
- Sending confirmations, reminders and requests for extra shifts, which Fin drafts
- Deciding which station goes short when there are not enough volunteers
- Accepting replacements at each station during the festival
Integrations in this workflow
Kylon is not a volunteer management platform and it does not replace a sign-up tool. It works across the tools the festival team already runs and keeps the coordination in one room.
- Calendly is where volunteers book, reschedule and cancel their shifts
- Airtable holds the roster the station leads work from
- Google Calendar carries one event per shift assignment, created or updated after the coordinator approves
- Google Drive keeps the station map, the coverage minimums and the volunteer guide
- Gmail sends confirmations and requests through drafts the coordinator sends
- Slack is where station leads post no-shows and early finishes during the festival
Where to start
Try it on one weekend with a handful of stations. Connect Calendly and the Airtable roster, and set one rule in the room guidelines: every booking is matched to an existing volunteer row before anything new is created, and the coordinator approves the roster and the calendar together.
“A roster is right when the base, the calendar and the people at the gate all agree.”
Set it up with your agent
Open a new Room, add your agent and paste this prompt. It connects the tools, builds the App with you and asks for your rules one step at a time, and nothing goes out until a person approves it.
Set up our festival volunteer shift desk in this Room. Take it one step at a time and wait for my OK before you move on. 1. Connect Airtable, Calendly, Gmail, Google Calendar, Google Drive and Slack. Tell me which ones still need connecting. 2. Ask me who works this desk: the volunteer coordinator who owns the roster, the station leads who run each station and report no-shows, and the festival operations manager who sets station hours and minimum coverage. Help me invite them to this Room. 3. Build a Volunteer Roster App with Shift, Station, Filled and Status columns, one row per assignment. Match each Calendly booking to an existing volunteer row before creating anything new. 4. Check each station and shift against the coverage minimums in Google Drive. List every gap by station and shift, and ask the operations manager which gaps matter most. 5. Draft confirmations, reminders and requests for extra shifts through Gmail and Slack. The coordinator approves and sends every outgoing message. The coordinator also approves every write to Airtable and Google Calendar before it goes through. 6. Write the festival window, our matching rules and who approves which send or roster change into this Room's guideline so every booking follows the same order. 7. After the festival, offer to turn the coverage check into an Automation. Before you start, ask me for our rules one at a time.
Your first company harness. Where humans and agents run your business together.
More Use Cases
View allFood Bank Distribution: Donated Lots Reach Partner Agencies Before They Expire
Donated lots are allocated to partner agencies under the distribution policy in one Kylon room, then reallocated when a truck goes down, a lot fails inspection or an agency gains space. Agents propose each move and the warehouse manager approves it.
Grant Disbursement: Awards Decided on the Evidence and Paid Once
Grant applications are reviewed against compliance documents, budgets and declared conflicts in one Kylon room, with disbursements calculated from the award table and program officers assigned. Agents propose each step and the grants director approves every award.




