
Case Study
From Calendar-First to Patient-First Scheduling
Rethinking how appointment creation works in complex clinical systems
Appointment creation in clinical software is typically calendar-first. Users search for time before they think about the patient. This exploration proposes a system-driven, patient-first model where users express intent and constraints first, and the system finds valid time options.
I designed and prototyped this concept to explore how scheduling could become more intelligent, scalable, and aligned with how people actually work.
Explore the prototypeRole
Lead Product Designer
Team
Leadership
Timeline
2025
Model
SAAS, Health
Tools
Figma, Windsurf (AI-native prototyping), Next.js (demo app)
CONTEXT
Time is a constraint, not the goal
In many clinical systems, appointment creation starts with the calendar. Staff search visually for an open slot, apply filters, scan availability, then attach a patient to the selected time.
This model assumes that time is the primary object. In reality, the primary object is the patient and their needs. The calendar is a constraint, not the goal.
This mismatch creates friction, cognitive load, and inefficiency, especially in environments where staff are responding to incoming calls or in-person requests, appointments vary in length and requirements, and availability depends on multiple overlapping systems and rules.
I wanted to explore what would happen if we inverted the model.
THE PROBLEM
Searching for Time Comes Before Understanding the Patient
Appointment creation begins with scanning the calendar instead of understanding who the patient is and what they need. This reverses the natural workflow of front-desk staff and pushes complexity onto people rather than the system. The software becomes a passive display of availability instead of an active participant in solving the scheduling problem.
HYPOTHESIS
If users start with intent, the system can do the searching
Instead of asking users to find time, we can ask them to express constraints like appointment type and length, patient availability preferences, preferred staff member, and required room or equipment.
The system can then search across availability, rules, and constraints to present valid time options. The user becomes a decision-maker, not a scanner.
EXISTING FLOW
Calendar-first, human-driven scanning
In the calendar-first model, the flow begins with empty time rather than with the patient. Staff visually scan availability, adjust filters to narrow the search, and mentally track possible options while switching context to find the patient and confirm whether the selected slot actually fits their needs and constraints. What should be a matching problem becomes a memory and coordination problem. As appointment types, rules, and resource dependencies grow, the workflow becomes increasingly fragile.

Human work
- Scan availability
- Adjust filters to narrow options
- Track patient times in working memory
- Switch between calendar and patient contexts
- Validate constraints only after selecting a time
System role
- Display available time blocks
- Offer basic filtering controls
- Passive display of availability
PROPOSED FLOW
Patient-first, system-driven matching
Instead of starting with the calendar, the flow begins with the patient. Staff search for or open the patient profile, then initiate appointment creation in that context. They describe the appointment’s intent and constraints such as type, length, preferences, and required resources. The system then searches across availability and rules to identify valid time options, presents a small set of ranked recommendations, and the user selects and confirms the best fit with the patient.

Human work
- Identify the patient and start the flow
- Express intent and constraints
- Review and compare options
- Confirm with patient
System role
- Interpret intent and constraints
- Search availability, rules, and resources
- Rank and present options
- Attribute and update the calendar
PROCESS
AI-native prototyping to explore system behavior
I used Windsurf with structured prompts to generate a clickable prototype quickly. This allowed me to explore interaction patterns without heavy engineering involvement, iterate on flow structure and language rapidly, and focus on system behavior rather than visual polish.
The prototype simulated patient-first initiation, constraint-driven input, system-generated time options, and calendar attribution after confirmation.
I also built a lightweight demo app to make the concept tangible and easy to share.

SOLUTION
System-driven scheduling that starts with the patient
The solution reframes appointment creation as a matching problem: staff define the intent and constraints, and the system does the heavy lifting to surface valid options. This reduces scanning, prevents conflicts, and makes scheduling more consistent as rules and resources grow.
Explore the prototype1 - Patient scheduling overview
Begin in the patient context to review recent activity and current bookings before acting.

2 - Annotations feature
Each page has an annotations feature to assist designers, developer and product managers when refining the design .

3 - Review recommended options
The system evaluates availability and rules, then returns a small ranked set of valid times to choose from.

4 - Confirm and attribute to calendar
Selecting an option creates the appointment, attributes it to the correct calendar block, and confirms success.

VALIDATION
Shared with stakeholders, received positive feedback and healthy caution
I presented the concept and prototype to product and leadership stakeholders. The feedback was positive, particularly around the clarity of the mental model shift, the reduction of manual scanning and guesswork, and the alignment with long-term system scalability.
At the same time, there was healthy caution. This represents a fundamental shift in how users think about scheduling. It touches workflows, habits, training, and expectations across the organization.
This is not a small change.
REFLECTIONS
Shifting system responsibility changes mental models
This project changed how I think about workflow design in complex systems.
System role problems
Many UX problems are actually system role problems.
Mental model change
Shifting responsibility from humans to software often requires changing mental models, not just interfaces.
Adoption is the hardest part
The hardest part of innovation is not design or technology, but adoption.
This concept points toward a future where software does more of the heavy lifting, allowing humans to focus on judgment, conversation, and care. It is aspirational, but it is also realistic about the cost of change.
NEXT
Status and next steps
This concept is not currently on the roadmap.
It exists as a validated idea, a working prototype, and a shared reference point for future discussions.
If and when scheduling is revisited at a system level, this exploration provides a foundation for thinking differently about what scheduling can be.
Explore the prototypeWorking on something ambitious?
I'd love to hear what you're building. Feel free to send me a note.
More Projects
SYCLE
Researched and designed a Payers & Plans feature for 5,000+ clinics and 1M+ patients
OWNLY
Improved homebuyer exploration and pricing flows, boosting conversions 24%
INNODATA
Reimangined Twitter spam moderation workbench, boosting moderator efficiency 22%
SOLINK