Search Ctrl+K
Skip to Content

Parsing

Schedule parsing automatically imports your facility’s availability from external booking platforms. Connect once, and let the system sync your slots automatically.

What Is Schedule Parsing?

Schedule parsing links your sports facility to an external booking platform (like PickleHub or Rezerv) so that your facility’s availability syncs automatically. Instead of manually entering every time slot into the portal, your facility’s open times are imported directly from the platform where you already manage bookings.

This saves time and eliminates double-entry: you maintain your schedule in one place, and the portal always has the current availability.

ConceptMeaning
ParserThe service that reads your facility’s availability from an external platform
SourceThe external booking platform where your facility is listed
SyncAutomatic periodic update of slots from the source

Parsing is optional. You can manage your facility schedule entirely within the portal if you prefer.


When to Use Parsing

Use schedule parsing if:

  • Your facility is listed on an external platform — You have an account and an active facility page on one of the supported platforms (PickleHub, Rezerv, Playtomic, XBook, Courtly, Skedna, CourtGrid, Dulaco, Kortos, SuperSaaS, Courtogo, CourtBook)
  • You prefer single-source truth — You manage bookings only (or primarily) on the external platform and want the portal to mirror that schedule
  • You want to reduce manual work — Let the system import slots instead of typing them in manually

Do not use parsing if:

  • Your facility schedule is only in the portal
  • You don’t have an account on any supported external platform
  • You manage bookings across multiple platforms and need custom consolidation

Supported Sources

SourceURLStatusNotes
PickleHubhttps://picklehub.ph ✅ ReadyFull support
Sports360https://app.sports360.ph ⚠️ LimitedFacilities on this platform do not provide prices, so their slots are not shown in the portal
Rezervhttps://<clubname>.rezerv.co✅ ReadyFull support
Playtomichttps://playtomic.com/clubs/example ⚠️ LimitedA price is shown only for free hours; booked hours are not shown in the grid
XBookhttps://<tenant-host>/<slug>✅ ReadyMulti-tenant platform; login and password are part of the URL (see the XBook note below)
Courtlyhttps://www.courtly.cc/book/example ✅ ReadyFull support
Skednahttps://skedna.com/courts/example ✅ ReadyFull support
CourtGridhttps://courtgrid.ph ✅ ReadyFull support
Dulacohttps://<slug>.dulaco.net✅ ReadyMulti-tenant platform; unique subdomain for each facility
Kortoshttps://<tenant>.kortos.app/book✅ ReadyMulti-tenant booking platform; replace <tenant> with your facility’s tenant name
SuperSaaShttps://www.supersaas.com/schedule/<account>[/<schedule>]⚠️ LimitedThe source does not provide prices, so its slots are not created in the portal. Private schedules need the ?email= parameter
Courtogohttps://www.courtogo.com/venues/<venue>✅ ReadyFull support
CourtBookhttps://courtbooksolutions.org/sportshub/your-venue✅ ReadyBooking through the courtbooksolutions.org site; only free slots with a price are shown

Setting Up Parsing

Follow these steps to enable schedule parsing for a facility:

Open the Facility Editor

Navigate to your facility management page and click the edit icon on the facility card. A drawer panel opens on the right.

Expand the Parsing Section

Look for the “Parsing” accordion in the drawer. Click it to expand.

Enable Parsing

Toggle the “Enable Parsing” switch to turn it on. Additional fields appear below.

Select a Source

In the dropdown menu, choose the external platform where your facility is listed. An example URL appears below the field to guide you.

Enter the Facility URL

Paste the full URL of your facility’s page on the external platform. For example:

  • PickleHub: https://picklehub.ph/club-name
  • Sports360: https://app.sports360.ph/facility/xyz
  • Rezerv: https://clubname.rezerv.co
  • Playtomic: https://playtomic.com/clubs/example
  • XBook: https://<host>/<path>?username=<login>&password=<password>
  • Courtly: https://www.courtly.cc/book/example
  • Skedna: https://skedna.com/courts/example
  • CourtGrid: https://courtgrid.ph/explore/019f058e-8025-707c-91db-ad2fcdb8cb2b
  • Dulaco: https://<your-club-slug>.dulaco.net
  • Kortos: https://<tenant>.kortos.app/book
  • SuperSaaS: https://www.supersaas.com/schedule/<account>/<schedule>
  • Courtogo: https://www.courtogo.com/venues/<venue>
  • CourtBook: https://courtbooksolutions.org/sportshub/your-venue

XBook note: Your XBook login and password are part of the URL, so they are saved with it as you enter it. They can appear in your browser history and in the logs of proxies and servers the URL passes through. Users who can edit this facility’s parsing settings can see them, and the portal API returns the saved URL to those users. Application logs mask the credentials. We recommend a separate XBook account used only to read the schedule, rather than your main account.

SuperSaaS note: Public schedules need only the schedule link. For a private schedule, add ?email=<address with access to the schedule> to the link. No other query parameters are accepted.

Scan for Courts

Click the scan button (radar icon) on the right side of the URL field. The system connects to the external platform and retrieves a list of all courts at this venue.

Select Your Court

Once the scan completes, a dropdown appears showing all courts found on the platform. Select one court from the list that you want to sync via the parser. If you have multiple courts and want to sync them all, you’ll set up parsing separately for each one.

Test the Connection

Click the “Test parsing” button below the court dropdown. The system simulates importing slots for the tested window and shows a summary:

Found 42 available, 10 booked slots in the tested window, last available 25.05 19:00

Click “Show Details” to see a table of all slots found (date, time, court).

Save

If the test is successful, click “Save” in the drawer header. Parsing is now active.


Managing Active Parsing

Once parsing is enabled for a facility:

The parser runs automatically on a schedule. Imported slots appear in your Facility Schedule. A complete update of all slots happens approximately once an hour for each facility, while the nearest days are updated with each parser run.

In search, customers see only what the source actually reported: an hour is shown as free only if the source confirmed it. Hours with no data from the source (beyond the refreshed window or before the first load) are not shown as free. If you close the whole facility on the external platform (for example, for repairs), its free hours show as booked (at their previous price) in the portal after the next load.

ActionEffect
Toggle offParsing is paused. The saved settings, including the URL, are kept, but no new slots are imported
Toggle onParsing resumes and imports slots again
Edit URLScan for courts again and retest before saving
Delete configurationRemoves the parsing setup; previously imported slots remain

The facility’s Run history records two kinds of events:

  • Sync — a run that changed slots: how many were added, updated, and closed.
  • Error — a run that failed, with the error message and the URL with credentials masked.

Runs that changed no slots are not listed. To see the latest successful check, look at Last checked at the top of Run history. The Run history button is available after you save the facility, and Run history is visible to users who can view the facility.


Slot Prices

The portal takes each slot’s price only from the external platform’s data. The portal does not make up prices and does not use default values.

  • The platform provided a price — the slot appears with that price.
  • The platform set the price to 0 — the slot appears with a price of 0. This is the real price from the source.
  • The platform did not provide a price for the hour (for example, no rate is set for night hours) or the rate cannot be read — the slot for that hour is not created and not shown in the portal. A zero price is never used in place of a missing one.
  • A free hour disappears from the data — if an hour was free and is no longer in the fresh data from the platform, it is closed in the portal and shown as booked at its previous price.
  • Playtomic — a price is shown only for free hours. Booked hours are not shown in the grid: there is an empty space instead of “booked”. This is an intentional limitation.
  • Sports360 and SuperSaas — these platforms do not provide prices, so their slots are not created in the portal.
  • Old slots with a price of 0.00 — slots with a price of 0.00 that were created earlier and fall outside the period the parser updates are not changed.

Booked slots follow the same rules: if the price of a booked hour is unknown, that slot is not created in the portal.

If an expected hour does not appear in your schedule, check on the external platform that a rate is set for that hour.


Troubleshooting

If you encounter an error while setting up or testing parsing, refer to this table:

Error MessageCauseSolution
URL is invalid or malformedInvalid URL formatCheck the URL in your browser’s address bar and copy it exactly
Facility not foundURL is correct but the facility doesn’t exist on the platform (or the platform is temporarily not responding to verification requests)The system will automatically retry this check during the next sync cycle. If the error persists, verify the facility name matches on the external platform, or contact platform support
Source unavailableThe external platform is not respondingWait a few minutes and try again
Source response timed outThe source took too long to respondThe platform may be slow; wait and retry
Failed to parse source responseThe source returned an unexpected formatThis source may not be fully supported yet; check the Supported Sources section
This schedule is closed behind a login on the source site — the parser only reads public schedules. Add ?email=<address with access to the schedule> to the link, make the schedule public in the source settings, or enter a link to a public scheduleThe schedule is private and the source asks for a login (SuperSaaS)Add ?email= with an address that has access to the schedule to the link, make the schedule public, or use a link to a public schedule
The source did not accept the email address from the link when signing in. Check that this email has access to the schedule on the source site, or enter a link with an email that doesThe ?email= address has no access to the scheduleCheck that this address has access to the schedule on the source site, or enter a link with an address that does
Parsing service unavailableThe portal’s parsing service is offlineContact admin
Source is not configured on the serverThe backend is not set up for this sourceContact admin
Source is no longer supportedThis source was deprecatedChoose a different source
No facilities found at this URLURL is valid, the parser responded but returned no objectsCheck that the club page actually has courts or facilities listed
Invalid request dataSomething went wrong on the portal sideContact admin

Next Steps

Once parsing is active:

  • Slots appear automatically — Check your Facility Schedule for imported time slots
  • Sync happens periodically — New and updated slots from the external platform appear in the portal
  • Manage slots as usual — You can still create, edit, or delete slots within the portal; parsing doesn’t prevent manual adjustments
  • Check runs — Open Run history to see slot changes and errors

If you disable parsing and then re-enable it later, the parser will fetch slots again from where it left off. Existing portal-only slots are not affected.


Frequently Asked Questions

Does the parser support facilities that operate past midnight?

Yes. The parser supports schedules that run past midnight. For example, if your facility operates from 06:00 to 01:00 (6 AM to 1 AM the next day), the parser imports the slots for those hours without errors. No additional configuration is needed. A slot appears in the portal only if the platform provided a price for it. If no rate is set for night hours, those hours are not shown in the portal.


Theme Customizer

Customize & Preview in Real Time

Theming

Primary Color

Mode

Light

Dark

System

Skin

Default

Bordered


Layouts

Layouts

Vertical

Collapsed

Horizontal

Content

Compact

Wide