Skip to content

SharePoint Event Waitlist for the Booking Application

How we built the waitlist in Smarter Event Booking: automatic promotion when seats free up, email notifications, and simple management directly in SharePoint.

We’ve already introduced our event booking application. When all seats for a given event date are taken, our new waitlist feature steps in. In this post, we share how we implemented it in Smarter Event Booking.

Join the event waitlist

Users can register for specific event dates. Each date has a fixed capacity. If all seats are booked, the interface clearly indicates this for that date, and users can add themselves to the waitlist with a single click on “Join waitlist”.

SharePoint event waitlist: all seats taken — visual indicator

If a registered participant cancels, the next person on the waitlist is automatically promoted to a confirmed attendee, and receives an email notification.

Users can also remove themselves from the waitlist at any time.

SharePoint event waitlist: remove yourself from the waitlist

Technical implementation

We added a new field “Warteliste” (waitlist) of type “Multiple lines of text” to the event date list. It stores the user’s ID, name, and email address in JSON format.

Example:

[{"id":13,"title":"Verena Schönleitner","email":"verena@openinnovationhub.onmicrosoft.com"}]

When a user joins the waitlist, we append them to the “Warteliste” field.

let waitingList: IAttendee[] = listItem.Warteliste 
  ? (JSON.parse(listItem.Warteliste) as IAttendee[])
  : [];

const updatedListItem = await sp.web.lists
  .getByTitle(this.eventDateList)
  .items.getById(eventDate.id)
  .update({
    Warteliste: this.serializeWaitingList([...waitingList, attendee]),
  });

When a confirmed attendee cancels, we read the waitlist, remove the first entry, and add them to the attendees. We then notify the promoted user by email.

let existingAttendeeIds = listItem.Teilnehmer !== undefined 
  ? listItem.Teilnehmer.filter((t) => t.Id !== attendee.id)
  : [];

const waitingList: IAttendee[] = listItem.Warteliste !== undefined 
  ? (JSON.parse(listItem.Warteliste) as IAttendee[])
  : [];

// Moves the first attendee from waiting list up
let waitingListAttendeeElevated = false;
let waitingListAttendee: IAttendee | undefined;
if (waitingList && waitingList.length > 0) {
  waitingListAttendee = waitingList.shift();
  existingAttendeeIds = [...existingAttendeeIds, waitingListAttendee.id];
  waitingListAttendeeElevated = true;
}

const updatedListItem = await sp.web.lists
  .getByTitle(this.eventDateList)
  .items.getById(eventDate.id)
  .update({
    TeilnehmerId: { results: [...existingAttendeeIds] },
    Warteliste: this.serializeWaitingList(waitingList),
  });

// Send mail if attendee moves up from waiting list
if (waitingListAttendeeElevated && waitingListAttendee) {
  await this.sendEmailToAttendee(event, updatedEventDate, waitingListAttendee);
}

Conclusion

The built‑in waitlist automatically fills freed‑up seats and keeps everyone informed. Want to learn more about our SharePoint event waitlist? Get in touch.

Related articles

Smarter Event Booking 1.5.0: Outlook invitations, day
Smarter Event Booking 1.5: the day schedule in the edit form and an Outlook meeting request, captioned “Outlook invitations · Day schedule · Archive per event”

Smarter Event Booking 1.5.0: Outlook invitations, day schedule, archive

The new version: the confirmation as a real Outlook invitation, time slots edited in a table and a day schedule, and one message to all attendees of an event.

Read more
Smarter Event Booking 1.4.0: series, time slots,
Card view of Smarter Event Booking showing event images, a date badge and seat availability

Smarter Event Booking 1.4.0: series, time slots, carousel

The new version on Microsoft Marketplace: one form for every kind of date, time slots for vaccination days, a waiting list and a card row for your home page.

Read more
Smarter Event Booking 1.1.0: The Major Update for
Smarter Event Booking 1.1.0: The Major Update for Modern Event Management

Smarter Event Booking 1.1.0: The Major Update for Modern Event Management

New views, event types, modernized interface and numerous new features – Smarter Event Booking v1.1.0 sets new standards for event management in SharePoint Online.

Read more

Questions about this topic?

We are happy to help you put this into practice in your environment.