Skip to main content
BLK
Step-by-Step Setup 5-10 minutes

Block Slots Setup

Calendars & Scheduling Basic
Need more detail? Read the full guide for config deep-dives and best practices.

Block Slots Setup

Create and manage blocked time periods on your GoHighLevel calendars. Blocked slots prevent bookings during specific windows, which is useful for lunch breaks, team meetings, vacations, or maintenance periods.

Prerequisites

Before you begin, confirm the following:

  • A GoHighLevel sub-account with at least one calendar configured
  • A Private Integration Token (PIT) with the calendars scope enabled
  • Your locationId from Settings > Business Info
  • A valid calendarId to block time on
  • A REST client like Postman, Insomnia, or curl installed

Set Up Authentication

Block slot endpoints use the same Bearer token as all calendar operations.

  1. Go to Settings > Integrations > Private Integrations
  2. Select or create a PIT with calendars scope (read and write)
  3. Copy the token:
export GHL_TOKEN="your-private-integration-token"
export LOCATION_ID="your-location-id"

Required headers:

Authorization: Bearer $GHL_TOKEN
Content-Type: application/json
Version: 2021-07-28

Make Your First Call

Create a blocked time slot:

curl -X POST "https://services.leadconnectorhq.com/calendars/blocked-slots" \
  -H "Authorization: Bearer $GHL_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Version: 2021-07-28" \
  -d '{
    "locationId": "'"$LOCATION_ID"'",
    "calendarId": "your-calendar-id",
    "startTime": "2026-03-10T12:00:00-05:00",
    "endTime": "2026-03-10T13:00:00-05:00",
    "title": "Lunch Break",
    "assignedUserId": "team-member-id"
  }'

The title field is optional but recommended for dashboard visibility. The assignedUserId specifies which team member’s schedule to block (required for round-robin calendars).

Update a blocked slot:

curl -X PUT "https://services.leadconnectorhq.com/calendars/blocked-slots/{blockId}" \
  -H "Authorization: Bearer $GHL_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Version: 2021-07-28" \
  -d '{
    "startTime": "2026-03-10T12:00:00-05:00",
    "endTime": "2026-03-10T13:30:00-05:00",
    "title": "Extended Lunch"
  }'

List blocked slots for a calendar:

curl -X GET "https://services.leadconnectorhq.com/calendars/blocked-slots?\
locationId=$LOCATION_ID&\
calendarId=your-calendar-id&\
startDate=2026-03-10&\
endDate=2026-03-14" \
  -H "Authorization: Bearer $GHL_TOKEN" \
  -H "Version: 2021-07-28"

Delete a blocked slot:

curl -X DELETE "https://services.leadconnectorhq.com/calendars/blocked-slots/{blockId}" \
  -H "Authorization: Bearer $GHL_TOKEN" \
  -H "Version: 2021-07-28"

Handle the Response

A successful POST returns 200 with the block object including id, calendarId, startTime, endTime, title, and assignedUserId.

The GET (list) endpoint returns a blockedSlots array filtered by the date range you specify. Each object includes the same fields plus creation metadata.

Blocked slots affect the Free Slots endpoint immediately. Any time window covered by a block will not appear as available. This happens without any additional configuration.

Common errors:

  • 401 — Token invalid or expired.
  • 404 — Block ID or calendar ID not found.
  • 422 — Missing required fields. The create call needs locationId, calendarId, startTime, and endTime.
  • 400 — Invalid time format. Use ISO 8601 with timezone offset.

Test Your Setup

Verify blocked slots work correctly:

  1. Query free slots for a calendar on a specific date. Note an available time.
  2. Create a block covering that time window
  3. Re-query free slots for the same date. Confirm the blocked time no longer appears.
  4. List blocks for the date range and verify your new block is included
  5. Delete the test block and confirm the time slot returns to the free slots response

If the blocked slot does not affect availability, verify the calendarId and assignedUserId match the calendar and team member configuration.

Next Steps

Read the full Block Slots guide for recurring block patterns and bulk blocking strategies. Use Free Slots to verify availability after blocking, or manage appointments around blocked time with Appointment CRUD.

Stay sharp. New guides and playbooks as they drop.