Skip to content

Installation

Installation Process

This is the complete walkthrough of the ProSchedule installation wizard. The wizard runs automatically the first time you open your site. It is eight steps. Step 3 is Use Case — that choice decides wh…

Last updated Aug 19, 2026 · 7 min read

This is the complete walkthrough of the ProSchedule installation wizard. The wizard runs automatically the first time you open your site. It is eight steps. Step 3 is Use Case — that choice decides whether you install a SaaS marketplace, one organization, or a personal calendar.

For a visual overview of installing on shared hosting, you can also watch:

The video may show an older step order. Follow this page for the current wizard.

Before you start

1. Upload the files

Extract the CodeCanyon package. Upload the ProSchedule application folder to your server (not only the _documentation or _landing folders).

Point the site document root at the public/ directory:

Server Typical setting
Apache / cPanel Document root = .../public
Nginx root /var/www/proschedule/public;
Subdirectory https://yourdomain.com/proschedule/public or a subdomain that already points at public/

Directory permissions 755, file permissions 644. These two paths must be writable:

  • storage/
  • bootstrap/cache/
chmod -R 755 storage bootstrap/cache

2. Create an empty database

Create a MySQL database (PostgreSQL and SQLite are also supported). Note host, name, username, and password. The database user needs permission to create tables.

3. Have your license ready

Copy the CodeCanyon purchase code (Downloads → ProSchedule).

4. Pick an edition

You can change this later in Settings, but decide now so the installer seeds the right Home / FAQ / Contact copy:

Use case Choose this if What the installer turns on
SaaS Platform You resell scheduling, or run a marketplace of professionals Workspaces, plans, Stripe billing, usage limits, public registration and pricing
Organization One clinic, company, or practice with staff Staff, organizations, contacts, notes. No SaaS billing. Registration off by default
Personal One professional and their public booking page Event types, calendar, appointments. No SaaS, staff, or CRM menus

Appointment booking and client payments for visits work in all three editions.

The installer defaults to Organization if you do not change the selection.

Open https://yourdomain.com. The wizard starts automatically when the app is not installed.

Wizard steps at a glance

  1. Welcome & system check
  2. License verification
  3. Use case (SaaS Platform, Organization, or Personal)
  4. Environment
  5. Database
  6. Admin account
  7. Installing (migrations, seed, front pages, caches)
  8. Complete

Step 1: Welcome & system check

The first screen checks PHP version, required extensions, and directory permissions.

  1. Review any failed checks and fix them on the server.
  2. Click Get Started.

See System Requirements for the full list.


Step 2: License verification

  1. Paste your CodeCanyon purchase code.
  2. Click Verify License.

Find the code under CodeCanyon → Downloads → ProSchedule.

The domain you install on is bound to the license. Local development hosts are allowed for testing.


Step 3: Use case

This is the edition selector. Pick one card, then click Continue.

SaaS Platform

Best for agencies and multi-tenant products.

After install, ProSchedule enables:

  • Workspaces, team roles, and invitations
  • Subscription plans (Free, Starter, Professional, Enterprise)
  • Stripe billing and usage limits
  • Public /pricing (when the Pricing module is on)
  • Public registration and a directory of professionals
  • Organizations, contacts, notes, chat, blog, and FAQ

Your admin user also receives a default workspace named from your first name.

Organization

Best for one clinic, company, or practice. This is the installer default.

After install, ProSchedule enables:

  • Staff users and roles
  • Organizations, contacts, and notes
  • Scheduling, event types, and public booking for the practice
  • Optional chat, blog, and FAQ modules

It hides:

  • Workspaces and the workspace switcher
  • Subscription plans and usage limits
  • The public /pricing page

Public registration is off. Event booking payments still work.

Personal

Best for one therapist, consultant, or other solo professional.

After install, ProSchedule enables:

  • Event types, availability, and the calendar
  • A public booking page at /u/{your-username}
  • Appointment payments and calendar sync

It hides:

  • Workspaces, plans, and /pricing
  • Manage Users and roles
  • Organizations, contacts, and notes
  • Chat, blog, FAQ, and registration

The admin account is created with a public username and marked available, so /u/{username} works immediately.

Changing your mind later

You do not reinstall. Go to Dashboard → Settings → Global → Use Case.

  • Switching hides menus and public pages. It does not delete users, workspaces, or Front Pages you already edited.
  • Leaving SaaS is blocked while paid Stripe subscriptions are still active.
  • Switching later does not overwrite customized Home / FAQ / Contact / Footer content.

Full behavior: Deployment Use Cases.


Step 4: Environment

Set application basics:

Field What to enter
Application name Shown in the dashboard and emails. You can change this later in Settings.
Application URL Full URL, for example https://yourdomain.com (no trailing path unless you installed in a subdirectory)
Environment Use Production on a live site
Debug mode Leave off on a live site

Click Save & Continue.


Step 5: Database

  1. Choose MySQL (typical), PostgreSQL, or SQLite.
  2. Enter host, port, database name, username, and password.
  3. Click Test Connection, then continue.

Create an empty database first. The user needs permission to create tables.

Typical MySQL values: host localhost, port 3306.


Step 6: Admin account

Create the first administrator:

  • First name and last name
  • Email (this is the login)
  • Password (at least 8 characters)

This user is an Administrator, email-verified, and available for public booking (needed for Personal mode).


Step 7: Installing

Do not close the browser. The installer now:

  1. Runs database migrations (creates tables if this is a fresh database)
  2. Seeds roles, settings, professions, email templates, and other core data
  3. Creates your admin user
  4. Saves the use case you chose in step 3 (deployment_mode)
  5. Seeds Home, FAQ, Contact, and Footer copy for that use case
  6. Creates a default workspace only if you chose SaaS Platform
  7. Marks the app installed (APP_INSTALLED=true)
  8. Caches config, routes, and views

If something fails, read the error on the screen, fix it, and retry. Common causes are database permissions, missing PHP extensions, or storage/ not writable.


Step 8: Complete

You should see Installation Complete.

  1. Open the homepage or the admin dashboard.
  2. Sign in with the admin email and password from step 6.
  3. Confirm the menus match the edition you chose.

First checks by edition

SaaS Platform

  • You should see Workspaces and Subscription Plans.
  • Open /appointment — it is a directory of professionals (empty until you add users and mark them available).
  • Configure Stripe under Settings if you will sell plans.

Organization

  • Workspaces and Subscription Plans should be hidden.
  • Organizations, Contacts, Notes, and Users should be available.
  • /appointment lists staff in this practice.
  • Registration is off until you enable it in Settings.

Personal

  • Workspaces, Users, Organizations, Contacts, Notes, Chat, Blog, and FAQ should be hidden.
  • Create event types, then share /u/{your-username}.
  • /appointment redirects to that personal booking page.

Then continue with Post-installation and Settings.


Optional: demo data (demo sites only)

A new customer install does not load sample appointments. That is intentional.

To fill a dedicated demo database with named sample data:

php artisan command:import_demo saas
php artisan command:import_demo organization
php artisan command:import_demo personal

If you omit the mode, the command uses the installed use case.

Mode What you get Demo logins
saas Marketplace of professionals; named guests, CRM, blog, and chat for the three demo hosts ahmad.khan@mail.com (doctor), zubair.shafi@mail.com (stylist), junaid.abbasi@mail.com (dentist)
organization Clark Street Clinic, three doctors, patients, notes, clinic blog and chat ahmad.khan@mail.com, omar.farooq@mail.com, yusuf.siddiqi@mail.com
personal Faisal Malik Counseling, therapy clients and sessions faisal.malik@mail.com

Demo password (import only): Password@secret.com. The demo login page also has one-click role buttons.

Warning: import_demo truncates users and reseeds. Never run it on a database with real customers.

For named public brands on a demo host, set in .env:

APP_DEMO=true
APP_DEBUG=false
DEMO_USE_CASE=

Leave DEMO_USE_CASE empty. The import writes the edition into the database.

Official live demos:


Troubleshooting

Wrong menus after install

Confirm the Use Case in Settings → Global. Then:

php artisan cache:clear
php artisan config:clear

Hard-refresh the browser.

Personal booking page 404

The admin must have a username and be marked available. The installer sets both. Create at least one active event type.

SaaS menus still visible in Organization or Personal

Clear caches as above. If you still have paid Stripe subscriptions, you cannot leave SaaS until they are canceled.

Database or permission errors in step 7

  • Confirm the database is empty and the user can create tables.
  • chmod -R 755 storage bootstrap/cache

More help: Troubleshooting.


Related documentation:

← All ProSchedule – Online Appointment Booking Software for Service Businesses documentation

We use cookies to understand how visitors use this site. Cookie Policy