UI + UX Task And Workflow Patterns established

Scheduling

Provide a scheduling workflow that gathers event details, checks availability and constraints, previews conflicts and timezone effects, supports recurrence and reminders, distinguishes save versus send, and provides clear reschedule, cancellation, and response states.

Decision first

Choose this pattern when the problem matches

Use when

  • Users coordinate time across people, resources, calendars, availability, or recurrence.
  • Conflicts, timezone, reminders, invitations, or response state matter.
  • The product can compute or at least expose availability and schedule consequences before saving or sending.

Avoid when

  • The user only needs one remembered date or time field.
  • The task is customer booking of a fixed service slot with provider confirmation and cancellation rules.
  • The product only displays existing events without creating or changing them.
  • The system cannot expose or validate availability, timezone, or send outcome.
  • The event is so simple that inline date and time fields with clear labels are sufficient.

Problem it prevents

Scheduling fails when products reduce the task to date and time fields, hiding availability, attendees, calendars, rooms, recurrence, timezone, buffers, reminders, invitation state, and the difference between saving a draft and sending a scheduled event.

Pattern anatomy

What a strong implementation has to make clear

User need

The user is arranging time for a meeting, event, availability schedule, class, service window, internal review, reminder, or recurring series.

Pattern promise

Provide a scheduling workflow that gathers event details, checks availability and constraints, previews conflicts and timezone effects, supports recurrence and reminders, distinguishes save versus send, and provides clear reschedule, cancellation, and response states.

Required state

Draft event state

Recovery path

Required attendees are double-booked because free/busy data was not shown.

Access contract

Use labelled fields for title, attendees, required/optional role, date, start time, end time, timezone, recurrence, location, conferencing, reminders, and calendar selection.

Quality bar

The difference between expert and weak execution

Strong implementation

Specific, visible, recoverable

  • A meeting scheduler shows required attendees, free/busy bars, suggested times, selected timezone, room availability, video link, recurrence, reminders, and a Send invitation button.
  • An availability schedule editor shows working hours, buffers before and after meetings, minimum notice, maximum bookings per day, checked calendars, and start time increments before sharing the scheduling page.
  • A team lead adds three required attendees, sees one conflict at 10:00, chooses an 11:30 suggested time, adds a room and video link, sends invitations, and sees pending responses.
  • A consultant sets availability from 9:00 to 15:00, adds 15-minute buffers, locks the event to Europe/London, limits bookings to four per day, and checks the public scheduling page.
Weak implementation

Vague, hidden, hard to recover from

  • A form asks for date and time only, then sends invitations without checking attendee or room conflicts.
  • A recurring event editor hides whether changes apply to one occurrence or the whole series.
  • A scheduler sees an empty-looking time grid because hidden calendars are not included, books a meeting, and later discovers the host is already busy.
  • A user moves one weekly event and unintentionally shifts every event in the series.
UI guidance
  • Render scheduling as a coordinated time-planning workflow with title, calendar, attendees, required and optional people, rooms or resources, location or conference link, date, start and end time, timezone, recurrence, availability, reminders, and save or send outcome.
  • Show free/busy conflicts, unavailable resources, hidden calendars, buffer rules, minimum notice, maximum bookings, recurrence scope, attendee response state, and timezone interpretation as explicit states rather than treating scheduling as only date and time entry.
UX guidance
  • Use scheduling when users arrange a meeting, event, availability rule, or recurring time plan that must account for people, calendars, rooms, buffers, time zones, recurrence, reminders, invitations, or conflicts.
  • Keep users clear about whether they are drafting, saving to their own calendar, sending invitations, rescheduling one occurrence, changing a full series, or publishing availability for others to choose.
Implementation contract

What the implementation must handle

States

  • Draft event state
  • Attendee entry and resolution state
  • Availability loading state
  • Free/busy conflict state

Interaction

  • Changing date, time, duration, attendees, resources, timezone, recurrence, or checked calendars recomputes availability before send.
  • Required attendee and resource conflicts block or warn before sending, while optional attendee conflicts are clearly marked as optional.
  • Suggested times identify why they are available, which people and rooms are free, and what timezone is displayed.
  • Saving to a personal calendar and sending invitations are distinct actions when the platform supports both.

Accessibility

  • Use labelled fields for title, attendees, required/optional role, date, start time, end time, timezone, recurrence, location, conferencing, reminders, and calendar selection.
  • Announce availability loading, conflicts, suggested times, stale availability, invitation sent, saved draft, response updates, rescheduled, and canceled states through status text.
  • Do not rely on color alone for busy, free, tentative, accepted, declined, optional, required, room unavailable, or conflict states.
  • Make attendee chips, suggested time choices, room options, recurrence controls, reminder controls, Save, Send, Reschedule, and Cancel keyboard reachable.

Review

  • Who or what is being scheduled, and which participants or resources are required?
  • Which calendars, working hours, buffers, and availability rules are included or hidden?
  • What timezone is the user seeing, and will attendees see the same local time?
  • Is this a one-time event, recurring series, one occurrence, or availability schedule?
Interactive lab

Inspect the states before you copy the pattern

Coordinate time across people and calendars

Build a meeting schedule with attendees, free/busy availability, suggested times, room conflict, timezone, recurrence, reminders, save-versus-send, pending responses, reschedule, cancel, stale availability, and compare date-only, hidden-conflict, timezone-shift, series-mistake, no-send-state, and stale-slot failures.

Scheduling
Interactive demo is ready

Launch the live UI/UX lab when you want to inspect states, keyboard behavior, and common failure modes.

State To Inspect

Draft event state

Keyboard / Access

Tab order follows title, attendees, availability summary, date, start time, end time, timezone, recurrence, room, conferencing, reminders, and action controls.

Avoid Generating

Treating scheduling as only a date field and a time field.

Evidence trail

Source-backed claims behind this guidance

Google Calendar create an event

Google Calendar Help - checked

Google Calendar supports event details, calendar selection, guests, rooms, location, conferencing, attachments, and save behavior.

Google Calendar appointment schedules

Google Calendar Help - checked

Google Calendar supports availability, appointment duration, buffer time, maximum bookings, selected calendars, and conflict checks.

Outlook schedule a meeting or event

Microsoft Support - checked

Outlook supports Scheduling Assistant free/busy visibility, recurrence, suggested slots, and manual date and start/end time entry.

Outlook on the web scheduling

Microsoft Support - checked

Outlook on the web supports free/busy Scheduling Assistant, recurring meetings, save or send behavior, and multi-timezone scheduling context.

Calendly availability settings

Calendly Help - checked

Calendly supports limits, buffers, free/busy rules, start time increments, notice periods, date ranges, and saving availability settings.

Calendly time zones overview

Calendly Help - checked

Calendly supports local timezone detection, timezone choice, locked event timezones, and event-specific timezone behavior.

Full agent/debug reference

Problem Context

  • The user is arranging time for a meeting, event, availability schedule, class, service window, internal review, reminder, or recurring series.
  • The schedule may involve required and optional attendees, rooms, resources, calendars, conferencing, location, agenda, attachments, and reminders.
  • Availability can depend on free/busy calendars, hidden calendars, working hours, buffers, minimum notice, maximum bookings, resource capacity, and attendee response.
  • Timezone, daylight saving, locale, recurrence expansion, and travel can change what a displayed time means.
  • Scheduling may create invitations, reserve calendar time, publish availability, notify people, update a series, or reschedule/cancel existing events.

Selection Rules

  • Choose scheduling when users coordinate time across participants, calendars, availability, resources, recurrence, reminders, or invitations.
  • Use booking when an invitee or customer reserves an available service, resource, or appointment slot with capacity, confirmation, cancellation, or payment rules.
  • Use calendar view when users need to inspect existing scheduled events by spatial placement rather than complete the scheduling workflow.
  • Use date picker or time picker for single field entry inside scheduling only when availability and conflict rules are handled elsewhere.
  • Use date range picker when selecting a span is the main input, not when attendees, recurrence, reminders, and invitations define the task.
  • Use notification center for schedule-related alerts and responses, not as the scheduling editor.
  • Expose required attendees, optional attendees, room or resource availability, selected calendar, timezone, duration, recurrence, reminders, and send/save outcome before committing.
  • Show conflicts and suggested alternatives when required attendees, rooms, checked calendars, or buffers are unavailable.
  • For recurring events, show recurrence pattern, timezone, end condition, exceptions, and edit scope for one occurrence or the whole series.
  • Distinguish draft, saved only, invitation sent, pending responses, accepted, declined, tentative, rescheduled, canceled, and failed-send states.

Required States

  • Draft event state
  • Attendee entry and resolution state
  • Availability loading state
  • Free/busy conflict state
  • Suggested time state
  • Room or resource unavailable state
  • Timezone selected or changed state
  • Recurring series setup state
  • Edit one occurrence or full series state
  • Reminder and notification setup state
  • Save without sending state
  • Send invitation state
  • Pending attendee response state
  • Accepted, declined, or tentative response state
  • Reschedule state
  • Cancel event state
  • Failed send or stale availability state

Interaction Contract

  • Changing date, time, duration, attendees, resources, timezone, recurrence, or checked calendars recomputes availability before send.
  • Required attendee and resource conflicts block or warn before sending, while optional attendee conflicts are clearly marked as optional.
  • Suggested times identify why they are available, which people and rooms are free, and what timezone is displayed.
  • Saving to a personal calendar and sending invitations are distinct actions when the platform supports both.
  • Recurring events preserve timezone and require users to choose whether edits affect one occurrence, future occurrences, or the full series.
  • Rescheduling retains agenda, conferencing, attachments, reminders, attendees, and response history unless the user changes them.
  • Cancellation explains whether notifications will be sent and whether rooms, resources, and availability slots are released.
  • Notifications and calendar updates deep-link back to the current event state rather than stale draft details.

Implementation Checklist

  • Define event fields, attendee roles, room/resource model, availability sources, checked calendars, timezone policy, recurrence rules, reminder rules, save/send semantics, and audit or notification requirements.
  • Build availability checks for attendee free/busy, rooms, resources, buffers, working hours, minimum notice, maximum bookings, hidden calendars, and permission-limited calendars.
  • Expose date, start time, end time, duration, timezone, recurrence, location, conferencing, calendar selection, reminders, attachments, and description with validation and conflict states.
  • Add suggested time logic that names available people/resources and explains why a time is blocked.
  • Implement recurrence expansion, exception editing, timezone stability, daylight-saving checks, and series edit scope.
  • Support save draft, save without sending, send invitations, reschedule, cancel, remove attendee, change room, and update reminders with clear status messages.
  • Test required attendee conflict, optional attendee conflict, room unavailable, hidden calendar, timezone change, recurring series, one-occurrence edit, daylight-saving boundary, stale availability, failed invitation send, mobile, keyboard, and screen reader status updates.

Common Generated-UI Mistakes

  • Treating scheduling as only a date field and a time field.
  • Hiding attendee or room conflicts until after invitations are sent.
  • Sending invitations when users expected to save a draft.
  • Changing an entire recurring series when users intended one occurrence.
  • Showing times without timezone when attendees are in different regions.
  • Ignoring buffers, minimum notice, maximum daily meetings, or checked calendars.
  • Treating optional attendee conflicts the same as required attendee conflicts.
  • Letting stale availability produce double-booked meetings.

Critique Questions

  • Who or what is being scheduled, and which participants or resources are required?
  • Which calendars, working hours, buffers, and availability rules are included or hidden?
  • What timezone is the user seeing, and will attendees see the same local time?
  • Is this a one-time event, recurring series, one occurrence, or availability schedule?
  • Does the action save a draft, reserve time, send invitations, publish availability, reschedule, or cancel?
  • What happens when availability changes between viewing the schedule and sending it?
Accessibility
  • Use labelled fields for title, attendees, required/optional role, date, start time, end time, timezone, recurrence, location, conferencing, reminders, and calendar selection.
  • Announce availability loading, conflicts, suggested times, stale availability, invitation sent, saved draft, response updates, rescheduled, and canceled states through status text.
  • Do not rely on color alone for busy, free, tentative, accepted, declined, optional, required, room unavailable, or conflict states.
  • Make attendee chips, suggested time choices, room options, recurrence controls, reminder controls, Save, Send, Reschedule, and Cancel keyboard reachable.
  • Associate conflict messages with the attendee, room, date, time, or recurrence field that caused them.
  • Expose timezone and daylight-saving information as text near the time controls.
  • Preserve focus after availability refresh, suggested-time selection, recurrence edit, send, reschedule, cancel, and error recovery.
Keyboard Behavior
  • Tab order follows title, attendees, availability summary, date, start time, end time, timezone, recurrence, room, conferencing, reminders, and action controls.
  • Attendee entry supports keyboard selection and removal without losing typed values.
  • Suggested times are reachable as buttons or options with accessible conflict summaries.
  • Changing date, time, attendee, room, or timezone does not move focus unexpectedly while availability refreshes.
  • After selecting a suggested time, focus moves to the updated availability summary or next required field.
  • After sending or saving, focus moves to the event status and next action.
Variants
  • Meeting scheduling
  • Event scheduling
  • Availability schedule
  • Appointment schedule setup
  • Recurring meeting setup
  • Scheduling assistant
  • Resource scheduling
  • Room scheduling
  • Team scheduling
  • Rescheduling
  • Cancel scheduled event

Verification

Last verified: