Service appointment scheduling (provider side)
Book, move and resolve multi-resource appointments for salons, clinics or repair shops.
20 project-authored proposals · taxonomy v1.1 · 0 new benchmark runs. Verifiers and partial-credit rules below are designs, not executed results.
- Typical applications
- Square Appointments · Mindbody · Acuity Scheduling
- Class GUI-need label
G2· GUI-essential
Task proposals · 20
Expand to inspect the complete original wording and proposed checks. Original proposal text remains English in both interfaces.
R05.13.01.08-T01 Book six Saturday salon services with skills and buffers
Original instruction
Square Appointments sandbox seller 'Bloom Salon'. Book the 6 Saturday requests in fixtures/requests.txt (client, service, earliest/latest time) honoring each stylist's service list in fixtures/skills.csv and a 15-minute cleanup buffer after color services. No double-booking; leave existing bookings untouched.
- Platforms
web· Any OS (web)- Applications
- Square Appointments
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicknav· Pan/zoom/scrolldrag· Drag & drop- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 4 / 5
Proposed verifier
Grader reads bookings via Square sandbox Bookings API with its own token: 6 new bookings within each client's window, stylist qualified, buffers respected, no overlaps, 9 seed bookings unchanged. The agent has only a Dashboard session; Bookings API calls with any other app's token are detected in the sandbox API log -> 0.
Proposed partial credit
40% all six booked in window; 25% stylist skills respected; 20% buffers and no overlaps; 15% seed bookings intact
R05.13.01.08-T02 Reassign a sick practitioner's day in a clinic schedule
Original instruction
Mindbody sandbox site, physiotherapist Dr. Lee is sick on 2026-10-21. Move each of her 9 appointments to a qualified practitioner (fixtures/quals.csv) at the same time if free, otherwise within +/- 2 hours the same day; if impossible, cancel with reason 'Practitioner unavailable' and add the client to the waitlist note. Do not send texts.
- Platforms
web· Any OS (web)- Applications
- Mindbody
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicknav· Pan/zoom/scrolldrag· Drag & drop- Work product
WP08· App/system state- Conditions
long· Long-horizon- Proposed difficulty
- 5 / 5
Proposed verifier
Grader via Mindbody Public API (sandbox, grader key): each of the 9 appointments either moved to a qualified staff within the window (no conflicts) or cancelled with the exact reason when the grader's solver proves no slot; notification flag off. Agent has no API key; staff-app session only, API activity by other keys detected -> 0.
Proposed partial credit
40% feasible appointments reassigned validly; 25% infeasible ones cancelled correctly; 20% no conflicts created; 15% no notifications sent
R05.13.01.08-T03 Set up services and working plans in Easy!Appointments
Original instruction
In self-hosted Easy!Appointments for 'FixIt Repair', create services Screen Repair (60 min, $120), Battery Swap (30 min, $70) and Diagnostics (20 min, free) in category Phones; create providers Ana, Ben, Cy with the working plans and breaks in fixtures/hours.csv, each offering only their listed services.
- Platforms
web· Any OS (web)- Applications
- Easy!Appointments
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
MySQL: ea_services rows exact (duration, price, category); ea_users providers with working_plan JSON equal to fixture incl. breaks; ea_services_providers links exact. Agent lacks API credentials (REST API disabled); direct DB access not reachable from the agent VM.
Proposed partial credit
30% services exact; 45% working plans with breaks; 25% provider-service links
R05.13.01.08-T04 Block holiday and recurring lunch time in Acuity
Original instruction
In the Acuity Scheduling test account, block off 2026-12-24 to 2026-12-26 for all calendars, add a recurring weekday lunch block 12:30-13:15 on calendar 'Dr. Patel' for the next 8 weeks, and make sure no existing appointment is cancelled.
- Platforms
web· Any OS (web)- Applications
- Acuity Scheduling
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 2 / 5
Proposed verifier
Grader via Acuity API (its own key): blocks exist for each calendar on the 3 holiday dates; 40 lunch blocks on Dr. Patel weekdays; appointment list identical to seed (no cancellations). The agent's user has no API key; API requests from other keys detected -> 0.
Proposed partial credit
40% holiday blocks on all calendars; 45% recurring lunch blocks; 15% no appointments cancelled
R05.13.01.08-T05 Recurring yoga class with capacity and waitlist
Original instruction
Mindbody sandbox: create class 'Morning Flow' in Yoga Studio A taught by Mia, every Tuesday and Thursday 07:00-08:00 from 2026-11-03 for 10 weeks, capacity 12, waitlist 5, online booking enabled, and skip 2026-11-26 (holiday).
- Platforms
web· Any OS (web)- Applications
- Mindbody
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Grader (Public API, grader key): 19 class instances with exact times, room, teacher, MaxCapacity 12, waitlist size 5, web bookable; none on 11-26. Agent has no API key; class creation by other API keys detected -> 0.
Proposed partial credit
40% schedule dates and times; 30% capacity and waitlist; 15% holiday skipped; 15% online booking on
R05.13.01.08-T06 Allocate a single hot-stone kit across spa bookings
Original instruction
Square Appointments sandbox 'Calm Spa' uses resources (rooms R1-R3, one hot-stone kit). Schedule the 8 requests in fixtures/spa_requests.csv on 2026-10-24: each massage needs a room and a qualified therapist; hot-stone sessions also need the kit plus 20 min for heating between uses. Maximize the number booked; write unbookable request ids to ~/out/unbooked.txt.
- Platforms
web· Any OS (web)- Applications
- Square Appointments
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicknav· Pan/zoom/scrolldrag· Drag & drop- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 5 / 5
Proposed verifier
Grader solver gives the max feasible count (6); bookings via sandbox API must be resource-feasible with kit gaps >= 20 min and count = 6; unbooked.txt lists the rest. Dashboard session only; Bookings API writes by non-dashboard apps detected -> 0.
Proposed partial credit
45% booked count reaches optimum; 35% all constraints satisfied; 20% unbooked list correct
R05.13.01.08-T07 Process no-shows and apply the no-show fee
Original instruction
In the Square Appointments sandbox, mark the 4 appointments from 2026-10-13 listed in fixtures/noshows.txt as no-show and charge each client's card on file the $25 no-show fee per policy (sandbox test cards). Do not touch the 2 clients who called to cancel (listed separately).
- Platforms
web· Any OS (web)- Applications
- Square Appointments
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & click- Work product
WP08· App/system state- Conditions
risk· Irreversible/risky- Proposed difficulty
- 3 / 5
Proposed verifier
Grader sandbox API: 4 bookings status NO_SHOW, 4 sandbox payments of 2500 cents linked to those customers; the 2 cancelled bookings unchanged with no charge. Agent has no API token; payments created by non-dashboard apps detected in the sandbox log -> 0.
Proposed partial credit
40% four marked no-show; 40% four correct fee charges; 20% cancelled clients untouched
R05.13.01.08-T08 Round-robin team event in self-hosted Cal.com
Original instruction
In self-hosted Cal.com team 'Support', create event type 'Onboarding call' (45 min) with round-robin across Ana, Ben and Cy, minimum notice 4 h, 15-min buffer after, max 3 bookings per host per day, available Mon-Fri 09:00-17:00 Europe/Berlin, and a required booking question 'Company size' (select).
- Platforms
web· Any OS (web)- Applications
- Cal.com
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Postgres: EventType row schedulingType ROUND_ROBIN, 3 hosts, length 45, minimumBookingNotice 240, afterEventBuffer 15, bookingLimits per-day 3, schedule/timezone, bookingFields with required select. API keys are not issued to the agent; API-key-authenticated requests detected in the server log -> 0.
Proposed partial credit
30% event basics and round-robin hosts; 30% notice, buffer and limits; 20% availability; 20% booking question
R05.13.01.08-T09 Fill a cancellation from the waitlist in priority order
Original instruction
Client Jo cancelled the 14:00 colour appointment with stylist Rae on 2026-10-22 (Acuity test account). Cancel it, then offer the slot to waitlisted clients in fixtures/waitlist.csv in priority order, skipping clients whose requested service no longer fits the freed duration; book the first eligible client and note 'from waitlist' in the appointment.
- Platforms
web· Any OS (web)- Applications
- Acuity Scheduling
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Grader (Acuity API, own key): Jo's appointment cancelled; new appointment for the correct eligible client (3rd in list) at 14:00 with Rae, service fits the gap, note text exact; no other changes. Agent has no API key; API-key writes detected -> 0.
Proposed partial credit
20% cancellation done; 55% correct waitlist client booked; 25% note added and no collateral changes
R05.13.01.08-T10 Simultaneous family haircuts across two stylists
Original instruction
Book the Nguyen family (2 adults, 2 kids) for haircuts on Saturday 2026-10-24 in the Square sandbox so that all four finish within 75 minutes of the first start, using only stylists qualified for kids' cuts for the children, and link the bookings with the note 'Family group'.
- Platforms
web· Any OS (web)- Applications
- Square Appointments
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicknav· Pan/zoom/scrolldrag· Drag & drop- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 4 / 5
Proposed verifier
Grader sandbox API: 4 bookings for the 4 customer profiles, kids with kid-qualified stylists, span first start to last end <= 75 min, no overlaps per stylist, notes present. Dashboard session only; API writes from other apps detected -> 0.
Proposed partial credit
35% four bookings created; 25% qualification rule; 30% 75-minute window met without overlaps; 10% notes
R05.13.01.08-T11 Relocate an entire closure day across the next three days
Original instruction
The salon (Square sandbox) closes unexpectedly on 2026-11-26. Move all 17 appointments to 11-27..11-29 with the same staff if possible (else a qualified one), honoring each client's preference in their profile notes (e.g. 'mornings only'); add the closure as a business-hours exception; do not notify clients yet.
- Platforms
web· Any OS (web)- Applications
- Square Appointments
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicknav· Pan/zoom/scrolldrag· Drag & drop- Work product
WP08· App/system state- Conditions
long· Long-horizonpersonal· Personal context- Proposed difficulty
- 5 / 5
Proposed verifier
Grader sandbox API: no bookings on 11-26; all 17 present on 11-27..29, qualified staff, preferences satisfied (checked by rules parsed from notes), same-staff rate >= the grader solver's optimum minus 1; closure exception set; notification flags off. Dashboard session only; API writes detected -> 0.
Proposed partial credit
35% all appointments moved without conflict; 25% client preferences honored; 25% staff continuity near optimum; 15% closure set and no notices
R05.13.01.08-T12 Attach a required intake form to a service
Original instruction
In the Acuity test account create intake form 'New patient intake' with fields: Date of birth (required, date), Allergies (required, textbox), Referral source (dropdown: Web, Friend, Doctor), Consent (required checkbox). Attach it only to appointment types 'Initial consult' and 'Telehealth initial'.
- Platforms
web· Any OS (web)- Applications
- Acuity Scheduling
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 2 / 5
Proposed verifier
Grader Acuity API /forms: form with 4 fields, exact types, required flags and options; appointmentTypeIDs exactly the 2 types. Agent has no API key; form edits via API keys detected -> 0.
Proposed partial credit
60% fields exact; 40% attached to exactly the two types
R05.13.01.08-T13 Book a 5-session package around a holiday
Original instruction
Mindbody sandbox: client Sam bought the '5 x Physio 45' package. Apply it to his account, then book 5 weekly sessions with Dr. Okafor on Wednesdays at 10:00 starting 2026-11-04; one Wednesday is a clinic holiday: book that week's session on the nearest open weekday at 10:00 with the same practitioner.
- Platforms
web· Any OS (web)- Applications
- Mindbody
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicknav· Pan/zoom/scroll- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 4 / 5
Proposed verifier
Grader Public API: Sam's client service shows the package with 5 sessions consumed; 5 appointments with Okafor at 10:00, four on Wednesdays, the holiday week moved to the nearest open weekday (gold); each paid by the package. Agent has no API key; API writes detected -> 0.
Proposed partial credit
25% package applied; 40% four regular sessions booked; 25% holiday session placed correctly; 10% sessions draw from package
R05.13.01.08-T14 Resolve calendar-sync conflicts with a stylist's Google Calendar
Original instruction
Stylist Rae's Google Calendar (test account) is synced to Acuity. Three Acuity appointments next week now overlap private events she added. Per fixtures/conflict_rules.md (private events win unless marked 'movable'), reschedule the affected Acuity appointments to the next free slot the same day or mark the Google event as free when allowed.
- Platforms
web· Any OS (web)- Applications
- Acuity Scheduling · Google Calendar
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicknav· Pan/zoom/scrolldrag· Drag & dropmulti· Cross-app- Work product
WP08· App/system state- Conditions
multiapp· Multi-app- Proposed difficulty
- 4 / 5
Proposed verifier
Grader (Acuity API, Calendar API with own creds): no overlaps between Acuity appointments and busy Google events next week; actions match rules (2 reschedules to correct slots, 1 event transparency=transparent). Agent has no API keys; API writes from other clients detected in both logs -> 0.
Proposed partial credit
40% conflicts removed; 40% correct action per rule; 20% no other events changed
R05.13.01.08-T15 Onboard a new staff member with custom hours
Original instruction
In Square Appointments sandbox add team member 'Lena Ortiz' (stylist), bookable online, offering only Women's Cut and Blow-dry, with hours Tue-Sat 10:00-18:00 and a recurring Wednesday 14:00-15:00 break.
- Platforms
web· Any OS (web)- Applications
- Square Appointments
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 2 / 5
Proposed verifier
Grader sandbox API: team member exists with booking profile is_bookable=true; service variations assigned are exactly the 2; availability (team member booking profile / business hours) equals spec incl. the break. Dashboard session only; API calls by other apps detected -> 0.
Proposed partial credit
25% team member created and bookable; 35% services exactly two; 40% hours and break
R05.13.01.08-T16 Configure deposits, cancellation window and booking site
Original instruction
Square Appointments sandbox 'Bloom Salon': require a 20% deposit for color services only, set a 24-hour cancellation policy with a 50% late fee message, booking lead time minimum 2 hours and max 60 days ahead, and hide the service 'Staff training' from the online booking site.
- Platforms
web· Any OS (web)- Applications
- Square Appointments
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Grader sandbox API + booking site scrape: business booking profile lead-time settings exact; color service variations carry deposit config; cancellation policy text and window; 'Staff training' absent from public site listing. Dashboard-only settings, no API token for agent; changes by other apps detected -> 0.
Proposed partial credit
30% deposits on color only; 30% cancellation policy; 25% lead and horizon times; 15% service hidden
R05.13.01.08-T17 Schedule drop-offs into limited repair bays
Original instruction
FixIt Repair (Easy!Appointments) has 3 service bays per hour, modeled as provider 'Bay' with 3 attendants. Book the 9 drop-off requests from fixtures/email_requests.eml for 2026-10-23 minimizing customer wait vs their preferred time, never exceeding 3 per hour, and write each customer's confirmation slot to ~/out/slots.csv.
- Platforms
web· Any OS (web)- Applications
- Easy!Appointments · Thunderbird
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicknav· Pan/zoom/scrollmulti· Cross-app- Work product
WP08· App/system state- Conditions
multiapp· Multi-app- Proposed difficulty
- 4 / 5
Proposed verifier
Grader MySQL: 9 appointments, per-hour count <= 3, total wait equals the grader's optimum; slots.csv equals DB. REST API disabled for the agent; DB not reachable from agent VM, so bookings must come through the backend UI session.
Proposed partial credit
35% all nine booked within capacity; 40% total wait optimal; 25% slots.csv correct
R05.13.01.08-T18 Adjust future bookings after a service duration change
Original instruction
In Acuity, 'Men's Cut' grows from 30 to 45 minutes from 2026-11-01. Update the appointment type, then for each of the 14 future Men's Cut bookings extend it to 45 min if the calendar allows; otherwise leave it and add it to ~/out/flagged.csv with client and time.
- Platforms
web· Any OS (web)- Applications
- Acuity Scheduling
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicknav· Pan/zoom/scroll- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 4 / 5
Proposed verifier
Grader Acuity API: type duration 45; each future booking either 45 min without overlap or unchanged and listed in flagged.csv; flagged set equals the grader's computed infeasible set (4). Agent has no API key; edits by API keys detected -> 0.
Proposed partial credit
20% type duration updated; 50% feasible bookings extended; 30% flagged list exact
R05.13.01.08-T19 Report weekly booked hours per staff from the calendar
Original instruction
From the self-hosted Easy!Appointments backend calendar (no export feature), compute each provider's booked hours for the week of 2026-10-19 (excluding breaks and cancelled appointments) and write ~/out/utilization.csv with provider,booked_hours,available_hours,utilization (2 dp).
- Platforms
web· Any OS (web)- Applications
- Easy!Appointments
- Interfaces
brow· Browser- GUI need · task setting
G3· GUI-only- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
nav· Pan/zoom/scrollvis· Visual judgmentclick· Point & click- Work product
WP12· Answer/decision- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Grader computes from MySQL; CSV values must match to 0.01 h. Easy!Appointments REST API is disabled and the DB is not reachable from the agent VM, so the data is available only through the backend calendar UI (GUI-only property).
Proposed partial credit
50% booked hours correct; 30% available hours; 20% utilization ratios
R05.13.01.08-T20 Ambiguous rebooking request: ask instead of guessing
Original instruction
A message in the Square sandbox inbox from client Dana says: 'Same as last time with Maria next Tuesday please.' Dana had two different services last time, and Maria does not work Tuesdays. Handle it in the booking tool appropriately.
- Platforms
web· Any OS (web)- Applications
- Square Appointments
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP08· App/system state- Conditions
clarify· Ask when unclear- Proposed difficulty
- 3 / 5
Proposed verifier
Pass requires no new booking for Dana and a reply in the sandbox message thread that asks which service and offers Maria's next working days or another stylist on Tuesday (LLM rubric on the reply text, as nothing deterministic exists). Dashboard session only; any booking created via API detected -> 0.
Proposed partial credit
40% no booking made; 60% reply asks about service and offers concrete alternatives
Mapped research references
No benchmark reference is assigned to this class in the current mapping.
In this workflow family
- R05.13.01.01 Hotel & restaurant operations (PMS, POS)
- R05.13.01.02 Retail store & point-of-sale operations
- R05.13.01.03 Real estate & property management
- R05.13.01.04 Insurance claims & underwriting
- R05.13.01.05 Banking & lending operations
- R05.13.01.06 Construction estimating & field management
- R05.13.01.07 Facility & building automation operations