ForHosting KIT · Finance & money

Meeting room double booking checker

Planning from 09:00 to 10:30 and interviews from 10:00 to 11:00 clash between 10:00 and 10:30, while a review starting at 11:00 is fine. Every overlapping pair is listed, not just the first. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon

A shared meeting room can appear available even when two reservations quietly occupy the same part of the day. This checker reviews a list of bookings for one room, validates each time range, and reports every pair that overlaps. It uses clear same-day, 24-hour times and treats a booking's end as available for the next booking, so consecutive reservations are accepted. The result is deterministic and ready for scheduling checks, import validation, or a concise conflict report before a calendar is published.

Prepare one room's bookings

Send the reservations for a single room in the bookings list. Use stable identifiers from your scheduling system when possible, because the response names conflicts with those identifiers rather than relying on row positions. The checker rejects an empty list, malformed records, duplicate identifiers, impossible clock values, and inputs above the published limit.

It also rejects a booking whose end precedes its start instead of guessing that the reservation crosses midnight. If your source contains dates, time zones, or overnight reservations, split or normalize that data before calling this capability. This explicit contract prevents a local clock value from being interpreted differently on a server, browser, or spreadsheet and keeps repeated runs identical.

Understand what counts as a conflict

Bookings are evaluated as half-open intervals: the start belongs to the reservation, while the exact end is available to the next reservation. Therefore, a booking from 09:00 to 10:00 and another from 10:00 to 11:00 are back-to-back and do not conflict. If the second begins at 09:59, the pair is reported.

For each conflict, the response includes both booking identifiers and the start and end of the shared period. A zero-duration entry, where start equals end, is valid but occupies no time and cannot overlap another booking. The algorithm returns every conflicting pair, not merely the first conflict or one conflict per booking.

That distinction matters when several reservations pile up around the same hour: three mutually overlapping bookings produce three pairs, giving an administrator the complete set of relationships to investigate. Results are consistently ordered by time, with original input order used as a final tie breaker, so automated comparisons and audit records remain stable.

Use the report in a scheduling workflow

The top-level result states how many bookings were checked, whether any conflicts exist, and how many conflicting pairs were found. When conflicts exist, use the overlap boundaries to explain the precise contested window instead of presenting a vague double-booking alert. The capability deliberately does not choose a winner, move meetings, or combine adjacent reservations; those actions depend on organizational priority and should remain with your scheduling workflow.

Run it before publishing a room calendar, after importing reservations from another system, or whenever a batch edit changes many times at once.

Validate a calendar import

Check imported room reservations before they replace or supplement the schedule in your primary calendar.

Guard a batch update

Detect conflicts introduced when an administrator shifts many meeting times in one operation.

Create a conflict report

List the exact booking pairs and shared time windows that a facilities coordinator needs to resolve.

What time format should I use?

Use 24-hour times in HH:MM or HH:MM:SS format, such as 09:30 or 14:05:20.

Do back-to-back bookings conflict?

No. If one booking ends at the exact moment another starts, the room is considered available for the second booking.

What happens when an end time is earlier than its start time?

Overnight ranges must be normalized or split before checking.

Does the checker stop after the first overlap?

No. It reports every conflicting pair, including all pairwise conflicts in a group of simultaneous bookings.

Can I check several rooms in one request?

Group bookings by room and check each group separately.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/biz/meeting-room-double-booking-check

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/biz/meeting-room-double-booking-check \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"bookings":[{"booking_id":"planning","start":"09:00","end":"10:30"},{"booking_id":"interviews","start":"10:00","end":"11:00"},{"booking_id":"review","start":"11:00","end":"11:30"}]}'
{
  "bookings": [
    {
      "booking_id": "planning",
      "start": "09:00",
      "end": "10:30"
    },
    {
      "booking_id": "interviews",
      "start": "10:00",
      "end": "11:00"
    },
    {
      "booking_id": "review",
      "start": "11:00",
      "end": "11:30"
    }
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "biz.meeting_room_double_booking_check",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

max_items1000
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Prepare one room's bookings

Every row needs a unique booking_id plus start and end values written as 24-hour times, either HH:MM or HH:MM:SS. Keeping one room and one day per request makes the result direct: any reported pair is a genuine contention for the same physical space.

Use the report in a scheduling workflow

The conflicting_pairs list can feed a warning panel, an import rejection message, or a report sent to the people responsible for the reservations. A clean result has has_conflicts set to false and an empty pair list, which is convenient for a simple pass-or-stop rule. It runs without network access, storage, randomness, or the current date, and an API request is priced using $0.002, making the same input suitable for repeatable tests and production validation.

What does an API request cost?

Each API request costs $0.002. The browser version uses the same deterministic checking logic.

Read the full KIT documentation →