Multi-Location Management

Complete guide to managing multiple business locations with different timezones, location-specific settings, cross-location scheduling, location role requirements, staffing rules, and granular manager access control.

10 min readHead Manager

What is Multi-Location Management?

Multi-Location Management lets you operate multiple physical business locations within one organization—each with its own address, timezone, and settings. Schedule shifts across locations, control which managers can access which locations, and handle timezone differences automatically.

Perfect for:

  • • Businesses with multiple stores/branches (retail chains, restaurant groups)
  • • Organizations across different timezones (nationwide operations)
  • • Franchises managing independent locations
  • • Multi-site operations (warehouses, offices, clinics)
  • • Any organization with 2+ physical locations

Key Benefits

  • • Centralized scheduling for all locations in one system
  • • Automatic timezone handling (shifts display in location's local time)
  • • Manager access control (limit managers to specific locations)
  • • Location-specific staffing requirements and role rules
  • • Cross-location reporting and analytics

Adding Locations

Accessing Locations Page

  • • Navigate to: Settings → Locations (/{orgId}/locations)
  • • Available to: HEAD_MANAGER role only
  • • Regular MANAGER cannot add/edit/delete locations
  • • Page title: "Locations"

Location Creation Form

Required Fields:

1. Location Name (required)

  • • Text input field
  • • Example: "Downtown Store", "Brooklyn Clinic", "LA Warehouse"
  • • Must be unique within organization
  • • Used throughout app to identify location

2. Address (optional)

  • • Text area for full address
  • • Example: "123 Main St, New York, NY 10001"
  • • Displayed in location details
  • • Helpful for employees to know where to work

3. Timezone (required)

  • • Dropdown of IANA timezone identifiers
  • • Default: America/New_York (Eastern Time)
  • • Examples: America/Los_Angeles, America/Chicago, America/Denver
  • • CRITICAL: All shifts at this location display in this timezone
  • • Cannot be changed after creation (would affect existing shifts)

Creating the Location

  • • Click "+ Add Location" button to open form
  • • Fill in name, address (optional), and timezone
  • • Click "Create Location" to submit
  • • API call: POST /api/orgs/{orgId}/locations
  • • Location assigned unique ID (UUID)
  • • isActive field set to true (active location)
  • • Success: Location appears in list immediately
  • • Cross-tab sync: Other open tabs see new location

First Location Created Automatically

During organization setup, a default "Main Location" is created automatically with timezone America/New_York. You can rename or delete this location after creating others.

Editing Locations

How to Edit

  • • Click pencil icon next to location in list
  • • Opens edit form with pre-filled current values
  • • Available to: HEAD_MANAGER only

Editable Fields

  • Name: Can be changed anytime
  • Address: Can be changed anytime
  • Timezone: Can be changed (affects all shifts at this location)

Warning: Changing Timezone

Changing a location's timezone affects how all shifts at that location are displayed. If you have existing shifts scheduled at "9:00 AM", they will still show as "9:00 AM" but now in the NEW timezone. Only change timezone if the physical location actually moved to a different timezone.

Saving Changes

  • • Click "Save Changes" button
  • • API call: PUT /api/orgs/{orgId}/locations
  • • Validates location belongs to organization
  • • Updates updatedAt timestamp
  • • Success: Changes reflect immediately in all views
  • • Cross-tab sync: Other open tabs update automatically

Deleting Locations

How to Delete

  • • Click trash icon next to location in list
  • • Confirmation prompt: "Are you sure you want to delete this location?"
  • • Must click "OK" to proceed
  • • Available to: HEAD_MANAGER only

What Happens During Deletion

Soft Delete (Safe):

  • • Location NOT permanently deleted from database
  • • isActive field set to false (inactive)
  • • Location hidden from location list
  • • Historical data preserved (shifts, assignments, timesheets)
  • • Existing shifts at this location remain intact
  • • Cannot create NEW shifts at deleted location

Cannot Restore Deleted Locations

Once deleted (isActive = false), locations cannot be restored through the UI. Contact support if you accidentally deleted a location. Better approach: Keep inactive locations but stop scheduling shifts there.

Timezone Handling

Each location has its own timezone. When you create a shift at a location, the shift times are stored and displayed in that location's timezone. This ensures employees see shift times in their local time, even if your organization spans multiple timezones.

How It Works

Example: Two Locations

Location 1: "New York Store" (America/New_York - Eastern Time)
Location 2: "LA Store" (America/Los_Angeles - Pacific Time)

You create a shift at "New York Store" for 9:00 AM - 5:00 PM.
→ Shift displays as 9:00 AM - 5:00 PM Eastern Time

You create a shift at "LA Store" for 9:00 AM - 5:00 PM.
→ Shift displays as 9:00 AM - 5:00 PM Pacific Time

Even though both shifts are "9 AM - 5 PM", they occur at different absolute times (3-hour difference). XShift handles this automatically.

Timezone Storage

  • • Shift times stored as timezone-naive strings ("09:00", "17:00")
  • • Location's timezone stored separately on location record
  • • When displaying shifts: Combine shift time + location timezone
  • • No conversion needed (times represent local time at location)

Employee View

  • • Employees see shifts in location's local time
  • • No confusion about "what time should I arrive?"
  • • If shift says 9:00 AM at "LA Store", arrive at 9:00 AM Pacific
  • • Timezone identifier shown in shift details for clarity

Manager View (Multi-Location)

  • • Schedule calendar shows shifts in each location's timezone
  • • Filters available to view specific location(s)
  • • Location timezone badge shown on each shift card
  • • Helps managers understand "this shift is 9 AM Pacific, not Eastern"

Manager Location Access Control

Restrict which locations a manager can view and schedule shifts for. Perfect for regional managers who should only manage their assigned locations, not the entire organization.

Access Levels

HEAD_MANAGER

  • • Full access to ALL locations automatically
  • • Can create, edit, delete locations
  • • Can schedule shifts at any location
  • • Can view all employees across all locations
  • • Cannot be restricted

MANAGER (with location restrictions)

  • • Access limited to assigned locations only
  • • Cannot create/edit/delete locations
  • • Can only schedule shifts at assigned locations
  • • Can only view employees assigned to their locations
  • • Controlled via ManagerPermission.allowedLocationIds

MANAGER (without restrictions)

  • • Access to all locations (if no ManagerPermission exists)
  • • Same as HEAD_MANAGER for scheduling (but can't edit locations)
  • • Default behavior before restrictions added

Setting Location Access

  • • Navigate to: Settings → Manager Permissions
  • • Select manager to edit
  • • Check boxes for allowed locations
  • • Leave all unchecked = access to all locations
  • • Check specific locations = restrict to only those
  • • Available to: HEAD_MANAGER only

What Gets Filtered

When manager has restricted location access:

  • Locations dropdown: Shows only allowed locations
  • Schedule calendar: Shows only shifts at allowed locations
  • Employee list: Shows only employees at allowed locations
  • Reports: Filtered to allowed locations only
  • Auto-assignment: Only assigns to shifts at allowed locations

Cross-Location Scheduling

Viewing Multiple Locations

  • • Schedule calendar shows all locations by default (for HEAD_MANAGER)
  • • Location filter dropdown to select specific location(s)
  • • Each shift card shows location badge
  • • Color-coded by location (optional)

Creating Shifts at Different Locations

  • • Location dropdown in shift creation form
  • • Select target location before setting times
  • • Shift times interpreted in selected location's timezone
  • • Example: Create "9 AM shift" at "LA Store" = 9 AM Pacific

Schedule Templates Across Locations

  • • Save schedule template from one location
  • • Apply template to different location
  • • Use location filter when applying template
  • • Example: "Downtown schedule" applied to "Suburban store"
  • • Times preserved (9 AM at downtown becomes 9 AM at suburban)

Employee Assignment Across Locations

Important:

Employees can be assigned to shifts at any location. XShift does NOT restrict employees to specific locations. If you need location-specific employees, use manager location access control to prevent managers from assigning wrong employees.

Location-Specific Settings

Role-Based Staffing Requirements

  • • Define required roles per location
  • • Example: "Downtown needs 3 servers + 2 chefs"
  • • Navigate to: Settings → Advanced Scheduling → Staffing Requirements
  • • Select location, add role requirements
  • • Enforced when creating shifts at that location

Location Data Tracked

  • • Total shifts created at location
  • • Total hours scheduled at location
  • • Employee count assigned to location shifts
  • • Labor costs by location (via payroll export)
  • • Timezone for all time-based reports

Best Practices

✅ Set Correct Timezone Upfront

Choose the correct timezone when creating a location. Changing timezone later can cause confusion for existing shifts. If location operates in Eastern Time, use America/New_York from the start.

✅ Use Descriptive Location Names

Name locations clearly: "Brooklyn Store", "Dallas Warehouse", "SF Clinic". Avoid generic names like "Location 1" that employees won't recognize.

✅ Add Address for Employee Clarity

Include full address so employees know exactly where to report for work. Especially important if you have multiple locations in same city.

✅ Restrict Manager Access When Needed

For regional managers, set location restrictions so they only see their assigned locations. Prevents accidental scheduling at wrong location.

✅ Filter Reports by Location

When analyzing labor costs or schedules, filter by location to get accurate per-location metrics. Don't mix all locations together unless needed.

Get Started

Log in to your Head Manager dashboard and start managing multiple locations.

Go to Locations →
Multi-Location Management - Manage Multiple Business Locations | XShift AI