Appointments
Overview

Appointments

The Appointments module lets you schedule and track client meetings, service appointments, and other time-based interactions — all linked to a specific contact in your CRM.

Note: Appointments is an optional module. It must be enabled for your workspace by a system administrator in the Workspace Settings view. When disabled, the sidebar link and all related features are hidden.

[SCREENSHOT PLACEHOLDER: Appointments list page showing upcoming tabs, assignee filter, and status badges]

How Appointments Differ from Events

Gordon CRM has two time-based features:

  • Appointments are for internal scheduling (e.g., 1:1 meetings, small group service sessions). They are manually created by your team and must be linked to a contact.
  • Events are for public-facing happenings (conferences, webinars). They can be published to a public registration page and support self-serve registration.

Appointment Types

Every appointment has a type that categorizes the interaction, shown as a colored badge:

  • Meeting (default) — General meetings and calls (discovery call, quarterly review)
  • Service — Service delivery sessions (haircut, coaching session, repair visit)
  • Other — Anything else (site visit, drop-off)

Tracking Status

Appointments use an "assumed past" model — you don't need to manually mark an appointment as completed. Once its end time has passed, Gordon CRM automatically displays a green Past badge.

If an appointment doesn't go as planned, you can update its status using the quick-action buttons on the appointment detail page (or the three-dot menu on the list page):

  • Cancel — Marks the appointment as Canceled (red badge)
  • Mark No Show — Marks the appointment as No Show (amber badge)
  • Revert to Scheduled — Removes the canceled/no-show status

The Appointments Page

The Appointments page is your central scheduling view.

Filtering and Sorting

  • Time Filter — Toggle between Upcoming appointments (which filters start_time >= NOW()), Past appointments (which filters end_time < NOW()), or Any (shows all appointments).
  • Assignee Filter — View only your appointments (Mine - default), everyone's appointments (Everyone's), or unassigned appointments (Unassigned).
  • Search — Search by appointment title or contact name.
  • Date & Time Sort — Click the clickable Date & Time column header to sort appointments chronologically (ascending or descending) using stacked-bar date sort icons.
  • Type Sort — Click the clickable Type column header to sort appointments alphabetically by type (meeting, service, other) using text-aware sort icons (A Z / Z A).
  • Decoupling — Sorting behavior is fully decoupled from active filters and search terms (changing filters will not alter the sort direction).
  • Assigned To Column — Displays the team member assigned to the appointment, featuring a User icon. Unassigned appointments display the "Unassigned" label in muted gray text.
  • Duration Badge — Displays the formatted duration badge (e.g., (45m) or (1h)) adjacent to the Date & Time text in each table row.

If any of the active filters deviate from the defaults (Upcoming time filter + Mine assignee filter), a ✕ Clear filters button appears next to the search bar to reset the list view to the default settings with a single click.

Creating Appointments

You can create an appointment from two places:

From the Appointments Page

  1. Navigate to Appointments in the sidebar.
  2. Click Add Appointment (or the "+" icon on mobile). On desktop, this opens the appointment creation form; on mobile viewports, it slides up as a bottom form designed for easy touch access.
  3. Search for and select a contact (required - marked with a red asterisk *).
  4. Fill in the appointment fields, ordered according to scheduling workflow best practices:
    • Title (required - marked with a asterisk *)
    • Type (Meeting, Service, or Other)
    • Date & Time: Select a single date using the calendar picker, a start time, and a Duration preset (15m, 30m, 45m, 1h, 1h 30m, or Custom).
      • Note: Selecting "Custom" reveals a conditional End Time field. If your custom End Time wraps past midnight (earlier in the day than the Start Time), the system automatically adds +1 day to prevent negative durations under the hood. The selectors stack vertically on mobile to open native clock pickers and display side-by-side on desktop.
    • Attendees (assign coworkers or linked contacts)
    • Location (physical address or link)
    • Description (notes or agenda details)
  5. Select a team member to assign it to, or choose Unassigned to leave it unassigned (the system will not automatically fallback to assign it to you).
  6. Click Save New Appointment (features a dynamic "Saving..." state on click).

From a Contact's Detail Page

Click + Add Appointment on any contact's detail page. The form opens with the contact already selected and locked.

Smart Defaults: When you create a new appointment, the date defaults to tomorrow and the time range defaults to 10:00 AM to 11:00 AM (1 hour). Modifying the start date or time automatically updates the calculated end time to preserve your currently selected duration gap.

The Appointment Detail View

Click any appointment to open its detail view (labeled Appointments in the breadcrumbs). The page layout is designed for maximum clarity:

  • De-Carded Title Block — The metadata card structure has been de-carded. The header features an inline calendar brand icon.
  • Responsive Actions Header — Action triggers stack flat and side-by-side on desktop, while on mobile they collapse neatly into an Edit button and a safe-delete dropdown.
  • Duration & Date Display — Displays timezone-resilient date-crossing times alongside an inline relative duration pill (e.g. 1 hour).
  • Unified Audit Trail — Rendered as a vertical list of bolded labels and values (showing Creator and Editor names).
  • Notes Section — Add and manage notes specific to this appointment. See Appointment Notes for details.

[SCREENSHOT PLACEHOLDER: Appointment detail view showing de-carded metadata layout and side-by-side buttons]

Dashboard Widget

The main dashboard includes a "My Upcoming Appointments" widget showing:

  • Appointments assigned to you that are scheduled within the next 7 days
  • Up to 5 appointments
  • Each item shows the title, linked contact name, and formatted date/time
  • Clicking an appointment takes you straight to its detail view

Permissions

All workspace members can view, create, edit, and delete appointments.

Note: Unlike deals and companies (which restrict deletion to admins), appointment scheduling is a core daily action. Any team member can delete an appointment if needed.

Related