Skip to content

Appointments Module

The Appointments module allows you to manage appointment types, time slots, and customer bookings. This comprehensive guide covers all appointment management features.


Table of Contents

  1. Overview
  2. Accessing Appointments
  3. Appointment Types
  4. Time Slot Management
  5. Creating Appointments
  6. Managing Appointments
  7. Appointment Status
  8. Frontend Booking System
  9. Email Notifications
  10. Best Practices

Overview

Features

  • ✅ Create appointment types
  • ✅ Automatic and custom time slot generation
  • ✅ Appointment booking management
  • ✅ Status tracking (Pending, Confirmed, Completed, etc.)
  • ✅ Calendar integration
  • ✅ Email notifications and reminders
  • ✅ Frontend booking system
  • ✅ Customer appointment portal

Admin Routes

  • Appointment List: /admin/appointments
  • Appointment Types: /admin/appointment-types
  • Create Type: /admin/appointment-types/create
  • Time Slots: /admin/time-slots

Frontend Routes

  • Appointments Page: /appointments
  • Book Appointment: /appointments/book/{slug}
  • My Appointments: /my-appointments (authenticated)
  • Appointment Details: /appointments/{slug}

Accessing Appointments

From Admin Panel

  1. Log in to admin panel
  2. Navigate to BusinessAppointments
  3. Or go directly to: /admin/appointments

Permissions Required

  • View Appointments: view appointments permission
  • Create Appointments: create appointments permission
  • Edit Appointments: edit appointments permission
  • Manage Appointment Types: manage appointment types permission

Appointment Types

Creating Appointment Types

Route: /admin/appointment-types/create

Step 1: Basic Information

Type Name:

  • Name of appointment type
  • Required field
  • Example: Consultation, Follow-up, Initial Assessment

Slug:

  • Auto-generated from name
  • Can be edited manually
  • Must be unique
  • Used in booking URL

Description:

  • Brief description
  • Shown to customers
  • Explain what the appointment is for

Step 2: Duration

Duration (Minutes):

  • How long appointment lasts
  • Required field
  • Examples:
    • 30 minutes
    • 60 minutes (1 hour)
    • 90 minutes (1.5 hours)

Buffer Time (Optional):

  • Time between appointments
  • Prevents back-to-back bookings
  • Example: 15 minutes buffer

Step 3: Pricing

Price:

  • Appointment price
  • Use decimal format (e.g., 50.00)
  • Can be free (0.00)
  • Currency set in settings

Pricing Display:

  • Show/hide price
  • "Free" for $0
  • Custom pricing text

Step 4: Availability Settings

Maximum Bookings per Slot:

  • How many appointments per time slot
  • Default: 1 (one-on-one)
  • Can allow multiple (group sessions)

Advance Booking:

  • How far in advance customers can book
  • Example: 30 days ahead
  • Prevents too-early bookings

Same-Day Booking:

  • Allow same-day bookings
  • Toggle on/off
  • Useful for urgent appointments

Step 5: Status

Active Status:

  • Active: Available for booking
  • Inactive: Not available
  • Toggle to enable/disable

Step 6: Save Type

  • Save: Create appointment type
  • Save & Generate Slots: Create type and generate time slots

Managing Appointment Types

Edit Type

  1. Go to Appointment Types list
  2. Click Edit on type
  3. Make changes
  4. Click Update

Delete Type

  1. Click Delete on type
  2. Confirm deletion
  3. Warning: Related appointments preserved
  4. Type removed

Toggle Status

Route: /admin/appointment-types/{type}/toggle-status

  1. Click Toggle Status button
  2. Status changes immediately
  3. Active ↔ Inactive

Time Slot Management

Automatic Slot Generation

Route: /admin/appointment-types/{type}/generate-slots

Generate Slots

  1. Go to appointment type
  2. Click Generate Time Slots
  3. Configure:
    • Start Date: When slots begin
    • End Date: When slots end
    • Days of Week: Which days
    • Start Time: First slot time
    • End Time: Last slot time
    • Interval: Time between slots
  4. Click Generate
  5. Slots created automatically

Example:

  • Monday to Friday
  • 9:00 AM to 5:00 PM
  • 30-minute intervals
  • Creates: 9:00, 9:30, 10:00, 10:30, etc.

Custom Slot Generation

Route: /admin/appointment-types/{type}/generate-custom-slots

  1. Click Generate Custom Slots
  2. Manually set:
    • Specific dates
    • Specific times
    • Custom intervals
  3. Create slots individually
  4. More control over availability

Managing Time Slots

View Available Slots

Route: /admin/appointment-types/{type}/slots

  1. Go to appointment type
  2. View all time slots
  3. See:
    • Date and time
    • Availability status
    • Booked appointments
    • Available slots

Delete Time Slots

Route: /admin/time-slots/{slot}/destroy

  1. Click Delete on slot
  2. Confirm deletion
  3. Slot removed
  4. Future appointments unaffected

Bulk Delete Slots

Route: /admin/time-slots/bulk-delete

  1. Select multiple slots
  2. Click Bulk Delete
  3. Confirm deletion
  4. All selected slots removed

Creating Appointments

From Admin Panel

Route: /admin/appointments/create

Step 1: Select Appointment Type

  1. Choose appointment type
  2. Type details shown:
    • Duration
    • Price
    • Description

Step 2: Select Time Slot

  1. Choose date
  2. View available slots
  3. Select time slot
  4. Slot details shown

Step 3: Customer Information

Customer Selection:

  • Existing Customer: Select from list
  • New Customer: Enter details

Required Information:

  • First Name
  • Last Name
  • Email Address
  • Phone Number (optional)

Step 4: Additional Details

Notes:

  • Internal notes
  • Customer requirements
  • Special instructions

Status:

  • Set initial status
  • Default: Pending

Step 5: Save Appointment

  • Create: Save appointment
  • Create & Send Confirmation: Save and email customer

From Frontend

Customers can book appointments via frontend booking form (see Frontend Booking System).


Managing Appointments

Appointment List View

Access at: /admin/appointments

List Features

Search:

  • Search by customer name
  • Search by email
  • Search by appointment type

Filters:

  • Type: Filter by appointment type
  • Status: Pending/Confirmed/Completed/etc.
  • Date Range: Filter by date
  • Customer: Filter by customer

Sorting:

  • By Date (Upcoming/Recent)
  • By Customer Name
  • By Type
  • By Status

Displayed Information

  • Customer: Customer name
  • Type: Appointment type
  • Date & Time: Appointment schedule
  • Status: Current status
  • Duration: Appointment length
  • Price: Appointment cost

Appointment Actions

View Details

  1. Click on appointment
  2. View full details:
    • Customer information
    • Appointment type
    • Date and time
    • Status
    • Notes
    • History

Confirm Appointment

Route: /admin/appointments/{appointment}/confirm

  1. Click Confirm button
  2. Status changes to Confirmed
  3. Customer notified via email (if enabled)
  4. Calendar updated

Complete Appointment

Route: /admin/appointments/{appointment}/complete

  1. Click Complete button
  2. Status changes to Completed
  3. Appointment marked as done
  4. Can add completion notes

Mark as No-Show

Route: /admin/appointments/{appointment}/mark-no-show

  1. Click Mark as No-Show
  2. Status changes to No-Show
  3. Customer may be charged (if configured)
  4. Slot can be reused

Resend Confirmation

Route: /admin/appointments/{appointment}/resend-confirmation

  1. Click Resend Confirmation
  2. Confirmation email sent
  3. Useful if customer didn't receive

Cancel Appointment

  1. Click Cancel button
  2. Status changes to Cancelled
  3. Customer notified (if enabled)
  4. Slot becomes available

Bulk Operations

Bulk Delete

Route: /admin/appointments/bulk-destroy

  1. Select multiple appointments
  2. Click Bulk ActionsDelete
  3. Confirm deletion
  4. All selected removed

Bulk Action

Route: /admin/appointments/bulk-action

  1. Select appointments
  2. Click Bulk Actions
  3. Choose action:
    • Change Status
    • Send Reminder
    • Export
  4. Apply to all selected

Appointment Status

Status Types

Pending

  • Initial Status: When first created
  • Meaning: Awaiting confirmation
  • Action: Admin should confirm

Confirmed

  • Meaning: Appointment confirmed
  • Meaning: Customer expects to attend
  • Action: Send reminder before appointment

Completed

  • Meaning: Appointment finished
  • Action: Add completion notes
  • Next: Follow-up if needed

Cancelled

  • Meaning: Appointment cancelled
  • Reason: Customer or admin cancelled
  • Action: Slot available for rebooking

No-Show

  • Meaning: Customer didn't attend
  • Action: May charge customer (if configured)
  • Note: Track for customer history

Status Workflow

Typical Flow:

  1. Pending → Created
  2. Confirmed → Admin confirms
  3. Completed → Appointment done OR
  4. Cancelled → Cancelled before appointment OR
  5. No-Show → Customer didn't attend

Frontend Booking System

Appointments Page

URL: /appointments

Features:

  • List of available appointment types
  • Type descriptions
  • Pricing information
  • Duration
  • "Book Now" buttons

Book Appointment Form

URL: /appointments/book/{slug}

Booking Process

  1. Select Appointment Type:

    • Customer chooses type
    • Sees type details
  2. Select Date:

    • Calendar view
    • Available dates highlighted
    • Past dates disabled
  3. Select Time:

    • Available time slots shown
    • Based on selected date
    • Real-time availability
  4. Customer Information:

    • Name
    • Email
    • Phone
    • Additional notes (optional)
  5. Confirm Booking:

    • Review details
    • Submit booking
    • Receive confirmation

Available Slots API

Route: /appointments/{type}/slots

  • Returns available time slots
  • Filters by date
  • Shows only available slots
  • Updates in real-time

My Appointments

URL: /my-appointments (authenticated)

Features:

  • Customer's appointments
  • Upcoming appointments
  • Past appointments
  • Appointment details
  • Cancel option

Appointment Details

URL: /appointments/{slug}

Features:

  • Appointment information
  • Date and time
  • Location (if applicable)
  • Status
  • Cancel option
  • Reschedule option (if enabled)

Appointment Confirmation

URL: /appointments/confirmation/{appointment}

  • Booking confirmation page
  • Appointment details
  • Next steps
  • Calendar add option

Email Notifications

Notification Types

Appointment Confirmation

Sent When:

  • Customer books appointment
  • Admin confirms appointment

Includes:

  • Appointment details
  • Date and time
  • Location (if applicable)
  • Cancellation instructions

Appointment Reminder

Sent When:

  • 24 hours before appointment
  • 1 hour before appointment (optional)

Includes:

  • Appointment reminder
  • Date and time
  • Preparation instructions

Appointment Cancellation

Sent When:

  • Appointment is cancelled
  • By customer or admin

Includes:

  • Cancellation confirmation
  • Reason (if provided)
  • Reschedule option

Configuring Notifications

  1. Go to SettingsEmail Settings
  2. Configure SMTP (see Email Settings)
  3. Enable appointment notifications
  4. Set reminder times

Best Practices

Appointment Type Setup

  1. Clear Descriptions:

    • Explain appointment purpose
    • Set expectations
    • Include duration
    • Show pricing
  2. Realistic Durations:

    • Allow enough time
    • Include buffer time
    • Consider preparation
    • Plan for questions
  3. Pricing Strategy:

    • Clear pricing
    • Show value
    • Offer packages
    • Transparent costs

Time Slot Management

  1. Regular Updates:

    • Update availability regularly
    • Block unavailable times
    • Add extra slots when needed
    • Remove old slots
  2. Buffer Time:

    • Use buffer between appointments
    • Prevents running late
    • Allows preparation
    • Better customer experience
  3. Advance Booking:

    • Set reasonable advance limit
    • Prevent too-early bookings
    • Allow same-day if needed
    • Balance availability

Appointment Management

  1. Quick Confirmation:

    • Confirm appointments promptly
    • Set expectations
    • Send reminders
    • Follow up
  2. Status Tracking:

    • Keep status updated
    • Mark completed
    • Track no-shows
    • Follow up on cancellations
  3. Customer Communication:

    • Send confirmations
    • Send reminders
    • Notify of changes
    • Follow up

Troubleshooting

Slots Not Generating

Solutions:

  1. Check appointment type settings
  2. Verify date range
  3. Check time settings
  4. Ensure type is active

Booking Not Working

Solutions:

  1. Verify appointment type is active
  2. Check available slots exist
  3. Verify frontend form
  4. Check email settings

Notifications Not Sending

Solutions:

  1. Check email configuration
  2. Verify SMTP settings
  3. Check spam folder
  4. Test email functionality


Last Updated: [Date will be updated during final review]

Released under the MIT License.