Back to compare picker

Scheduling vs Calendar view vs Date picker vs Time picker vs Date range picker vs Notification center vs Conflict state

Use scheduling for arranging a time plan with attendees, availability, recurrence, reminders, and conflicts; booking for reserving a service/resource slot; calendar view for inspecting scheduled items; and date picker for choosing a single date field.

Learn the decision

Match the interaction to the person's task

Use scheduling for arranging a time plan with attendees, availability, recurrence, reminders, and conflicts; booking for reserving a service/resource slot; calendar view for inspecting scheduled items; and date picker for choosing a single date field.

Scheduling

Use it when: Users coordinate time across people, resources, calendars, availability, or recurrence.

Make this state clear: Draft event state

Observe the result: 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.

Study the full pattern →

Calendar view

Use it when: Users need to scan or manage scheduled events across dates, days, weeks, months, or resources.

Make this state clear: Default calendar state with visible range, view mode, timezone, today marker, selected date, and event count.

Observe the result: A dispatcher switches from month to week, opens Wednesday, sees three overlapping room bookings, chooses an available slot, and receives conflict-aware feedback before saving.

Study the full pattern →

Date picker

Use it when: Users are scheduling, booking, planning, or selecting a recent or future date.

Make this state clear: Closed labelled text field with visible date-format hint and calendar button.

Observe the result: A user opens the calendar, sees weekends unavailable, moves to August, chooses Tuesday 11 August 2026, and reviews stored value 2026-08-11.

Study the full pattern →

Time picker

Use it when: Users choose appointment, meeting, delivery, pickup, reminder, or service times.

Make this state clear: Empty labelled time field with persistent hint and optional timezone default.

Observe the result: A user types 9, filters the list to 9:00 AM and 9:30 AM, chooses 9:30 AM, selects Eastern time, and submits canonical value 09:30:00 America/New_York.

Study the full pattern →

Date range picker

Use it when: Users need to select a reporting, analytics, booking, scheduling, campaign, or eligibility period.

Make this state clear: Empty start and end fields with visible labels, date-format hints, and a calendar trigger.

Observe the result: A user chooses Last 7 days, sees 2026-08-08 through 2026-08-14 filled in the calendar, reviews both inputs, then applies the range.

Study the full pattern →

Notification center

Use it when: Users receive multiple asynchronous updates across objects, jobs, collaborators, approvals, or reminders.

Make this state clear: Closed entry-point state with zero, new-unseen, and unread-but-seen counts.

Observe the result: Opening the notification drawer clears the new-notification badge while unread items remain available for later triage.

Study the full pattern →

Conflict state

Use it when: Concurrent users, devices, branches, or background jobs changed the same object or location.

Make this state clear: Conflict detected state naming affected object and source versions.

Observe the result: A user tries to sync an offline field report, reviews only the two changed fields, merges one comment, keeps the server contact number, and commits a resolved version.

Study the full pattern →

Practice the judgment: Imagine this situation: A recurring series expands in the wrong local time because the timezone was hidden or changed silently. Write the person's goal, choose one of these patterns, and show the state that helps the person continue. Use the decision rules and source trail below to explain your choice.

Review the underlying principle →

Decision dimensions

Dimension SchedulingCalendar viewDate pickerTime pickerDate range pickerNotification centerConflict state
UI or UX UI + UX - Workflow for arranging time, attendees, availability, recurrence, and remindersUI + UX - Date and time grid for scheduled events, availability, and conflictsUI + UX - Single-date text field with attached calendar menuUI + UX - Time input with filtered slot list, period selector, and timezone selectorUI + UX - Two date fields with attached range calendar and apply controlsUI + UX - Durable user-opened notification history and action drawerUI + UX - Competing-version resolution state
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.Render a calendar view around a visible date range, mode switcher, today marker, weekday or time-axis labels, timezone, selected date, and event blocks with start, end, title, status, and all-day or timed placement.Render a labelled date text field with a persistent format hint and a calendar button that opens a month grid aligned to the field.Render a labelled time field with persistent hint text, filtered time suggestions, clear selected state, AM/PM control when using 12-hour display, and timezone control when interpretation depends on location.Render separate labelled start and end date fields with persistent format hints, a calendar trigger, and a shared calendar menu that shows both endpoints and the days between them.Provide a persistent notification entry point, usually a bell or inbox control, with a count that represents new unseen notifications rather than every unread item forever.Show both competing versions near the affected object, field, paragraph, file, row, or branch with source labels such as Your edit, Server version, Mina's edit, Target branch, and Current published value.
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.Use calendar view when users need to understand or manage scheduled items by their position in time: date, weekday, duration, overlap, availability, recurrence, or resource assignment.Use a date picker when choosing a date requires calendar context such as weekday, nearby availability, booking windows, deadlines, or recent/future scheduling.Use a time picker when users are scheduling or choosing a specific clock time from predictable increments such as 15-minute or 30-minute appointments.Use a date range picker when users need to select or inspect a continuous period such as a report window, trip, event, booking, campaign, or eligibility span.Use a notification center when users receive enough asynchronous system or collaboration updates that they need a durable place to review, triage, and act later.Preserve each version, explain why automatic merge was unsafe, guide users through the smallest conflicting unit, and make the post-resolution result reviewable before committing.
Good UI A meeting scheduler shows required attendees, free/busy bars, suggested times, selected timezone, room availability, video link, recurrence, reminders, and a Send invitation button.A clinic schedule shows June 2026 week view, today marker, timezone, business hours, all-day staff training, timed appointments, room labels, overlap warning, and a More link for crowded days.An appointment booking field shows Appointment date, hint mm/dd/yyyy, a calendar button, July 2026 grid, disabled weekends, today marker, and selected July 14 date.An appointment time field shows a label, hint that typing filters 30-minute slots, a 9:30 AM selected option, AM/PM selector, Eastern timezone selector, and canonical value 09:30:00.An analytics report control shows Since and Until text fields, quick choices for Today and Last 7 days, a two-week calendar grid, selected August 3 start, selected August 14 end, and a filled band for days inside the range.A bell opens a drawer with Unread and All filters, showing comment mentions, approval requests, export results, and background-job failures in newest-first order.A field report says Conflict on supervisor comment, shows Your offline edit from 11:06 beside Server edit by Mina at 11:07, and offers Keep mine, Keep server, and Merge comment.
Bad UI A recurring event editor hides whether changes apply to one occurrence or the whole series.Calendar navigation resets filters, selected calendars, selected date, or opened event unexpectedly.A grid of unlabeled numbers uses pale grey for unavailable dates but still lets users click them before showing a late error.A dropdown lists 1,440 minute-by-minute options even though appointments are only available every half hour.A calendar highlights only the first and last dates, leaving included days visually indistinguishable from unselected days.Users ignore the center because duplicate low-value messages inflate the badge.A save banner says Something went wrong and only offers Retry after another user changed the same field.
Good UX 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 dispatcher switches from month to week, opens Wednesday, sees three overlapping room bookings, chooses an available slot, and receives conflict-aware feedback before saving.A user opens the calendar, sees weekends unavailable, moves to August, chooses Tuesday 11 August 2026, and reviews stored value 2026-08-11.A user types 9, filters the list to 9:00 AM and 9:30 AM, chooses 9:30 AM, selects Eastern time, and submits canonical value 09:30:00 America/New_York.A user chooses Last 7 days, sees 2026-08-08 through 2026-08-14 filled in the calendar, reviews both inputs, then applies the range.Opening the notification drawer clears the new-notification badge while unread items remain available for later triage.A user tries to sync an offline field report, reviews only the two changed fields, merges one comment, keeps the server contact number, and commits a resolved version.
Bad UX A user moves one weekly event and unintentionally shifts every event in the series.A user taps +3 more in a crowded date cell but the calendar navigates away instead of showing the hidden events for that day.A user selects a disabled Saturday because it was only dimmed, then loses their previous month when the error appears.A historical time-of-birth field forces a scheduling dropdown even though the user needs to type the exact recorded time.A dashboard refreshes on every hovered day while the user is still deciding the end date.Users mark all notifications read and lose the only record of an export job they still need to download.The app silently keeps the newest server value and deletes the user's local note.
Best fit Users coordinate time across people, resources, calendars, availability, or recurrence.Users need to scan or manage scheduled events across dates, days, weeks, months, or resources.Users are scheduling, booking, planning, or selecting a recent or future date.Users choose appointment, meeting, delivery, pickup, reminder, or service times.Users need to select a reporting, analytics, booking, scheduling, campaign, or eligibility period.Users receive multiple asynchronous updates across objects, jobs, collaborators, approvals, or reminders.Concurrent users, devices, branches, or background jobs changed the same object or location.
Avoid when The user only needs one remembered date or time field.Users only need to select one date for a form field.The date is far in the past, such as a birthday or historic document date.The answer is approximate, relative, unknown, or naturally expressed in words.The task asks for only one exact date.The product has only occasional current-action feedback that a toast or inline status can handle.The user is managing an unpublished draft lifecycle rather than resolving competing edits.
Required state Draft event stateDefault calendar state with visible range, view mode, timezone, today marker, selected date, and event count.Closed labelled text field with visible date-format hint and calendar button.Empty labelled time field with persistent hint and optional timezone default.Empty start and end fields with visible labels, date-format hints, and a calendar trigger.Closed entry-point state with zero, new-unseen, and unread-but-seen counts.Conflict detected state naming affected object and source versions.
Accessibility burden Use labelled fields for title, attendees, required/optional role, date, start time, end time, timezone, recurrence, location, conferencing, reminders, and calendar selection.Expose date navigation, mode switch, visible range, selected date, today, timezone, and event count as text.Give the calendar button an accessible name and state that distinguishes opening from closing the menu.Use a visible label and persistent hint that explain filtering, increments, and time range.Label start and end fields separately and associate each hint and error with the correct field.Announce new notification arrival with status semantics when appropriate, but avoid interrupting users repeatedly for low-priority center items.Associate each conflict message with the affected field, row, line, paragraph, or file.
Common misuse Treating scheduling as only a date field and a time field.Using calendar view as a decorative month card for unscheduled content.Using a calendar picker for a date of birth or other remembered historic date.Using a minute-by-minute dropdown for a schedule that only accepts 30-minute increments.Collapsing the range into one unlabeled field with ambiguous dash-separated dates.Treating the badge count, unread count, and total notification count as one number.Treating a conflict as a simple retryable save error.

Scheduling

UI or UX
UI + UX - Workflow for arranging time, attendees, availability, recurrence, and reminders
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.
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.
Good UI
A meeting scheduler shows required attendees, free/busy bars, suggested times, selected timezone, room availability, video link, recurrence, reminders, and a Send invitation button.
Bad UI
A recurring event editor hides whether changes apply to one occurrence or the whole series.
Good UX
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.
Bad UX
A user moves one weekly event and unintentionally shifts every event in the series.
Best fit
Users coordinate time across people, resources, calendars, availability, or recurrence.
Avoid when
The user only needs one remembered date or time field.
Required state
Draft event state
Accessibility burden
Use labelled fields for title, attendees, required/optional role, date, start time, end time, timezone, recurrence, location, conferencing, reminders, and calendar selection.
Common misuse
Treating scheduling as only a date field and a time field.

Calendar view

UI or UX
UI + UX - Date and time grid for scheduled events, availability, and conflicts
UI guidance
Render a calendar view around a visible date range, mode switcher, today marker, weekday or time-axis labels, timezone, selected date, and event blocks with start, end, title, status, and all-day or timed placement.
UX guidance
Use calendar view when users need to understand or manage scheduled items by their position in time: date, weekday, duration, overlap, availability, recurrence, or resource assignment.
Good UI
A clinic schedule shows June 2026 week view, today marker, timezone, business hours, all-day staff training, timed appointments, room labels, overlap warning, and a More link for crowded days.
Bad UI
Calendar navigation resets filters, selected calendars, selected date, or opened event unexpectedly.
Good UX
A dispatcher switches from month to week, opens Wednesday, sees three overlapping room bookings, chooses an available slot, and receives conflict-aware feedback before saving.
Bad UX
A user taps +3 more in a crowded date cell but the calendar navigates away instead of showing the hidden events for that day.
Best fit
Users need to scan or manage scheduled events across dates, days, weeks, months, or resources.
Avoid when
Users only need to select one date for a form field.
Required state
Default calendar state with visible range, view mode, timezone, today marker, selected date, and event count.
Accessibility burden
Expose date navigation, mode switch, visible range, selected date, today, timezone, and event count as text.
Common misuse
Using calendar view as a decorative month card for unscheduled content.

Date picker

UI or UX
UI + UX - Single-date text field with attached calendar menu
UI guidance
Render a labelled date text field with a persistent format hint and a calendar button that opens a month grid aligned to the field.
UX guidance
Use a date picker when choosing a date requires calendar context such as weekday, nearby availability, booking windows, deadlines, or recent/future scheduling.
Good UI
An appointment booking field shows Appointment date, hint mm/dd/yyyy, a calendar button, July 2026 grid, disabled weekends, today marker, and selected July 14 date.
Bad UI
A grid of unlabeled numbers uses pale grey for unavailable dates but still lets users click them before showing a late error.
Good UX
A user opens the calendar, sees weekends unavailable, moves to August, chooses Tuesday 11 August 2026, and reviews stored value 2026-08-11.
Bad UX
A user selects a disabled Saturday because it was only dimmed, then loses their previous month when the error appears.
Best fit
Users are scheduling, booking, planning, or selecting a recent or future date.
Avoid when
The date is far in the past, such as a birthday or historic document date.
Required state
Closed labelled text field with visible date-format hint and calendar button.
Accessibility burden
Give the calendar button an accessible name and state that distinguishes opening from closing the menu.
Common misuse
Using a calendar picker for a date of birth or other remembered historic date.

Time picker

UI or UX
UI + UX - Time input with filtered slot list, period selector, and timezone selector
UI guidance
Render a labelled time field with persistent hint text, filtered time suggestions, clear selected state, AM/PM control when using 12-hour display, and timezone control when interpretation depends on location.
UX guidance
Use a time picker when users are scheduling or choosing a specific clock time from predictable increments such as 15-minute or 30-minute appointments.
Good UI
An appointment time field shows a label, hint that typing filters 30-minute slots, a 9:30 AM selected option, AM/PM selector, Eastern timezone selector, and canonical value 09:30:00.
Bad UI
A dropdown lists 1,440 minute-by-minute options even though appointments are only available every half hour.
Good UX
A user types 9, filters the list to 9:00 AM and 9:30 AM, chooses 9:30 AM, selects Eastern time, and submits canonical value 09:30:00 America/New_York.
Bad UX
A historical time-of-birth field forces a scheduling dropdown even though the user needs to type the exact recorded time.
Best fit
Users choose appointment, meeting, delivery, pickup, reminder, or service times.
Avoid when
The answer is approximate, relative, unknown, or naturally expressed in words.
Required state
Empty labelled time field with persistent hint and optional timezone default.
Accessibility burden
Use a visible label and persistent hint that explain filtering, increments, and time range.
Common misuse
Using a minute-by-minute dropdown for a schedule that only accepts 30-minute increments.

Date range picker

UI or UX
UI + UX - Two date fields with attached range calendar and apply controls
UI guidance
Render separate labelled start and end date fields with persistent format hints, a calendar trigger, and a shared calendar menu that shows both endpoints and the days between them.
UX guidance
Use a date range picker when users need to select or inspect a continuous period such as a report window, trip, event, booking, campaign, or eligibility span.
Good UI
An analytics report control shows Since and Until text fields, quick choices for Today and Last 7 days, a two-week calendar grid, selected August 3 start, selected August 14 end, and a filled band for days inside the range.
Bad UI
A calendar highlights only the first and last dates, leaving included days visually indistinguishable from unselected days.
Good UX
A user chooses Last 7 days, sees 2026-08-08 through 2026-08-14 filled in the calendar, reviews both inputs, then applies the range.
Bad UX
A dashboard refreshes on every hovered day while the user is still deciding the end date.
Best fit
Users need to select a reporting, analytics, booking, scheduling, campaign, or eligibility period.
Avoid when
The task asks for only one exact date.
Required state
Empty start and end fields with visible labels, date-format hints, and a calendar trigger.
Accessibility burden
Label start and end fields separately and associate each hint and error with the correct field.
Common misuse
Collapsing the range into one unlabeled field with ambiguous dash-separated dates.

Notification center

UI or UX
UI + UX - Durable user-opened notification history and action drawer
UI guidance
Provide a persistent notification entry point, usually a bell or inbox control, with a count that represents new unseen notifications rather than every unread item forever.
UX guidance
Use a notification center when users receive enough asynchronous system or collaboration updates that they need a durable place to review, triage, and act later.
Good UI
A bell opens a drawer with Unread and All filters, showing comment mentions, approval requests, export results, and background-job failures in newest-first order.
Bad UI
Users ignore the center because duplicate low-value messages inflate the badge.
Good UX
Opening the notification drawer clears the new-notification badge while unread items remain available for later triage.
Bad UX
Users mark all notifications read and lose the only record of an export job they still need to download.
Best fit
Users receive multiple asynchronous updates across objects, jobs, collaborators, approvals, or reminders.
Avoid when
The product has only occasional current-action feedback that a toast or inline status can handle.
Required state
Closed entry-point state with zero, new-unseen, and unread-but-seen counts.
Accessibility burden
Announce new notification arrival with status semantics when appropriate, but avoid interrupting users repeatedly for low-priority center items.
Common misuse
Treating the badge count, unread count, and total notification count as one number.

Conflict state

UI or UX
UI + UX - Competing-version resolution state
UI guidance
Show both competing versions near the affected object, field, paragraph, file, row, or branch with source labels such as Your edit, Server version, Mina's edit, Target branch, and Current published value.
UX guidance
Preserve each version, explain why automatic merge was unsafe, guide users through the smallest conflicting unit, and make the post-resolution result reviewable before committing.
Good UI
A field report says Conflict on supervisor comment, shows Your offline edit from 11:06 beside Server edit by Mina at 11:07, and offers Keep mine, Keep server, and Merge comment.
Bad UI
A save banner says Something went wrong and only offers Retry after another user changed the same field.
Good UX
A user tries to sync an offline field report, reviews only the two changed fields, merges one comment, keeps the server contact number, and commits a resolved version.
Bad UX
The app silently keeps the newest server value and deletes the user's local note.
Best fit
Concurrent users, devices, branches, or background jobs changed the same object or location.
Avoid when
The user is managing an unpublished draft lifecycle rather than resolving competing edits.
Required state
Conflict detected state naming affected object and source versions.
Accessibility burden
Associate each conflict message with the affected field, row, line, paragraph, or file.
Common misuse
Treating a conflict as a simple retryable save error.
Decision rules
  • Choose scheduling when the task is coordinating a meeting, event, availability schedule, or recurring time plan across people, calendars, time zones, reminders, locations, rooms, conferencing, buffers, limits, or free/busy conflicts.
  • Choose booking when the primary job is reserving a service, appointment, inventory, room, seat, or resource slot with customer-facing confirmation, capacity, payment, cancellation, or provider rules.
  • Choose calendar view when users need to inspect existing events spatially by day, week, month, resource, duration, overlap, or availability rather than create the scheduling contract itself.
  • Choose date picker when the user needs one date value and does not need attendee availability, recurrence, reminders, rooms, conferencing, buffers, or conflict handling.
  • Choose time picker when the user is choosing a clock time field from predictable increments inside a larger scheduling or booking flow.
  • Choose date range picker when users need a start and end date span; scheduling may use a range but also requires participants, availability, recurrence, timezone, and conflict behavior.
  • Use notification center to surface schedule updates, invitations, reminders, acceptances, declines, and cancellations, but keep schedule editing in the scheduling workflow.
  • Use conflict state when scheduling is blocked by attendee busy time, resource unavailability, invalid recurrence, hidden calendars, timezone ambiguity, or stale availability.
  • Scheduling must expose who or what is being scheduled, duration, start/end, timezone, recurrence, attendee response state, availability source, reminders, location or conference link, and save/send consequences.
  • Recurring scheduling must show series scope, recurrence rule, exceptions, end condition, timezone, conflict summary, and whether edits affect one occurrence or the full series.
Inspect live examples
Failure modes
  • A meeting is scheduled without showing that a required attendee or room is busy.
  • A recurring series expands in the wrong local time because the timezone was hidden or changed silently.
  • The interface saves a draft event but users believe invitations were sent.
  • A schedule page shows free slots without accounting for buffers, maximum meetings per day, minimum notice, or checked calendars.
  • A date picker is used for a meeting with attendees, so users cannot see free/busy conflicts or send invitations.
  • Rescheduling one occurrence accidentally changes every recurrence in the series.
  • A reminder or video link is missing from the sent event even though it appeared in the draft.

Saved items