Skip to content

Schedule

Build a multi-day event agenda with times, locations, maps, access controls, and rich content.

Quick outcome

The schedule system organizes your event into days and items. Attendees browse the agenda on the public site. Organizers manage everything from the admin dashboard, including per-item access controls and location details.

Setup

Create days

Navigate to /admin/schedule and click to add a new day:

FieldDescription
DateCalendar date for the day
LabelDisplay name (e.g., "Day 1 — Arrival", "Saturday")

Days are displayed in sort order on the public schedule page.

Add schedule items

For each day, add items at /admin/schedule/[dayId]/new-item:

FieldDescription
TimeStart time (e.g., "9:00 AM")
End timeOptional end time (e.g., "11:00 AM")
TitleItem name (e.g., "Breakfast at the Lodge")
DescriptionShort summary
Categorymeal, activity, travel, ceremony, free-time, other

Location details

Each item can include location information:

FieldDescription
Location nameVenue name (e.g., "Lakehouse Deck")
Location addressFull address for map links
CoordinatesLatitude/longitude for embedded maps
Directions noteSpecial instructions (e.g., "Park in the back lot")

Rich content

Items support additional content:

FieldDescription
NotesMarkdown-formatted additional details
Hero imageFeatured image for the item detail page
Gallery imagesMultiple images displayed in a gallery
External URLLink to venue website, reservation, etc.
IconCategory icon for visual identification

Access controls

Items can be restricted to specific people:

FieldDescription
Requires authItem only visible to signed-in users
Required add-onOnly visible to attendees who purchased a specific add-on
PermissionsEmail or group-based access (via schedule item permissions)

This is useful for optional activities that only certain groups should see.

Day-to-day management

Reordering

From /admin/schedule, drag to reorder days and items within days. Sort order changes are saved automatically.

Editing items

Click any item to open /admin/schedule/[id] for full editing. All fields can be updated at any time.

Deleting items

Remove items or entire days from the schedule. Deleting a day cascades to all its items.

Attendee experience

Schedule page

Attendees visit /schedule to see the full agenda organized by day:

  • Each day shows its label and date
  • Items display time, title, description, and category icon
  • Location details show venue name and a map link (if coordinates provided)
  • Items with access restrictions only appear for authorized users

Item detail pages

Clicking an item opens /schedule/[id] with:

  • Full description and notes (rendered from Markdown)
  • Hero image and gallery
  • Location with map embed (if coordinates set)
  • External links
  • Directions notes

Access-controlled items

Items restricted by group or email permissions:

  • Show normally for authorized users
  • Are hidden from unauthorized users
  • Items requiring a purchased add-on are visible but may show a "requires purchase" indicator

Troubleshooting

SymptomFix
Item missing from scheduleCheck requiresAuth, permissions, and add-on requirements
Wrong time displayEdit the item and verify the time format
Broken location linkVerify the address or coordinates are correct
Reorder not savedConfirm the drag action completed (check for errors)
Detail page not foundVerify the item ID and route parameter
Item on wrong dayCheck the day assignment in the item editor

Next steps

Released under the MIT License.