Instructor Time Off Scheduling App

My Role

UX and UI Designer

Launch Date

Summer 2016


Like any business, the strength of SoulCycle lies in its product. But unlike most businesses, SoulCycle's product isn’t a good or technology, but rather an experience, an experience that rests in the hands of an eclectic array of high-powered instructors. Scheduling these instructors in the proper time slots and at the right locations is crucial to the business, but this task is made even more difficult by the fact that many of these instructors also work in the performing arts or in modeling.

Yet when it came to handling instructor time off requests, the SoulCycle scheduling team was still tracking all time away requests in a Google Docs spreadsheet, while requests were being submitted as emails, text messages, phone calls, and Gchats. Obviously, this approach was neither scalable nor effective, so the SoulCycle tech team was asked to create a tool to manage time off requests for the more than 300 instructors who work at SoulCycle. As a business that’s open 365-days a year, the scheduling team also needed robust reporting tools to help them understand what regions or studios were being most affected by time away requests and might be short staffed.

As the UX lead on the project, I was tasked with creating a light-weight digital system that could handle these requirements. After numerous stakeholder interviews, job-shadowing the instructor scheduling team and reviewing their existing time away request documents, the first step was to create a basic user flow that would account for the various steps, both user initiated and system initiated, that would take place when a request was created and then approved or denied.


As the UX lead on the project, I was tasked with creating a light-weight digital system that could handle these requirements. After numerous stakeholder interviews, job-shadowing the instructor scheduling team and reviewing their existing time away request documents, my first step was to create a basic user flow that would account for the various steps, both user-initiated and systeminitiated, that would take place when a request was created and then approved or denied.

Instructor User Flow V1Instructor User Flow V1


As for the actual tool itself, I settled on creating a two-part system - one side for the instructors and one side for the scheduling team with shared design components between the two. On the scheduling team side, the heart of the experience is the request queue and dashboard. By default, the queue is set up to show the newest pending requests that have been received. However, the user is able to apply a range of powerful filters to see a custom segment of requests or to search for a specific request, which our stakeholder interviews had informed us was  vital to the day-to-day use of the tool.

Programming Team Pending Request Queue with FiltersProgramming Team Pending Request Queue with Filters

Users can quickly drill down in the request queue to either filter the requests they see or search for a specific time away request.


Approving or denying requests can be done by simply selecting an existing request from the list which brings the request up as a card overlay on the screen. The request detail view allows the viewer to see any comments associated with the request, a history of any changes made to that request, and also see whether or not it conflicts with another request from that same instructor. Selecting the conflicting request takes the user to a request detail view of the conflicting request.

Pending Request with ConflictPending Request with Conflict

The request detail view shows the instructor's name, the dates away and any comments the instructor has made as well as private comments made by the programming team. On the right, any conflicts with other requests by the same instructor display, as well as a version history to track any edits the programming team has made.


The other core component of the scheduling team side of the tool is reporting view. The reporting view serves a few key functions for the scheduling team. First, it provides them with a week-by-week breakdown of which instructors they’ll need to remove from the schedule and find replacements to teach for them. Second, it helps visualize the number of existing time away requests by date and region which helps the scheduling team make decisions about what requests to approve and deny. The reporting view shares the same filtering dimensions as the request view, so when launching the reporting view, users can simply choose to preserve the existing filter dimensions, rather than having to reapply them to the reporting view.

Generating a Time Away ReportGenerating a Time Away Report

Since reports are generated using the same dimensions that can be used to filter time away request results, I included a report generation option that simply exports the current view as a report, so that users need not re-apply the same filters they've already selected.

Time Away ReportTime Away Report

The time away report is organized by the SoulCycle week (Tuesday-Monday) and is color coded to show type of time away and overlaid with symbols to indicate when it is a pending or denied request as opposed to an approved request.


We also needed to include the ability for the scheduling team to create time away requests on behalf of instructors. While instructors can only request approved time away days (essentially unpaid vacation time), the scheduling team can create approved time away days as well as work travel and medical leave time off requests. This feature also allows the scheduling team to backfill requests that may not have been submitted. Just as when viewing existing requests, any overlapping requests for the selected instructor will be displayed during the request creation process to prevent errors. 

Programming Team Create New RequestProgramming Team Create New Request

Since time away requests created by the programming team automatically skip the "pending" phase and are approved on creation, there is a confirmation screen (not pictured) that follows request creation to ensure all request details are correct.


On the instructor side, I wanted to reuse the design patterns implemented on the scheduling team view of the tool while also creating a simple, intuitive interface to accommodate a user base that’s often on the go and isn’t typically accustomed to using productivity software as a large part of their work day. At the top of the page, the instructor can see any new notifications or messages such as seeing that a time away request has been approved or denied. Below that, they can see a queue of all their time away requests for the year including, pending, denied and approved requests, while the one buttton on the page launches an overlay to create a new time away request.

Instructor Queue with NotificationInstructor Queue with Notification

On log in, any changes to pending requests (programming team edits, approval or denial of a request) will display as a stack of notications above the queue of existing requests.

Instructor Create New ATO RequestInstructor Create New ATO Request

Creating a request is a very streamlined process for instructors since they simply have to select the dates they will be away (which the app restricts to at least two weeks in advance of the current day) and then enter a comment explaining why they will be gone.


Given that most instructors are not working at a desk and don’t always have easy access to a desktop computer, we also wanted to make the time away management tool mobile friendly, something SoulCycle has not typically done for its Directus-based productivity software. In the course of creating a mobile friendly version of the time away request tool, we also decided to redesign the instructor class confirmation tool to make it mobile friendly as well. From a mental model standpoint, confirming scheduled classes and managing time away requests are one and the same for instructors and we wanted to enable them to handle both from their mobile devices.

Mobile Screens ScaledMobile Screens Scaled
Conflict and Confirm ClassesConflict and Confirm Classes


During the course of design, development and QA we continued to circle back with the scheduling team and with some of our instructors to get their input, demo the build and identify any edge cases that might not have been covered in the initial project scope. With the final product now live, there are plenty of opportunities to continue to expand the tool, particularly when it comes to leveraging data to do things like suggesting replacement instructors when a time away request is approved or tracking ATO days taken for the year by instructor. However, the initial launch has already been a huge time saver for the scheduling team. But the instructor feedback was perhaps the most gratifying:

Sean Linehan emailed the scheduling team to say: “So cool! Love all the new features! Just looked at the availability tab - on my phone no less!”

Laura Crago added: "Thank you for this new system, it looks great, and I'm sure will help all parties with this process.”

Kate Champagne said: “Mazel tov! Very exciting!”

And best of all, Kaley Skoglund simply commented, “Are you guys the tits or what?! This is the best!"