<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Marko Banušić</title>
    <description>The latest articles on DEV Community by Marko Banušić (@mbanusic).</description>
    <link>https://dev.to/mbanusic</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3426834%2Ffc0fede7-0ce6-48b5-8c0e-53a90fe84e57.jpg</url>
      <title>DEV Community: Marko Banušić</title>
      <link>https://dev.to/mbanusic</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mbanusic"/>
    <language>en</language>
    <item>
      <title>How to Record Matches on Club Courts Automatically</title>
      <dc:creator>Marko Banušić</dc:creator>
      <pubDate>Mon, 14 Sep 2026 17:21:28 +0000</pubDate>
      <link>https://dev.to/sportyplus/how-to-record-matches-on-club-courts-automatically-4571</link>
      <guid>https://dev.to/sportyplus/how-to-record-matches-on-club-courts-automatically-4571</guid>
      <description>&lt;p&gt;Ask any club that has put a camera on a court what happened next, and you will hear a version of the same story. The camera works. The footage exists. And then a member asks for "the video from Tuesday", and somebody spends twenty minutes scrubbing through a day of continuous recording, exports a clip, and tries to send a two-gigabyte file over WhatsApp.&lt;/p&gt;

&lt;p&gt;The camera was never the hard part. The hard part is knowing which ninety minutes matter, whose they are, and how they get to that person without anybody doing work. That is a booking-system problem, not a camera problem — and it is why court video belongs in the same system as the bookings.&lt;/p&gt;

&lt;p&gt;This guide covers how that works: what camera to buy, what the club has to configure, what the member sees, and what happens to the footage afterwards.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9y0jmb8t4dzswwat09ns.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9y0jmb8t4dzswwat09ns.jpg" alt="A padel match recording in SportyPlus, with Upload to YouTube and Download buttons beneath the player" width="800" height="612"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What the player gets: their booking, recorded, waiting in their account. Padel Karlovac, on SportyPlus.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem with "we installed a camera"
&lt;/h2&gt;

&lt;p&gt;A court camera left to itself produces one thing: an unbroken stream of video that nobody has asked for. Everything useful about it has to be added by hand.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Someone has to find the match in the timeline.&lt;/li&gt;
&lt;li&gt;Someone has to decide whether this member is allowed to have it.&lt;/li&gt;
&lt;li&gt;Someone has to get a large file out of the building.&lt;/li&gt;
&lt;li&gt;Someone has to delete old footage, or the storage bill grows forever and the club quietly accumulates months of video of identifiable people, which is a data-protection problem waiting for a complaint.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every one of those steps is manual, and every one of them is the kind of task that gets dropped the week the club is busy. Clubs usually discover this about three months in, and the camera becomes a thing that is technically installed.&lt;/p&gt;

&lt;h2&gt;
  
  
  How clubs normally handle it
&lt;/h2&gt;

&lt;p&gt;The traditional answer is a dedicated match-recording product: a proprietary camera, a proprietary app, a per-court subscription, and a separate account for the player. These work. They are also a second system, with a second login, a second support contact, and no idea what your bookings are — which means the player has to remember to press record, or to tell the app which slot was theirs.&lt;/p&gt;

&lt;p&gt;The other common answer is a phone on a tripod. Free, and about as reliable as you would expect.&lt;/p&gt;

&lt;h2&gt;
  
  
  The recommended approach: let the booking drive the camera
&lt;/h2&gt;

&lt;p&gt;The rule worth building everything else on is this: &lt;strong&gt;the booking is the instruction.&lt;/strong&gt; The club does not schedule recordings. The player does not press record. The reservation already says which court, which time, and which people — so it already contains everything the camera needs to be told.&lt;/p&gt;

&lt;p&gt;Concretely, that means four things should be true:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The court knows it has a camera.&lt;/strong&gt; Recording is offered only on courts that can do it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The player opts in when booking&lt;/strong&gt;, in the same step where they choose the court and pay.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recording starts and stops on the booking's own clock&lt;/strong&gt;, with no human involved.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The finished video belongs to the player who booked it&lt;/strong&gt;, and appears in their account without anyone sending anything.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Everything below is how SportyPlus implements that, but the design is worth copying regardless of what software you run.&lt;/p&gt;

&lt;h2&gt;
  
  
  Any camera that speaks RTMP
&lt;/h2&gt;

&lt;p&gt;There is no SportyPlus camera to buy. The requirement is one line: &lt;strong&gt;the camera must be able to push an RTMP stream&lt;/strong&gt;, which is a standard feature on essentially every IP camera sold for professional installation — Dahua, Hikvision, Reolink, Axis and the rest — and on many action cameras and encoders too.&lt;/p&gt;

&lt;p&gt;Setup is deliberately dull. In the club admin you create a camera, give it a name, and pick the court it points at. The system issues an RTMP URL with its own stream key. You paste that URL into the camera's own streaming settings. That is the integration.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fm437wbuzxsx4zu7v84tp.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fm437wbuzxsx4zu7v84tp.jpg" alt="The video cameras list in the SportyPlus club admin: four cameras, each mapped to a court, with active, recording, device and visibility status" width="800" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Four courts, four cameras. The one showing "Recording" has a booking on it right now — nobody at the club started it.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F43k9qocv5xxd4br1xb46.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F43k9qocv5xxd4br1xb46.jpg" alt="A camera's settings in SportyPlus, showing the RTMP address to push the camera stream to" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The whole integration: copy this address into the camera's streaming settings. The stream key is masked here.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That choice matters commercially. A club with cameras already installed for security can often stream from the hardware it owns. A club buying new can buy on price and picture quality from any supplier, rather than from whoever makes the recording platform.&lt;/p&gt;

&lt;h3&gt;
  
  
  The settings that actually decide whether it works
&lt;/h3&gt;

&lt;p&gt;A camera that pushes RTMP successfully can still produce nothing usable. In practice, the same handful of settings account for nearly every failed installation, so specify them to your installer up front:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setting&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;th&gt;Why&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Video codec&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;H.264&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;H.265 streams and then plays back nowhere. It fails silently.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Audio codec&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;AAC&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Any other codec produces a video with no sound at all.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stream&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Main stream&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A camera pushing its sub stream sends a low-quality picture and ignores your main-stream settings, which looks exactly like the settings not saving.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Resolution / bitrate&lt;/td&gt;
&lt;td&gt;1080p at around 4 Mbps&lt;/td&gt;
&lt;td&gt;Nothing re-encodes on the way to a viewer, so every person watching pulls the source bitrate.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Keyframe interval&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;1 second&lt;/strong&gt; (30 at 30 fps)&lt;/td&gt;
&lt;td&gt;This is the single setting that decides how far behind live the picture runs. Video is cut on keyframe boundaries, so a camera sending a keyframe every 25 seconds puts live view more than a minute behind the court.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bit rate type&lt;/td&gt;
&lt;td&gt;CBR, Smart Codec off&lt;/td&gt;
&lt;td&gt;Variable and "smart" modes drop quality exactly when there is movement — which is the whole point of a match recording.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Time zone&lt;/td&gt;
&lt;td&gt;UTC, DST off&lt;/td&gt;
&lt;td&gt;A camera an hour out records the wrong hour, twice a year.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Two of these — codec and audio — fail in a way that gives you no error message anywhere. If a new camera streams nothing, or streams silently, check those first.&lt;/p&gt;

&lt;h3&gt;
  
  
  The SD card is the safety net, not the plan
&lt;/h3&gt;

&lt;p&gt;Any camera with a memory card should be set to record to it continuously, around the clock, with overwrite-on-full. The live stream is what normally produces the video; the card is what saves the club when the internet drops mid-match. On Dahua devices reachable through their cloud service, SportyPlus can read that card and repair a recording that lost minutes to a network glitch, pulling the missing stretch back off the camera automatically.&lt;/p&gt;

&lt;p&gt;A club without that capability still benefits from the card, just manually.&lt;/p&gt;

&lt;h2&gt;
  
  
  What happens during a booking
&lt;/h2&gt;

&lt;p&gt;Once a court has an active camera, the recording add-on appears in the booking flow — the same list where members add anything else to a reservation. The player ticks &lt;em&gt;match recording&lt;/em&gt; and books as normal.&lt;/p&gt;

&lt;p&gt;From there:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The system checks every minute for bookings that have just started on a camera court and starts the recording, naming it after the reservation.&lt;/li&gt;
&lt;li&gt;The booking's first participant is recorded as the owner of the video.&lt;/li&gt;
&lt;li&gt;When the booking's end time passes, the recording stops and the file is stored.&lt;/li&gt;
&lt;li&gt;The video appears in that player's account, where they can watch it, download it, or send it to YouTube.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nobody at the club touches any of it. An administrator can see every camera and every recording, but nothing waits on them.&lt;/p&gt;

&lt;h3&gt;
  
  
  A worked example
&lt;/h3&gt;

&lt;p&gt;A hypothetical padel club: four courts, cameras on two of them, roughly 40 booked hours a week across the two camera courts.&lt;/p&gt;

&lt;p&gt;Before, recording was a favour — a member asked, someone at the desk went looking, and it happened maybe twice a month because it was nobody's job. Now, suppose a quarter of bookings on those courts tick the add-on. That is around 10 recordings a week that the club produces at zero marginal staff cost, each one attached to the person who paid for the court.&lt;/p&gt;

&lt;p&gt;If the club later charges a flat fee for the add-on, the same 10 recordings a week become a revenue line on courts that were already booked. If it stays free, it is a differentiator on the two courts the club would most like people to book. Either way the operational cost is the same: nothing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sharing: the player's own YouTube channel
&lt;/h2&gt;

&lt;p&gt;The last mile is the one most clubs get stuck on, because match video is large and email is not.&lt;/p&gt;

&lt;p&gt;SportyPlus solves it by uploading to the &lt;strong&gt;player's own YouTube channel&lt;/strong&gt;, not the club's. The member connects their Google account once, from the page where they are watching their recording. After that, sharing a match is: press the button, give it a title, pick a privacy setting, done.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyq404aglwpmbpb03xdde.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyq404aglwpmbpb03xdde.jpg" alt="The Upload to YouTube dialog in SportyPlus, showing the title, description and a " width="502" height="476"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Uploading to the member's own channel. Unlisted is the default, and the dialog says why.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A few details worth knowing, because they are deliberate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The upload happens server-side.&lt;/strong&gt; The file goes from our storage straight to YouTube. Nothing has to download to the member's phone first, and closing the browser does not interrupt it. If a chunk fails, it resumes from the byte it reached rather than starting over.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The default privacy is &lt;em&gt;unlisted&lt;/em&gt;.&lt;/strong&gt; The recording shows identifiable people on a court. It becomes searchable only if the member deliberately chooses &lt;em&gt;public&lt;/em&gt;; they can also pick &lt;em&gt;private&lt;/em&gt;, visible to nobody but themselves.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The grant is per member, never per club.&lt;/strong&gt; The video is published by the player, on their channel, under their name. The club is not in the middle of it — which is also the honest answer to "who is responsible for this video being online".&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last point is worth dwelling on, because the alternative — the club uploading footage of its members to a club channel — is a consent conversation most clubs do not want to have, on every single match.&lt;/p&gt;

&lt;h2&gt;
  
  
  Retention and privacy
&lt;/h2&gt;

&lt;p&gt;Continuous court video of named people is personal data, and the reason most clubs should &lt;em&gt;not&lt;/em&gt; keep it indefinitely is not storage cost.&lt;/p&gt;

&lt;p&gt;SportyPlus keeps a recording for &lt;strong&gt;30 days&lt;/strong&gt; and then deletes it — file and record together — automatically. That window is chosen to be long enough for a player to notice, watch and keep what they want, and short enough that the club is not sitting on a year of surveillance-grade footage of its membership. A player who wants a match permanently sends it to their YouTube channel, where it becomes theirs to keep.&lt;/p&gt;

&lt;p&gt;If you are specifying this yourself, pick a number, write it into your club's privacy notice, and make sure something actually enforces it. A retention policy nobody implements is worse than no policy, because it is a written promise you are visibly breaking.&lt;/p&gt;

&lt;h2&gt;
  
  
  Beyond recording: live view and analysis
&lt;/h2&gt;

&lt;p&gt;Two things come more or less free once a camera is streaming to the booking system.&lt;/p&gt;

&lt;p&gt;The first is &lt;strong&gt;live view&lt;/strong&gt;. The same stream can be watched while the match is happening — useful for a parent who cannot get to the club, or a coach watching a second court. Cameras can also be marked private, so a club can record matches without publishing a live window into its courts.&lt;/p&gt;

&lt;p&gt;The second is &lt;strong&gt;automatic analysis&lt;/strong&gt;. Once a recording exists and is tied to a court, a booking and a sport, software can go through it: track the players, track the ball, and produce movement heatmaps and rally statistics. In SportyPlus this is a separate opt-in on top of the recording, with its own consent step, precisely because processing video of people is a bigger ask than storing it for a month.&lt;/p&gt;

&lt;p&gt;Neither needs new hardware. They need the camera to have been wired into the booking system in the first place, which is the argument for doing it that way from the start.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practical recommendations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Start with one court, not the fleet.&lt;/strong&gt; Put a camera on the court that gets the best matches — the show court, or the one the league plays on — and see how many people tick the box before buying four more.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Specify the codec settings in the purchase order.&lt;/strong&gt; H.264, AAC, main stream, CBR, one-second keyframes. Handing your installer that line saves a return visit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check where the camera can see.&lt;/strong&gt; A camera framed on one court that also covers the club terrace is a different, harder privacy conversation. Frame it on the court.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Put up a sign.&lt;/strong&gt; Recording is visible, signposted and opt-in, or it is a problem. This costs nothing and settles the issue before it starts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wire power and network before the camera arrives.&lt;/strong&gt; Court-side network runs are the part of this project that actually takes time; the software configuration is ten minutes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Decide the price before you launch, not after.&lt;/strong&gt; Free-then-charged is a much harder message than a modest flat fee from day one — and the fee is per booking, so members can predict it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Do it at the same time as any other court electrical work.&lt;/strong&gt; If you are already re-lighting or fitting &lt;a href="https://www.sporty.plus/blog/court-access-control-and-lighting" rel="noopener noreferrer"&gt;booking-driven access control and lighting&lt;/a&gt;, the electrician is on site and the trenches are open.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Related questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Do we have to buy special cameras?&lt;/strong&gt;&lt;br&gt;
No. Any camera that can push an RTMP stream works, which covers most professional IP cameras and many encoders. You paste the URL the system gives you into the camera's streaming settings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who owns the recording?&lt;/strong&gt;&lt;br&gt;
The player who booked the court. It appears in their account, and if they send it to YouTube it goes to their own channel under their own name — not the club's.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What happens if the internet drops during a match?&lt;/strong&gt;&lt;br&gt;
The live stream stops, so that stretch is missing from the recording. This is why cameras should also record continuously to their own memory card; on supported devices SportyPlus can pull the missing minutes back off the card and repair the recording automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How long is footage kept?&lt;/strong&gt;&lt;br&gt;
Thirty days, after which the file and its record are deleted automatically. Anything a player wants permanently, they upload to their own YouTube channel.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can members watch a court live?&lt;/strong&gt;&lt;br&gt;
Yes, where the club allows it — the same stream that gets recorded can be watched live. Cameras can be marked private if the club wants recordings without a public live view.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can we charge for it?&lt;/strong&gt;&lt;br&gt;
Yes. Recording is an add-on to the booking, so it is priced and paid alongside the court itself rather than invoiced separately.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does every booking on that court get recorded?&lt;/strong&gt;&lt;br&gt;
No. Only bookings where someone ticked the add-on. A court with a camera does not record its empty hours, and members who do not want to be filmed simply do not opt in.&lt;/p&gt;




&lt;p&gt;Court video works when the booking system is the thing driving the camera — and when the player, not the club, ends up holding the video. &lt;a href="https://www.sporty.plus/modules/court_booking" rel="noopener noreferrer"&gt;Manage court bookings, add-ons and payments with SportyPlus&lt;/a&gt;, or read how the same booking data &lt;a href="https://www.sporty.plus/blog/court-access-control-and-lighting" rel="noopener noreferrer"&gt;opens the gate and turns on the lights&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>hardware</category>
      <category>software</category>
      <category>systemdesign</category>
    </item>
    <item>
      <title>Welcome to the SportyPlus blog</title>
      <dc:creator>Marko Banušić</dc:creator>
      <pubDate>Sun, 13 Sep 2026 18:30:39 +0000</pubDate>
      <link>https://dev.to/sportyplus/welcome-to-the-sportyplus-blog-468p</link>
      <guid>https://dev.to/sportyplus/welcome-to-the-sportyplus-blog-468p</guid>
      <description>&lt;p&gt;We're launching this blog to share what we're working on, how clubs are using&lt;br&gt;
SportyPlus, and what's coming next.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to expect
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Product updates&lt;/strong&gt; — new modules, improvements and fixes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Case studies&lt;/strong&gt; — how real clubs run bookings, memberships, tournaments and finance on SportyPlus.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Guides&lt;/strong&gt; — practical advice for digitising a sports club.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Get in touch
&lt;/h2&gt;

&lt;p&gt;Have a topic you'd like us to cover? Email us at&lt;br&gt;
&lt;a href="mailto:info@sporty.plus"&gt;info@sporty.plus&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Social Media for Sports Clubs: What to Post and How to Post It Everywhere at Once</title>
      <dc:creator>Marko Banušić</dc:creator>
      <pubDate>Sun, 13 Sep 2026 18:30:05 +0000</pubDate>
      <link>https://dev.to/sportyplus/social-media-for-sports-clubs-what-to-post-and-how-to-post-it-everywhere-at-once-2def</link>
      <guid>https://dev.to/sportyplus/social-media-for-sports-clubs-what-to-post-and-how-to-post-it-everywhere-at-once-2def</guid>
      <description>&lt;p&gt;Most sports clubs end up with a Facebook Page, an Instagram account, probably a members' WhatsApp or Telegram group, and sometimes LinkedIn or X. Keeping all of them fed is a real job, and it usually lands on one volunteer.&lt;/p&gt;

&lt;p&gt;This guide is about making social media for sports clubs manageable: which channels a club actually needs, what is worth posting, how often, and how to stop retyping the same announcement into five apps every time.&lt;/p&gt;

&lt;h2&gt;
  
  
  The two jobs social media does for a club
&lt;/h2&gt;

&lt;p&gt;Club social accounts do two different things, and it helps to keep them separate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Public reach.&lt;/strong&gt; Attracting new members, promoting events, showing that the club is active and well run. This is Facebook, Instagram, LinkedIn, X, and occasionally Reddit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Member operations.&lt;/strong&gt; Telling current members that court 3 is closed tomorrow, that Saturday's session is rained off, that league entries open Monday. This is a members' channel — Telegram, Discord, Slack — and email.&lt;/p&gt;

&lt;p&gt;These audiences want different things. A member checking the group for a closure notice does not want it buried under promotional posts. A prospective member browsing your Instagram does not need to see "reminder: pay your subs". Mixing the two annoys both.&lt;/p&gt;

&lt;h2&gt;
  
  
  The real problem: one announcement, many places
&lt;/h2&gt;

&lt;p&gt;Say the autumn league opens for entries on Saturday. You write the announcement once in your head, then:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;post it to the Facebook Page&lt;/li&gt;
&lt;li&gt;reformat it for Instagram, which needs an image&lt;/li&gt;
&lt;li&gt;paste it into the members' Telegram group&lt;/li&gt;
&lt;li&gt;start an email to the membership&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fifteen to twenty minutes later it is out — except you forgot LinkedIn, and the wording drifted between the versions. Now do that again for every court closure, every result, every renewal deadline. Across a season it is hours of work, and the coverage is always uneven.&lt;/p&gt;

&lt;p&gt;The content is not the hard part. A club's announcements are short and there are not many kinds of them. The distribution is the hard part.&lt;/p&gt;

&lt;h2&gt;
  
  
  How clubs normally handle it
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;One person, posting through each app in turn.&lt;/strong&gt; This works until that person is on holiday, and then the club goes quiet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A generic social scheduler&lt;/strong&gt; such as Buffer, Later or Hootsuite. These do solve cross-posting for the public channels. But they are built around a marketing content calendar, they are another subscription and login, they know nothing about your members or your bookings, and most of them do not reach Telegram or Discord at all.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quietly abandoning some channels.&lt;/strong&gt; Extremely common, and not always the wrong call — an account nobody feeds looks worse than an account that does not exist. But it usually happens by accident rather than decision.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which channels a club actually needs
&lt;/h2&gt;

&lt;p&gt;Be honest about what you will maintain.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Channel&lt;/th&gt;
&lt;th&gt;Best for&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Facebook Page&lt;/td&gt;
&lt;td&gt;Local reach, older members, events, results&lt;/td&gt;
&lt;td&gt;Still where most local club activity happens&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Instagram&lt;/td&gt;
&lt;td&gt;Younger members, photos, coach and player features&lt;/td&gt;
&lt;td&gt;Needs an image on every post&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LinkedIn&lt;/td&gt;
&lt;td&gt;Corporate memberships, sponsors, hiring coaches&lt;/td&gt;
&lt;td&gt;Skip it if the club does none of these&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;Fast text updates, live tournament scores&lt;/td&gt;
&lt;td&gt;Posting from another tool needs a paid X API plan (see below)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reddit&lt;/td&gt;
&lt;td&gt;Local subreddit where the club is active&lt;/td&gt;
&lt;td&gt;Only if such a community exists and welcomes club posts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Telegram&lt;/td&gt;
&lt;td&gt;Broadcasting announcements to all members&lt;/td&gt;
&lt;td&gt;Free, instant, no algorithm hiding your closure notice&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Discord&lt;/td&gt;
&lt;td&gt;Clubs with juniors, teams, topic channels, two-way chat&lt;/td&gt;
&lt;td&gt;Better than Telegram when you want structure&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Slack&lt;/td&gt;
&lt;td&gt;Committee and staff coordination&lt;/td&gt;
&lt;td&gt;Only if the club already runs on Slack&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The rule: pick &lt;strong&gt;one public channel and one member channel&lt;/strong&gt; that you commit to keeping current. Add a third only once the first two are consistently fed.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is worth posting
&lt;/h2&gt;

&lt;p&gt;A club's social calendar is small. Six recurring types cover most of it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Registration open or closing&lt;/strong&gt; — tournaments, leagues, camps, courses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Schedule changes and court closures&lt;/strong&gt; — maintenance, weather, events taking courts out of the booking calendar.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Results and recaps&lt;/strong&gt; — league standings, tournament winners, a photo from the weekend.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;People&lt;/strong&gt; — a new coach, a member's national result, a milestone.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deadlines&lt;/strong&gt; — membership renewal, payment, team entry.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Weather calls&lt;/strong&gt; — session on or off, especially for outdoor clubs.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Everything else is optional. You do not need daily content, and trying to produce it is how clubs burn out their social volunteer.&lt;/p&gt;

&lt;h2&gt;
  
  
  How often
&lt;/h2&gt;

&lt;p&gt;Realistically, two to four public posts a week is plenty for a club: one event or promotion, one result or photo, and occasionally a person or a tip. Member-channel messages are as-needed — nothing for a week, then three in an afternoon when a storm rolls in.&lt;/p&gt;

&lt;p&gt;Posting more than this rarely helps. Posting &lt;em&gt;consistently&lt;/em&gt; does.&lt;/p&gt;

&lt;h2&gt;
  
  
  A worked example
&lt;/h2&gt;

&lt;p&gt;Take a hypothetical padel club with four courts and 350 members. On a Saturday morning, courts 3 and 4 are closed all day for resurfacing, and the autumn league opens for entries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Without a system.&lt;/strong&gt; The manager posts the closure to the Facebook Page, then the members' Telegram group, then starts an email. Instagram gets missed. An hour later the league-entry post goes out separately, and only to two of the four places. Total: around 25 minutes and uneven coverage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;With one publishing step.&lt;/strong&gt; The manager writes the closure once, ticks Facebook, Telegram and email, and publishes. Then writes the league post once, attaches the poster image, ticks Facebook, Instagram, Telegram and LinkedIn, and publishes. Both are done in about five minutes, and a delivery log shows exactly which channels each one reached.&lt;/p&gt;

&lt;h2&gt;
  
  
  How SportyPlus can help
&lt;/h2&gt;

&lt;p&gt;SportyPlus includes a social publishing area. The club connects each account once, then writes a post — text, an optional link, an optional image — chooses which channels it should go to, and publishes to all of them together.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Facebook and Instagram&lt;/strong&gt; connect with a single Facebook sign-in; you then pick the Page and Instagram account to post as.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LinkedIn&lt;/strong&gt; connects to a personal profile or a Company Page you administer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;X&lt;/strong&gt; connects to the club's account. X's API is a paid product, billed by X, so &lt;a href="https://developer.x.com/#pricing" rel="noopener noreferrer"&gt;check X's pricing&lt;/a&gt; before connecting it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reddit&lt;/strong&gt; posts through a SportyPlus app that a subreddit moderator installs, so posts come from a bot account rather than a personal one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Telegram&lt;/strong&gt; connects with a bot token; &lt;strong&gt;Discord&lt;/strong&gt; and &lt;strong&gt;Slack&lt;/strong&gt; with an incoming webhook URL — no sign-in, you paste one value.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each channel is delivered on its own, so a post can succeed on four channels and be retried on the fifth without rewriting anything. Because the tool sits in the same system as the club's &lt;a href="https://www.sporty.plus/modules/court_booking" rel="noopener noreferrer"&gt;court booking&lt;/a&gt;, &lt;a href="https://www.sporty.plus/modules/memberships" rel="noopener noreferrer"&gt;memberships&lt;/a&gt; and &lt;a href="https://www.sporty.plus/modules/news" rel="noopener noreferrer"&gt;club news&lt;/a&gt;, an announcement can link straight to the club's own registration or booking page instead of a screenshot. It sits alongside, not instead of, direct &lt;a href="https://www.sporty.plus/modules/messages" rel="noopener noreferrer"&gt;member notifications&lt;/a&gt; for things a member genuinely must not miss.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practical recommendations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;List every social account the club has. Close or formally ignore the ones nobody maintains.&lt;/li&gt;
&lt;li&gt;Choose one public channel and one member channel as the ones you actually commit to.&lt;/li&gt;
&lt;li&gt;Put the six-item announcement checklist above into a shared document, so whoever covers social knows what is worth posting.&lt;/li&gt;
&lt;li&gt;Keep public marketing and member operations on different channels. Do not cross them.&lt;/li&gt;
&lt;li&gt;Standardise on one image size that works everywhere — a 1200×1200 square is safe for both Facebook and Instagram.&lt;/li&gt;
&lt;li&gt;Give a second person access, so posting does not stop when one person is away.&lt;/li&gt;
&lt;li&gt;Connect the accounts in one place, so cross-posting is a single action rather than five.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Related questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Which social network should a small club start with?&lt;/strong&gt;&lt;br&gt;
Facebook for public reach, plus one member channel — Telegram or Discord. Add Instagram once someone is reliably taking and posting photos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How many followers does a club's Facebook page need to be worthwhile?&lt;/strong&gt;&lt;br&gt;
The number that matters is the share of your members and local players who see a post, not the follower total. A 400-member club with 250 engaged page followers gets more from a post than a page with 5,000 followers who never interact.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Telegram or Discord for members?&lt;/strong&gt;&lt;br&gt;
Telegram for a simple announcement broadcast to everyone. Discord when you want separate channels per team, per age group or per topic, plus two-way chat. Ask your juniors' parents which they already use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do we still need email if we post to social?&lt;/strong&gt;&lt;br&gt;
Yes, for anything a member must not miss — renewal deadlines, payments, cancellations. Social posts get missed by the algorithm or the scroll. Email and a members' channel are the reliable path.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is it safe to connect our accounts to another system?&lt;/strong&gt;&lt;br&gt;
Connections use each platform's official sign-in, or a token you generate yourself and can revoke at any time from the platform. You are not sharing a password, and you can disconnect a channel whenever you want.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can posts be scheduled for later?&lt;/strong&gt;&lt;br&gt;
Scheduling is a separate need. SportyPlus publishes when you select publish; if your club plans a content calendar weeks ahead, a dedicated scheduler still has a place alongside it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related SportyPlus guides
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.sporty.plus/blog/court-booking-management" rel="noopener noreferrer"&gt;How to Manage Court Bookings Without Spreadsheets, Messages and Manual Work&lt;/a&gt; — the same "define it once, let the system handle the repetition" idea, applied to bookings.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.sporty.plus/blog/five-signs-your-club-needs-online-court-booking" rel="noopener noreferrer"&gt;Five signs your club needs online court booking&lt;/a&gt; — a checklist for whether manual processes have outgrown their usefulness.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Run your club's communication from one place.&lt;/strong&gt; SportyPlus brings &lt;a href="https://www.sporty.plus/modules/court_booking" rel="noopener noreferrer"&gt;court booking&lt;/a&gt;, memberships, payments, &lt;a href="https://www.sporty.plus/modules/news" rel="noopener noreferrer"&gt;club news&lt;/a&gt; and social publishing into one system, so an announcement is written once and reaches every channel your members and followers actually use.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Prevent Players From Booking Too Many Courts</title>
      <dc:creator>Marko Banušić</dc:creator>
      <pubDate>Sun, 13 Sep 2026 18:30:01 +0000</pubDate>
      <link>https://dev.to/sportyplus/how-to-prevent-players-from-booking-too-many-courts-3b0a</link>
      <guid>https://dev.to/sportyplus/how-to-prevent-players-from-booking-too-many-courts-3b0a</guid>
      <description>&lt;p&gt;Every busy club has the conversation eventually. A handful of members hold most of the good&lt;br&gt;
court times, other members complain that there is never anything free, and somebody suggests&lt;br&gt;
"we should probably have a rule about that."&lt;/p&gt;

&lt;p&gt;The instinct is right, but the framing usually is not. The members holding those slots are&lt;br&gt;
rarely gaming anything — they are using the club exactly as the rules allow, and the rules&lt;br&gt;
allow too much. The fix is a limit, chosen carefully enough that it constrains hoarding&lt;br&gt;
without punishing the people who play most.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you are actually trying to fix
&lt;/h2&gt;

&lt;p&gt;Be precise about the complaint, because three different problems hide behind "some people&lt;br&gt;
book too much":&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Concentration in prime time.&lt;/strong&gt; The same names appear at 19:00 every weeknight. This is the&lt;br&gt;
real fairness issue and the one worth solving.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Volume overall.&lt;/strong&gt; A member books eight times a month while others book twice. This is&lt;br&gt;
usually not a problem at all — off-peak courts are not scarce, and a member who plays a lot&lt;br&gt;
is a member who renews.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Booking and not showing.&lt;/strong&gt; Slots are held and then abandoned. That is a no-show and&lt;br&gt;
cancellation problem, not a limits problem, and limits are a poor tool for it.&lt;/p&gt;

&lt;p&gt;Only the first justifies a booking limit. If you apply a blunt limit to fix the second, you&lt;br&gt;
will make your most engaged members feel penalised for using the club.&lt;/p&gt;

&lt;h2&gt;
  
  
  The kinds of limits, and what each is good for
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Active reservations
&lt;/h3&gt;

&lt;p&gt;The player may hold a fixed number of future bookings at any time — commonly two or three.&lt;br&gt;
When one is played or cancelled, another becomes available.&lt;/p&gt;

&lt;p&gt;This is the best general-purpose limit. It caps how much of the future one person can hold&lt;br&gt;
without capping how often they play, so a member can play five times a week as long as they&lt;br&gt;
book each game as the previous one is used.&lt;/p&gt;

&lt;h3&gt;
  
  
  Bookings per period
&lt;/h3&gt;

&lt;p&gt;A maximum per week or per month. Simple to explain, but it limits total play rather than&lt;br&gt;
hoarding, which means it hits the engaged off-peak member hardest and the prime-time&lt;br&gt;
collector barely at all. Use it only if you genuinely want to ration volume.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prime-time reservations specifically
&lt;/h3&gt;

&lt;p&gt;The player may hold one — or two — future bookings inside the contended hours, with&lt;br&gt;
unlimited bookings outside them.&lt;/p&gt;

&lt;p&gt;This is the sharpest instrument for the real problem. It leaves quiet afternoons completely&lt;br&gt;
open while spreading the scarce evening slots across more members. It costs more to explain,&lt;br&gt;
because you must define prime time explicitly, but it targets the actual complaint.&lt;/p&gt;

&lt;h3&gt;
  
  
  Limits per membership tier
&lt;/h3&gt;

&lt;p&gt;Different tiers get different allowances. Like the&lt;br&gt;
&lt;a href="https://www.sporty.plus/blog/how-far-in-advance-should-members-book-courts" rel="noopener noreferrer"&gt;booking window&lt;/a&gt;, this is a benefit that&lt;br&gt;
costs the club nothing to grant and that members can actually feel — a premium tier holding&lt;br&gt;
three prime-time bookings against a standard tier's one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choose a limit that survives contact with your members
&lt;/h2&gt;

&lt;p&gt;A limit that is technically fair but feels arbitrary will generate more work than it saves.&lt;br&gt;
Three tests before you commit:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does it constrain the pattern you complained about?&lt;/strong&gt; If your problem is five members&lt;br&gt;
holding every 19:00 court, a limit of three active reservations changes very little. Model&lt;br&gt;
it against last month's actual bookings before announcing it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does it leave normal use untouched?&lt;/strong&gt; The majority of members should never hit the limit.&lt;br&gt;
If a typical member bumps into it in a normal week, it is too tight, and you will spend the&lt;br&gt;
next month handling exceptions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can you state it in one sentence?&lt;/strong&gt; "You can hold two upcoming bookings at a time, and one&lt;br&gt;
of them can be between 18:00 and 21:00" is a rule members will accept. If yours needs a&lt;br&gt;
paragraph, simplify it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who needs an exception
&lt;/h2&gt;

&lt;p&gt;Any limit needs exceptions, and they should be granted by role rather than by asking staff&lt;br&gt;
each time:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;coaches&lt;/strong&gt;, who hold many future bookings as a matter of course&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;teams and squads&lt;/strong&gt;, whose training slots are club activity rather than personal play&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;league and tournament fixtures&lt;/strong&gt;, which should never consume a player's personal quota&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;administrators&lt;/strong&gt;, for maintenance, events and one-off arrangements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The important design point: a court booked &lt;em&gt;for&lt;/em&gt; a member by the club — a lesson, a fixture,&lt;br&gt;
a squad session — should not count against that member's personal limit. Getting this wrong&lt;br&gt;
is the fastest way to make a sensible limit feel unfair, because your most involved members&lt;br&gt;
will hit it first.&lt;/p&gt;

&lt;h2&gt;
  
  
  A worked example
&lt;/h2&gt;

&lt;p&gt;A club with six courts has a prime-time problem between 18:00 and 21:00 on weekdays. It sets:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;two active reservations&lt;/strong&gt; at any time, and&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;one of those may be in prime time&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A member who plays three times a week is unaffected outside the evening band, because&lt;br&gt;
off-peak bookings are plentiful and they simply rebook as each game is played.&lt;/p&gt;

&lt;p&gt;A member who previously held four evening slots two weeks out now holds one. The other three&lt;br&gt;
evenings return to the pool the moment the rule takes effect — which is why the change should&lt;br&gt;
be announced ahead, not applied silently.&lt;/p&gt;

&lt;p&gt;The club pairs the limit with recurring bookings for genuine weekly groups, so the doubles&lt;br&gt;
four who have played Wednesdays at 19:00 for six years keep their court. Their booking is a&lt;br&gt;
club-managed recurring reservation rather than a weekly race, and it does not consume anyone's&lt;br&gt;
prime-time quota.&lt;/p&gt;

&lt;p&gt;That pairing is what makes the limit survive. Without it, the rule reads as punishing loyal&lt;br&gt;
members; with it, it reads as protecting access for everyone else.&lt;/p&gt;

&lt;h2&gt;
  
  
  How SportyPlus can help
&lt;/h2&gt;

&lt;p&gt;SportyPlus applies booking limits as part of the club's&lt;br&gt;
&lt;a href="https://www.sporty.plus/modules/court_booking" rel="noopener noreferrer"&gt;court booking&lt;/a&gt; rules, checked when the player selects a slot rather&lt;br&gt;
than after they have chosen one, so a member sees what they are allowed to book instead of&lt;br&gt;
being refused at the end.&lt;/p&gt;

&lt;p&gt;Limits sit alongside the other levers on the same problem — the booking window, prices that&lt;br&gt;
vary by time of day, and included court hours from&lt;br&gt;
&lt;a href="https://www.sporty.plus/modules/memberships" rel="noopener noreferrer"&gt;membership plans&lt;/a&gt; — and recurring reservations for coaches, squads and&lt;br&gt;
standing groups are managed separately, so club-organised play does not eat into a member's&lt;br&gt;
personal allowance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practical recommendations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Model the rule against last month's bookings before announcing it. Count how many members
would have been affected; if it is more than a small minority, loosen it.&lt;/li&gt;
&lt;li&gt;Prefer active-reservation limits to per-week quotas. They target hoarding rather than
enthusiasm.&lt;/li&gt;
&lt;li&gt;If prime time is the real problem, limit prime time specifically rather than everything.&lt;/li&gt;
&lt;li&gt;Move standing weekly games onto recurring bookings &lt;em&gt;before&lt;/em&gt; the limit takes effect.&lt;/li&gt;
&lt;li&gt;Exempt lessons, fixtures and squad sessions from personal limits.&lt;/li&gt;
&lt;li&gt;Announce with the reason attached — "so more members can get an evening court" lands very
differently from "new booking restrictions".&lt;/li&gt;
&lt;li&gt;Review after a season by counting distinct members playing in prime time, not total
bookings. That is the number the rule is meant to move.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Related questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Should limits apply off-peak too?&lt;/strong&gt;&lt;br&gt;
Usually not. Off-peak courts are the capacity you are trying to fill, and limiting access to&lt;br&gt;
them works against you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What about members who book and cancel repeatedly to dodge the limit?&lt;/strong&gt;&lt;br&gt;
Rare, but real. It is handled by cancellation rules rather than booking rules — see&lt;br&gt;
&lt;a href="https://www.sporty.plus/blog/automatic-refunds-court-bookings" rel="noopener noreferrer"&gt;automatic refunds for cancelled bookings&lt;/a&gt;&lt;br&gt;
for how deadlines and outcomes fit together.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do limits reduce total bookings and revenue?&lt;/strong&gt;&lt;br&gt;
They redistribute rather than reduce, provided the released slots are visible to other&lt;br&gt;
members. If your prime time was fully booked before, it will be fully booked after — by more&lt;br&gt;
different people.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is it better to just raise prime-time prices?&lt;/strong&gt;&lt;br&gt;
Pricing allocates by willingness to pay; limits allocate by turn-taking. A commercial centre&lt;br&gt;
may reasonably prefer pricing. A members' club that has already sold a membership usually&lt;br&gt;
finds limits an easier fit with what members believe they bought.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Give more members a shot at the best courts.&lt;/strong&gt; SportyPlus enforces booking limits,&lt;br&gt;
windows and membership benefits automatically, every time someone books. See&lt;br&gt;
&lt;a href="https://www.sporty.plus/modules/court_booking" rel="noopener noreferrer"&gt;court booking&lt;/a&gt;, or read the full guide to&lt;br&gt;
&lt;a href="https://www.sporty.plus/blog/court-booking-management" rel="noopener noreferrer"&gt;court booking management&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Prevent 30-Minute Gaps Between Court Bookings</title>
      <dc:creator>Marko Banušić</dc:creator>
      <pubDate>Sun, 13 Sep 2026 18:29:27 +0000</pubDate>
      <link>https://dev.to/sportyplus/how-to-prevent-30-minute-gaps-between-court-bookings-4pcp</link>
      <guid>https://dev.to/sportyplus/how-to-prevent-30-minute-gaps-between-court-bookings-4pcp</guid>
      <description>&lt;p&gt;A court can look almost fully booked and still contain time that is practically impossible&lt;br&gt;
to use. One of the most common examples is a 30-minute gap between two reservations.&lt;/p&gt;

&lt;p&gt;Consider this schedule:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;17:00–18:00   booked
18:00–18:30   available
18:30–19:30   booked
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Technically, the court is available for 30 minutes. In practice, that time may be very&lt;br&gt;
difficult to use, because most players want a normal full-length court reservation.&lt;/p&gt;

&lt;p&gt;For a busy tennis, padel or pickleball club, these small gaps can add up across multiple&lt;br&gt;
courts and days.&lt;/p&gt;
&lt;h2&gt;
  
  
  How do 30-minute booking gaps happen?
&lt;/h2&gt;

&lt;p&gt;Imagine a court is completely free from 17:00 until 20:00. A player books 17:30–18:30.&lt;/p&gt;

&lt;p&gt;The calendar now contains:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;17:00–17:30   available
17:30–18:30   booked
18:30–20:00   available
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The first 30 minutes may now be unusable.&lt;/p&gt;

&lt;p&gt;The player did nothing wrong. The booking system simply allowed a reservation that created a&lt;br&gt;
short gap.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why does a 30-minute gap matter?
&lt;/h2&gt;

&lt;p&gt;For many clubs, 30 minutes is too short for a normal court reservation.&lt;/p&gt;

&lt;p&gt;If this happens occasionally, it may not matter. But if several courts repeatedly contain&lt;br&gt;
30-minute gaps during busy periods, the club can lose a meaningful amount of usable court&lt;br&gt;
time.&lt;/p&gt;

&lt;p&gt;Imagine six courts each losing one 30-minute period during an evening. That is three hours&lt;br&gt;
of court availability that may be difficult to use. Over weeks and months, those small gaps&lt;br&gt;
can become significant.&lt;/p&gt;
&lt;h2&gt;
  
  
  Prevent the gap before the reservation is made
&lt;/h2&gt;

&lt;p&gt;The simplest approach is to prevent a booking when it would create an isolated 30-minute&lt;br&gt;
gap.&lt;/p&gt;

&lt;p&gt;For example, if there is already a reservation starting at 19:00, the system can prevent&lt;br&gt;
another reservation from ending at 18:30 if this would leave the court empty only from 18:30&lt;br&gt;
to 19:00. The same logic can work on the other side of a booking.&lt;/p&gt;

&lt;p&gt;Instead of administrators manually checking the schedule, the booking system applies the&lt;br&gt;
rule automatically.&lt;/p&gt;
&lt;h2&gt;
  
  
  Example
&lt;/h2&gt;

&lt;p&gt;Court availability: 17:00–20:00. Existing booking: 19:00–20:00.&lt;/p&gt;

&lt;p&gt;A player wants to book 17:30–18:30. That would create:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;17:00–17:30   available
17:30–18:30   booked
18:30–19:00   available   ← isolated 30-minute gap
19:00–20:00   booked
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The 18:30–19:00 period becomes a 30-minute gap. If the club does not normally offer&lt;br&gt;
30-minute court reservations, that time is effectively wasted. Preventing that booking&lt;br&gt;
structure helps keep the court schedule more usable.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why automate this?
&lt;/h2&gt;

&lt;p&gt;Without an automatic rule, administrators would need to notice problematic reservations&lt;br&gt;
after they are already created. They might then need to contact players and ask them to move&lt;br&gt;
the booking.&lt;/p&gt;

&lt;p&gt;That is inconvenient for both the club and the player. It is better to prevent the problem&lt;br&gt;
at the moment of booking.&lt;/p&gt;
&lt;h2&gt;
  
  
  Don't overcomplicate the rule
&lt;/h2&gt;

&lt;p&gt;The purpose is not to create a complicated scheduling algorithm. For many clubs, one simple&lt;br&gt;
rule is enough:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Do not allow a reservation if it creates an isolated 30-minute gap between bookings.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This solves a specific operational problem while keeping the booking process understandable&lt;br&gt;
for players.&lt;/p&gt;
&lt;h2&gt;
  
  
  How SportyPlus can help
&lt;/h2&gt;

&lt;p&gt;SportyPlus can prevent players from creating isolated 30-minute gaps between court&lt;br&gt;
reservations. The rule is applied automatically during the&lt;br&gt;
&lt;a href="https://www.sporty.plus/modules/court_booking" rel="noopener noreferrer"&gt;booking process&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If a selected reservation would create an unusable 30-minute space in the schedule, the&lt;br&gt;
player needs to choose another available booking time. This helps clubs keep their court&lt;br&gt;
schedule cleaner and make better use of available court time.&lt;/p&gt;
&lt;h2&gt;
  
  
  Practical recommendation
&lt;/h2&gt;

&lt;p&gt;Look at several busy days in your booking calendar. If you regularly see schedules such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;17:00–18:00   booked
18:00–18:30   empty
18:30–19:30   booked
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;then preventing 30-minute gaps may be worth enabling.&lt;/p&gt;

&lt;p&gt;It is a small booking rule, but across many courts and reservations it can make the schedule&lt;br&gt;
significantly more efficient.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Does this stop players booking short sessions?&lt;/strong&gt;&lt;br&gt;
No. It only blocks reservations that would leave an isolated short gap beside them. If your&lt;br&gt;
club genuinely sells 30-minute slots, the gap is not unusable and the rule is not for you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What about the gap left when someone cancels?&lt;/strong&gt;&lt;br&gt;
That is a cancellation problem rather than a booking one. The slot should be released back&lt;br&gt;
into the calendar and offered onward — see&lt;br&gt;
&lt;a href="https://www.sporty.plus/blog/automatic-refunds-court-bookings" rel="noopener noreferrer"&gt;refunds for cancelled bookings&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is this the same as limiting how many courts a player can book?&lt;/strong&gt;&lt;br&gt;
No. This rule shapes &lt;em&gt;where&lt;/em&gt; a booking sits in the schedule. Limiting how much of the future&lt;br&gt;
one player can hold is a separate rule — see&lt;br&gt;
&lt;a href="https://www.sporty.plus/blog/prevent-players-booking-too-many-courts" rel="noopener noreferrer"&gt;how to prevent players from booking too many courts&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Get more usable hours out of the courts you already have.&lt;/strong&gt; SportyPlus applies your&lt;br&gt;
booking rules every time a member books, so the schedule stays usable without anyone&lt;br&gt;
reshuffling it by hand. See &lt;a href="https://www.sporty.plus/modules/court_booking" rel="noopener noreferrer"&gt;court booking&lt;/a&gt;, or read the full guide&lt;br&gt;
to &lt;a href="https://www.sporty.plus/blog/court-booking-management" rel="noopener noreferrer"&gt;court booking management&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How Far in Advance Should Members Be Allowed to Book Courts?</title>
      <dc:creator>Marko Banušić</dc:creator>
      <pubDate>Sun, 13 Sep 2026 18:29:24 +0000</pubDate>
      <link>https://dev.to/sportyplus/how-far-in-advance-should-members-be-allowed-to-book-courts-4pmn</link>
      <guid>https://dev.to/sportyplus/how-far-in-advance-should-members-be-allowed-to-book-courts-4pmn</guid>
      <description>&lt;p&gt;There is no correct booking window. There is only the window that matches how far ahead your&lt;br&gt;
members actually plan, and most clubs have never chosen theirs deliberately — it is whatever&lt;br&gt;
the software defaulted to.&lt;/p&gt;

&lt;p&gt;It is worth choosing on purpose, because this one number decides who gets the best courts.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the booking window actually controls
&lt;/h2&gt;

&lt;p&gt;The booking window is the maximum number of days ahead a player can reserve. It looks like a&lt;br&gt;
convenience setting. It is really an allocation policy.&lt;/p&gt;

&lt;p&gt;Court time is not scarce in general — it is scarce between roughly 17:00 and 21:00 on&lt;br&gt;
weekdays. Everything outside that band is usually available to anyone at any notice. So the&lt;br&gt;
booking window does almost nothing for off-peak play, and almost everything for prime time.&lt;/p&gt;

&lt;p&gt;Set it long and prime-time slots go to whoever plans furthest ahead, which in practice means&lt;br&gt;
the same dozen well-organised members every week. Set it short and members struggle to&lt;br&gt;
arrange a match with three other people's calendars.&lt;/p&gt;

&lt;h2&gt;
  
  
  The two failure modes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Window too long.&lt;/strong&gt; A member opens the calendar on a Monday evening and every 19:00 court&lt;br&gt;
for the next three weeks is taken. They are not competing on availability, they are&lt;br&gt;
competing on diary discipline. Newer members conclude the club is full and stop looking.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Window too short.&lt;/strong&gt; With a two-day window, organising doubles becomes a scramble. Members&lt;br&gt;
cannot commit to a weekly game, coaches cannot plan, and everyone opens the app at the same&lt;br&gt;
moment each morning — which produces a booking rush rather than fair distribution.&lt;/p&gt;

&lt;p&gt;Both failures look like a capacity problem. Neither is.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choosing your number
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Start from how your members plan
&lt;/h3&gt;

&lt;p&gt;Ask how a typical match gets arranged at your club. If members agree a game a few days ahead&lt;br&gt;
by message, a 7-day window covers it. If your club revolves around fixed weekly groups, a&lt;br&gt;
longer window matters less than you would think — those groups are better served by&lt;br&gt;
recurring bookings than by racing to rebook every week.&lt;/p&gt;

&lt;p&gt;A rough starting point:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Club type&lt;/th&gt;
&lt;th&gt;Typical window&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Members' club, social play&lt;/td&gt;
&lt;td&gt;7 days&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Commercial padel or pickleball centre&lt;/td&gt;
&lt;td&gt;14 days&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Club with strong coaching and league programme&lt;/td&gt;
&lt;td&gt;7 days for members, longer for coaches&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Facility with plentiful off-peak capacity&lt;/td&gt;
&lt;td&gt;14–30 days&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Treat these as somewhere to start, not as a recommendation. The measurable test comes later.&lt;/p&gt;

&lt;h3&gt;
  
  
  Differentiate by who is booking
&lt;/h3&gt;

&lt;p&gt;A single window for everyone is rarely right, because members, guests and coaches are not&lt;br&gt;
competing for the same thing.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;User type&lt;/th&gt;
&lt;th&gt;Window&lt;/th&gt;
&lt;th&gt;Why&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Members&lt;/td&gt;
&lt;td&gt;7 days&lt;/td&gt;
&lt;td&gt;The core allocation decision&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Guests / non-members&lt;/td&gt;
&lt;td&gt;3 days&lt;/td&gt;
&lt;td&gt;Members get first claim on prime time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Coaches&lt;/td&gt;
&lt;td&gt;30 days&lt;/td&gt;
&lt;td&gt;Lessons are scheduled, not spontaneous&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Club activities and leagues&lt;/td&gt;
&lt;td&gt;unrestricted&lt;/td&gt;
&lt;td&gt;Fixtures are set a season ahead&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Administrators&lt;/td&gt;
&lt;td&gt;unrestricted&lt;/td&gt;
&lt;td&gt;Maintenance, events, exceptions&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Giving guests a shorter window is the cleanest way to protect member value without banning&lt;br&gt;
guest play — which clubs often do instead, losing the revenue and the recruitment channel&lt;br&gt;
along with it.&lt;/p&gt;

&lt;p&gt;If you sell membership tiers, the window is also one of the few benefits that costs the club&lt;br&gt;
nothing to grant and that members genuinely feel. A premium tier booking 10 days out while&lt;br&gt;
standard members book 7 is a real, visible difference.&lt;/p&gt;

&lt;h3&gt;
  
  
  Decide how the window opens
&lt;/h3&gt;

&lt;p&gt;Two clubs with a 7-day window can behave completely differently depending on how it rolls.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rolling by time&lt;/strong&gt; — at 19:00 today, next Tuesday 19:00 becomes bookable. Availability&lt;br&gt;
trickles out through the day, which spreads demand.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rolling by day&lt;/strong&gt; — at midnight, the whole of next Tuesday opens at once. Simpler to&lt;br&gt;
explain, but it creates a rush at a fixed moment, and it rewards whoever is awake.&lt;/p&gt;

&lt;p&gt;Rolling by time is usually fairer. Rolling by day is easier to communicate. If you choose&lt;br&gt;
rolling by day, at least avoid opening at midnight; a mid-morning release is kinder and just&lt;br&gt;
as fair.&lt;/p&gt;

&lt;h3&gt;
  
  
  Protect prime time separately if you need to
&lt;/h3&gt;

&lt;p&gt;If prime time is the only real contention, consider a shorter window for those hours only —&lt;br&gt;
members book 14 days ahead generally, but 5 days ahead for 18:00–21:00 slots. It keeps&lt;br&gt;
planning flexibility for the quiet hours where nobody is competing, and tightens the rule&lt;br&gt;
exactly where it matters.&lt;/p&gt;

&lt;p&gt;This is more complex to explain, so reach for it only if a single window is not working.&lt;/p&gt;

&lt;h2&gt;
  
  
  A worked example
&lt;/h2&gt;

&lt;p&gt;A club with six courts moves from a 21-day window to 7 days for members and 3 for guests.&lt;/p&gt;

&lt;p&gt;Before, the 19:00 and 20:00 courts were fully booked about two weeks out. The same members&lt;br&gt;
appeared in those slots most weeks, not through any unfairness but because they booked the&lt;br&gt;
moment the window allowed.&lt;/p&gt;

&lt;p&gt;After the change, prime-time courts fill roughly two to three days ahead instead. The same&lt;br&gt;
number of courts is sold — the window does not create capacity — but a different and larger&lt;br&gt;
set of members gets into them, and the club stops receiving "there is never anything&lt;br&gt;
available" messages from people who were looking three days out.&lt;/p&gt;

&lt;p&gt;The complaints the club does receive come from the members who lost their standing 19:00&lt;br&gt;
slot. That is the real cost of the change, and it is worth answering directly: those groups&lt;br&gt;
should be moved onto recurring bookings, which is the right tool for a fixed weekly game.&lt;/p&gt;

&lt;h2&gt;
  
  
  How SportyPlus can help
&lt;/h2&gt;

&lt;p&gt;In SportyPlus the booking window is part of the club's &lt;a href="https://www.sporty.plus/modules/court_booking" rel="noopener noreferrer"&gt;court booking&lt;/a&gt;&lt;br&gt;
rules rather than a single global number: it can differ by user type, so members, guests and&lt;br&gt;
coaches each get their own, and it works together with the other rules that decide access to&lt;br&gt;
prime time — booking limits, included hours from&lt;br&gt;
&lt;a href="https://www.sporty.plus/modules/memberships" rel="noopener noreferrer"&gt;membership plans&lt;/a&gt;, and prices that vary by time of day.&lt;/p&gt;

&lt;p&gt;Because the rules are checked when the player picks a slot, members simply do not see times&lt;br&gt;
they are not yet allowed to book, rather than being refused after choosing one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practical recommendations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Write down what problem you are solving before changing the number. "Prime time is gone
too early" and "members cannot plan" need opposite adjustments.&lt;/li&gt;
&lt;li&gt;Change one thing at a time. If you shorten the window and add booking limits in the same
week, you will not know which one worked.&lt;/li&gt;
&lt;li&gt;Always give guests a shorter window than members. It is the least contentious rule in this
entire article.&lt;/li&gt;
&lt;li&gt;Announce the change at least two weeks ahead, and explain it in terms of access for more
members rather than as a restriction.&lt;/li&gt;
&lt;li&gt;Move standing weekly games to recurring bookings before you shorten the window, or you
will convert your most loyal members into your loudest critics.&lt;/li&gt;
&lt;li&gt;Re-check after a month: how many days ahead do prime-time slots now fill, and how many
distinct members played in them compared to before?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Related questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Is a longer window better for a commercial centre?&lt;/strong&gt;&lt;br&gt;
Usually yes. A pay-per-play padel centre wants certainty of demand, and customers planning&lt;br&gt;
two weeks ahead is good for the business. The fairness concern that drives shorter windows&lt;br&gt;
is a members' club concern.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Should the window differ between weekdays and weekends?&lt;/strong&gt;&lt;br&gt;
Only if your contention differs. Many clubs are busy on weekday evenings and quiet on&lt;br&gt;
Saturday afternoons — in which case the weekend does not need a tight window at all.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What stops one member booking the same slot every week?&lt;/strong&gt;&lt;br&gt;
Not the booking window — that is what&lt;br&gt;
&lt;a href="https://www.sporty.plus/blog/prevent-players-booking-too-many-courts" rel="noopener noreferrer"&gt;booking limits&lt;/a&gt; are for. The two rules solve&lt;br&gt;
different halves of the same fairness problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do we need a window at all?&lt;/strong&gt;&lt;br&gt;
If prime-time courts do not fill up, no. An unlimited window is perfectly reasonable for a&lt;br&gt;
club with spare capacity, and it is one fewer rule to explain.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Set the rules once and let the system apply them.&lt;/strong&gt; SportyPlus supports booking windows&lt;br&gt;
per user type, alongside booking limits, membership benefits and pricing. See&lt;br&gt;
&lt;a href="https://www.sporty.plus/modules/court_booking" rel="noopener noreferrer"&gt;court booking&lt;/a&gt;, or read the full guide to&lt;br&gt;
&lt;a href="https://www.sporty.plus/blog/court-booking-management" rel="noopener noreferrer"&gt;court booking management&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Five signs your club needs online court booking</title>
      <dc:creator>Marko Banušić</dc:creator>
      <pubDate>Sun, 13 Sep 2026 18:28:50 +0000</pubDate>
      <link>https://dev.to/sportyplus/five-signs-your-club-needs-online-court-booking-4aoc</link>
      <guid>https://dev.to/sportyplus/five-signs-your-club-needs-online-court-booking-4aoc</guid>
      <description>&lt;p&gt;Manual court booking works until it doesn't. Here are five signs it's time to move online.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Your staff spend hours on the phone
&lt;/h2&gt;

&lt;p&gt;Every reservation is a call, a text or a walk-in. That time adds up fast, and it&lt;br&gt;
pulls staff away from coaching and members who are actually in the building.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Double bookings keep happening
&lt;/h2&gt;

&lt;p&gt;A paper diary or a shared spreadsheet has no way to stop two people claiming the&lt;br&gt;
same slot. Online booking locks the slot the moment it's taken.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Courts sit empty at off-peak hours
&lt;/h2&gt;

&lt;p&gt;When members can't see availability, they don't book spontaneously. A live&lt;br&gt;
calendar fills gaps you didn't know you had.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. You can't tell who owes money
&lt;/h2&gt;

&lt;p&gt;Chasing payments after the fact is a losing game. Booking and payment in one flow&lt;br&gt;
means the court is paid for before it's played on.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. You have no data
&lt;/h2&gt;

&lt;p&gt;How many hours were booked last month? Which courts earn the most? Manual systems&lt;br&gt;
can't answer these. A booking system gives you the numbers to plan.&lt;/p&gt;

&lt;p&gt;If several of these sound familiar, the next question is what the replacement should&lt;br&gt;
actually do. Our guide on &lt;a href="https://www.sporty.plus/blog/court-booking-management" rel="noopener noreferrer"&gt;court booking management&lt;/a&gt; walks&lt;br&gt;
through the booking rules a club needs the system to enforce on its own — booking windows,&lt;br&gt;
reservation limits, cancellations, refunds, waiting lists and access control.&lt;/p&gt;




&lt;p&gt;SportyPlus includes court booking, payments and reporting in one platform.&lt;br&gt;
&lt;a href="https://www.sporty.plus/demo" rel="noopener noreferrer"&gt;Book a demo&lt;/a&gt; to see it with your club's setup.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Manage Court Bookings Without Spreadsheets, Messages and Manual Work</title>
      <dc:creator>Marko Banušić</dc:creator>
      <pubDate>Sun, 13 Sep 2026 18:28:47 +0000</pubDate>
      <link>https://dev.to/sportyplus/how-to-manage-court-bookings-without-spreadsheets-messages-and-manual-work-1enk</link>
      <guid>https://dev.to/sportyplus/how-to-manage-court-bookings-without-spreadsheets-messages-and-manual-work-1enk</guid>
      <description>&lt;p&gt;Managing court bookings sounds simple when a club has only a few players. Someone sends a&lt;br&gt;
message, the administrator checks the schedule, writes down the reservation and confirms&lt;br&gt;
the court.&lt;/p&gt;

&lt;p&gt;Then the club grows.&lt;/p&gt;

&lt;p&gt;Suddenly there are hundreds of players, multiple courts, memberships, guest players,&lt;br&gt;
cancellations, payments, recurring reservations and people asking the same questions every&lt;br&gt;
day:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Is court 2 available tonight?"&lt;/li&gt;
&lt;li&gt;"Can you cancel my booking?"&lt;/li&gt;
&lt;li&gt;"Can I book every Tuesday for the next two months?"&lt;/li&gt;
&lt;li&gt;"Do I get my money back if it rains?"&lt;/li&gt;
&lt;li&gt;"Why did someone book two prime-time slots?"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is usually the point where spreadsheets, WhatsApp groups and manually maintained&lt;br&gt;
calendars stop working.&lt;/p&gt;

&lt;p&gt;A modern court booking system should do much more than simply display available time slots.&lt;br&gt;
It should automate the rules of the club.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.sporty.plus%2Fblog%2Fmanual-vs-automated-court-booking.svg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.sporty.plus%2Fblog%2Fmanual-vs-automated-court-booking.svg" alt="A club administrator answering booking questions by hand on one side, and a court booking screen applying the club's rules automatically on the other" width="1200" height="620"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  The real problem with manual court booking
&lt;/h2&gt;

&lt;p&gt;Many tennis, padel and pickleball clubs start with a very simple booking process.&lt;br&gt;
Reservations may be handled through phone calls, WhatsApp, email, shared calendars,&lt;br&gt;
spreadsheets, paper schedules or reception staff.&lt;/p&gt;

&lt;p&gt;This can work surprisingly well while the club is small. If you are still deciding whether&lt;br&gt;
you have outgrown it, the &lt;a href="https://www.sporty.plus/blog/five-signs-your-club-needs-online-court-booking" rel="noopener noreferrer"&gt;five signs your club needs online court booking&lt;/a&gt;&lt;br&gt;
are a useful checklist.&lt;/p&gt;

&lt;p&gt;The problem is that every additional rule creates more manual work.&lt;/p&gt;

&lt;p&gt;Imagine a club with six courts and 500 active players. The club may have rules such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;members can book seven days in advance&lt;/li&gt;
&lt;li&gt;guests can book only three days in advance&lt;/li&gt;
&lt;li&gt;players can have a maximum of two active reservations&lt;/li&gt;
&lt;li&gt;prime-time bookings are limited&lt;/li&gt;
&lt;li&gt;cancellations are allowed until four hours before the reservation&lt;/li&gt;
&lt;li&gt;some members have free monthly court hours&lt;/li&gt;
&lt;li&gt;some reservations must be paid online&lt;/li&gt;
&lt;li&gt;unpaid bookings should automatically expire&lt;/li&gt;
&lt;li&gt;recurring bookings are allowed for certain groups&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Managing all of this manually quickly becomes difficult.&lt;/p&gt;

&lt;p&gt;The problem is not the calendar. The problem is enforcing all the rules around the calendar.&lt;/p&gt;
&lt;h2&gt;
  
  
  A good booking system should enforce club rules automatically
&lt;/h2&gt;

&lt;p&gt;The best booking system is one that requires as little administrator intervention as&lt;br&gt;
possible. Players should be able to open the club app or website, see available courts and&lt;br&gt;
make a reservation. But before allowing that reservation, the system should automatically&lt;br&gt;
check the club's rules.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can this player book this far in advance?&lt;/li&gt;
&lt;li&gt;Does the player already have too many active bookings?&lt;/li&gt;
&lt;li&gt;Is this time restricted to members?&lt;/li&gt;
&lt;li&gt;Does the player have included court hours?&lt;/li&gt;
&lt;li&gt;Is payment required?&lt;/li&gt;
&lt;li&gt;Is another booking required next to this slot to avoid an unusable gap?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The administrator should define these rules once. The software should enforce them every&lt;br&gt;
day.&lt;/p&gt;
&lt;h3&gt;
  
  
  1. Control how far in advance players can book
&lt;/h3&gt;

&lt;p&gt;One of the most important booking rules is the booking window. Allow players to book too&lt;br&gt;
far in advance and the most popular evening slots may disappear weeks before anyone else&lt;br&gt;
has a chance to reserve them. Allow bookings only one or two days ahead and players may&lt;br&gt;
find it difficult to organize matches.&lt;/p&gt;

&lt;p&gt;There is no universal answer. A recreational tennis club might allow members to book seven&lt;br&gt;
days ahead. A commercial padel center might allow bookings 14 or even 30 days ahead.&lt;/p&gt;

&lt;p&gt;A club can also use different booking windows for different types of users:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;User type&lt;/th&gt;
&lt;th&gt;Booking window&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Members&lt;/td&gt;
&lt;td&gt;7 days&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Guests&lt;/td&gt;
&lt;td&gt;3 days&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Coaches&lt;/td&gt;
&lt;td&gt;30 days&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Club administrators&lt;/td&gt;
&lt;td&gt;unrestricted&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A booking system should make these differences automatic. We go through how to choose the&lt;br&gt;
number, and how to split it by user type, in&lt;br&gt;
&lt;a href="https://www.sporty.plus/blog/how-far-in-advance-should-members-book-courts" rel="noopener noreferrer"&gt;how far in advance members should be allowed to book&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Limit the number of active reservations
&lt;/h3&gt;

&lt;p&gt;A common problem in busy clubs is that a small number of players reserve many of the best&lt;br&gt;
court times. A simple solution is to limit how many future reservations a player can hold.&lt;/p&gt;

&lt;p&gt;For example, a member may be allowed to have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;maximum two active reservations&lt;/li&gt;
&lt;li&gt;maximum one prime-time reservation&lt;/li&gt;
&lt;li&gt;maximum three bookings per week&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once one reservation is played or cancelled, the player can book another. This gives more&lt;br&gt;
members access to popular court times without requiring administrators to manually monitor&lt;br&gt;
bookings. Picking a limit that targets hoarding without punishing your most active members&lt;br&gt;
is its own decision — see&lt;br&gt;
&lt;a href="https://www.sporty.plus/blog/prevent-players-booking-too-many-courts" rel="noopener noreferrer"&gt;how to prevent players from booking too many courts&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  3. Prevent unusable gaps between reservations
&lt;/h3&gt;

&lt;p&gt;One of the less obvious problems in court management is fragmented court availability.&lt;br&gt;
Imagine a court schedule like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;17:00–18:00   booked
18:00–18:30   empty
18:30–19:30   booked
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That 30-minute gap may be impossible to sell or use. Across several courts and hundreds of&lt;br&gt;
reservations, these small gaps can significantly reduce court utilization.&lt;/p&gt;

&lt;p&gt;Booking rules can prevent players from creating unusable gaps. Instead of allowing every&lt;br&gt;
technically available starting time, the system can encourage or require reservations to&lt;br&gt;
connect to existing bookings. The result is a cleaner schedule and more usable court hours.&lt;br&gt;
The arithmetic of what those gaps cost, and the rules that close them, are covered in&lt;br&gt;
&lt;a href="https://www.sporty.plus/blog/prevent-30-minute-gaps-court-bookings" rel="noopener noreferrer"&gt;how to prevent gaps between court bookings&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Handle cancellations automatically
&lt;/h3&gt;

&lt;p&gt;Cancellations are unavoidable. The important question is what happens when someone cancels.&lt;/p&gt;

&lt;p&gt;A club might allow free cancellation until four hours before the booking. After that, the&lt;br&gt;
player may lose the reservation fee, lose an included membership hour, pay a cancellation&lt;br&gt;
fee, or receive only a partial refund.&lt;/p&gt;

&lt;p&gt;The booking software should apply these rules automatically. Players should know the&lt;br&gt;
cancellation policy before booking, and administrators should not have to decide manually&lt;br&gt;
what happens every time somebody cancels.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Automatically refund eligible online payments
&lt;/h3&gt;

&lt;p&gt;Refunds can create a surprising amount of administrative work. A player books a court&lt;br&gt;
online. The booking is cancelled. The player contacts the club. The administrator checks&lt;br&gt;
whether payment was received. Then someone has to process the refund.&lt;/p&gt;

&lt;p&gt;Multiply that process by dozens or hundreds of cancellations per month.&lt;/p&gt;

&lt;p&gt;Where appropriate, eligible cancellations can be connected directly to the&lt;br&gt;
&lt;a href="https://www.sporty.plus/modules/finance" rel="noopener noreferrer"&gt;payments and finance module&lt;/a&gt;. If the reservation meets the club's&lt;br&gt;
cancellation conditions, the amount can be returned automatically as a club wallet balance&lt;br&gt;
the player can spend on their next booking. The same concept is useful when a&lt;br&gt;
club needs to cancel reservations because of rain, court maintenance or another operational&lt;br&gt;
issue.&lt;/p&gt;

&lt;p&gt;Automation removes both administrative work and uncertainty for players. Writing a refund&lt;br&gt;
policy precise enough for software to apply is covered in&lt;br&gt;
&lt;a href="https://www.sporty.plus/blog/automatic-refunds-court-bookings" rel="noopener noreferrer"&gt;how to automatically refund cancelled court bookings&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Cancel unpaid reservations
&lt;/h3&gt;

&lt;p&gt;Another common issue is a player starting a reservation but never completing payment.&lt;br&gt;
Without an automatic rule, the court may remain blocked even though nobody actually paid&lt;br&gt;
for it.&lt;/p&gt;

&lt;p&gt;A better workflow is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Player selects the court.&lt;/li&gt;
&lt;li&gt;The reservation is temporarily held.&lt;/li&gt;
&lt;li&gt;The player receives time to complete payment.&lt;/li&gt;
&lt;li&gt;If payment is successful, the booking is confirmed.&lt;/li&gt;
&lt;li&gt;If payment is not completed within the allowed period, the reservation is automatically
cancelled.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The court immediately becomes available to other players again.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Support recurring reservations without losing control
&lt;/h3&gt;

&lt;p&gt;Recurring bookings are common in clubs. Examples include a coach reserving the same court&lt;br&gt;
every Monday, a doubles group playing every Wednesday, a weekly league match, junior&lt;br&gt;
training sessions or club-organized activities.&lt;/p&gt;

&lt;p&gt;Creating these reservations manually one by one is unnecessary. A booking system should&lt;br&gt;
allow authorized users to create recurring reservations while still respecting the club's&lt;br&gt;
overall booking structure. The club decides who is allowed to create them and how far into&lt;br&gt;
the future they can run.&lt;/p&gt;

&lt;h3&gt;
  
  
  8. Manage members and guests differently
&lt;/h3&gt;

&lt;p&gt;Not every player has to follow the same rules. A club may have full members, junior&lt;br&gt;
members, family members, coaches, guests, non-members and competition players. Each&lt;br&gt;
category may have different prices and booking privileges.&lt;/p&gt;

&lt;p&gt;For example, members could receive nine included court hours per month while guests always&lt;br&gt;
pay the standard court price. The booking system should recognize the user automatically,&lt;br&gt;
using the club's &lt;a href="https://www.sporty.plus/modules/memberships" rel="noopener noreferrer"&gt;membership rules&lt;/a&gt;, and calculate the correct price&lt;br&gt;
and permissions.&lt;/p&gt;

&lt;p&gt;The player should not need to understand the underlying logic. They simply see what they&lt;br&gt;
are allowed to book and what it costs.&lt;/p&gt;

&lt;h3&gt;
  
  
  9. Use waiting lists when courts are full
&lt;/h3&gt;

&lt;p&gt;A fully booked evening does not necessarily mean all those reservations will actually be&lt;br&gt;
played. People cancel. Weather changes. Plans change.&lt;/p&gt;

&lt;p&gt;Without a waiting list, players repeatedly open the booking calendar hoping that a court has&lt;br&gt;
become available. A waiting-list system can automatically connect cancelled reservations&lt;br&gt;
with players who are still looking for a court. This makes cancellations less damaging to&lt;br&gt;
court utilization and gives players a better chance of finding a court.&lt;/p&gt;

&lt;h3&gt;
  
  
  10. Connect reservations with court access and lighting
&lt;/h3&gt;

&lt;p&gt;For clubs without permanent reception staff, the reservation can become much more than a&lt;br&gt;
calendar entry. A confirmed booking can also control access to the facility:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The player books Court 3 from 19:00 to 20:00.&lt;/li&gt;
&lt;li&gt;The system generates or activates access credentials.&lt;/li&gt;
&lt;li&gt;The player can enter the facility during the allowed period.&lt;/li&gt;
&lt;li&gt;Court lighting becomes available for the reservation.&lt;/li&gt;
&lt;li&gt;Access expires automatically afterward.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This makes it possible to operate facilities with significantly less manual supervision,&lt;br&gt;
using &lt;a href="https://www.sporty.plus/modules/smart_locks" rel="noopener noreferrer"&gt;smart locks and access control&lt;/a&gt;. It is especially useful for&lt;br&gt;
smaller clubs and facilities with long opening hours.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does an automated booking workflow look like?
&lt;/h2&gt;

&lt;p&gt;Consider a padel club with four courts. A player wants to reserve Court 2 at 19:00.&lt;/p&gt;

&lt;p&gt;Before confirming the reservation, the system checks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;whether the player is allowed to book seven days in advance&lt;/li&gt;
&lt;li&gt;whether they already have the maximum number of active bookings&lt;/li&gt;
&lt;li&gt;whether the selected slot creates an unwanted booking gap&lt;/li&gt;
&lt;li&gt;whether the player is a member&lt;/li&gt;
&lt;li&gt;whether they have any included court hours remaining&lt;/li&gt;
&lt;li&gt;what price should apply&lt;/li&gt;
&lt;li&gt;whether online payment is required&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The player completes payment. The reservation is confirmed. If access control is connected,&lt;br&gt;
the player's access is activated automatically. If the player cancels within the club's&lt;br&gt;
cancellation window, the booking is released and the appropriate refund rule is applied.&lt;/p&gt;

&lt;p&gt;The administrator does nothing.&lt;/p&gt;

&lt;p&gt;That is the real value of booking automation. Not simply putting a calendar online, but&lt;br&gt;
removing repetitive decisions from everyday club management.&lt;/p&gt;

&lt;h2&gt;
  
  
  How SportyPlus handles court booking
&lt;/h2&gt;

&lt;p&gt;SportyPlus is built around this type of automated club workflow. Clubs can manage&lt;br&gt;
&lt;a href="https://www.sporty.plus/modules/court_booking" rel="noopener noreferrer"&gt;court reservations&lt;/a&gt; together with rules for areas such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;booking windows&lt;/li&gt;
&lt;li&gt;cancellation periods&lt;/li&gt;
&lt;li&gt;booking limits&lt;/li&gt;
&lt;li&gt;memberships&lt;/li&gt;
&lt;li&gt;included court hours&lt;/li&gt;
&lt;li&gt;guest players&lt;/li&gt;
&lt;li&gt;online payments&lt;/li&gt;
&lt;li&gt;automatic cancellation of unpaid bookings&lt;/li&gt;
&lt;li&gt;waiting lists&lt;/li&gt;
&lt;li&gt;recurring reservations&lt;/li&gt;
&lt;li&gt;booking-gap prevention&lt;/li&gt;
&lt;li&gt;competitions and club activities&lt;/li&gt;
&lt;li&gt;access control&lt;/li&gt;
&lt;li&gt;court lighting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The exact rules can be configured around the way each club operates. A tennis club with&lt;br&gt;
members may need a completely different booking policy from a commercial padel center. The&lt;br&gt;
system should adapt to the club rather than forcing every club into the same booking model.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start with your club rules
&lt;/h2&gt;

&lt;p&gt;Before choosing or configuring court booking software, write down the rules your club&lt;br&gt;
actually wants. Answer questions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How far ahead can members book?&lt;/li&gt;
&lt;li&gt;How far ahead can guests book?&lt;/li&gt;
&lt;li&gt;How many active reservations can one player have?&lt;/li&gt;
&lt;li&gt;Do you have special peak-time restrictions?&lt;/li&gt;
&lt;li&gt;When can a booking be cancelled for free?&lt;/li&gt;
&lt;li&gt;What happens to online payments after cancellation?&lt;/li&gt;
&lt;li&gt;Can players create recurring reservations?&lt;/li&gt;
&lt;li&gt;How do you handle guests?&lt;/li&gt;
&lt;li&gt;Do members receive included court hours?&lt;/li&gt;
&lt;li&gt;What happens when courts are fully booked?&lt;/li&gt;
&lt;li&gt;Who can access the facility after staff leave?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once those rules are clear, the technology becomes much easier to configure.&lt;/p&gt;

&lt;h2&gt;
  
  
  The goal is not more software
&lt;/h2&gt;

&lt;p&gt;The goal of a court booking system should not be to move administrative work from a&lt;br&gt;
spreadsheet into another screen. It should remove administrative work.&lt;/p&gt;

&lt;p&gt;Players should be able to make, pay for and manage their own reservations. Club rules should&lt;br&gt;
be applied consistently. Administrators should intervene only when something exceptional&lt;br&gt;
happens.&lt;/p&gt;

&lt;p&gt;That is when online court booking becomes more than a calendar. It becomes part of the&lt;br&gt;
operating system of the club.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Manage court bookings with SportyPlus.&lt;/strong&gt; SportyPlus combines&lt;br&gt;
&lt;a href="https://www.sporty.plus/modules/court_booking" rel="noopener noreferrer"&gt;court booking&lt;/a&gt;, &lt;a href="https://www.sporty.plus/blog/record-matches-on-club-courts" rel="noopener noreferrer"&gt;match recording from a court camera&lt;/a&gt;, memberships, payments, competitions, player&lt;br&gt;
management and club automation in one system for sports clubs and facilities of every&lt;br&gt;
kind. Instead of manually managing every reservation, clubs can define their&lt;br&gt;
rules once and let the system apply them automatically.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Court Access Control and Lighting: How SportyPlus Opens the Gate and Turns On the Lights</title>
      <dc:creator>Marko Banušić</dc:creator>
      <pubDate>Sun, 13 Sep 2026 18:28:13 +0000</pubDate>
      <link>https://dev.to/sportyplus/court-access-control-and-lighting-how-sportyplus-opens-the-gate-and-turns-on-the-lights-h0i</link>
      <guid>https://dev.to/sportyplus/court-access-control-and-lighting-how-sportyplus-opens-the-gate-and-turns-on-the-lights-h0i</guid>
      <description>&lt;p&gt;A court booking is really two promises. The first is that the court is yours from 19:00 to 20:30. The second, unspoken one, is that you will be able to get in, and that you will be able to see the ball.&lt;/p&gt;

&lt;p&gt;Most clubs keep those two promises with a person. Someone sits at a desk, buzzes players in, and walks out to the fuse cupboard to flip the lighting breakers. It works, and it costs a salary. It also fails in exactly the situations where members care most: the 06:30 booking before work, the 21:00 booking after it, the Sunday nobody is rostered.&lt;/p&gt;

&lt;p&gt;Automating those two promises is what turns a staffed facility into one that runs itself. This guide covers how SportyPlus does it — what happens at the moment a booking starts, which hardware does the work, and what you actually have to install.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgr7rsmnue3pqkaawg1t1.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgr7rsmnue3pqkaawg1t1.jpg" alt="Floodlit courts at Delaire Country Club, Delray Beach, Florida, seen from the air at night" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Delaire Country Club, Delray Beach, Florida. Lighting by Tweener.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The principle: the booking is the permission
&lt;/h2&gt;

&lt;p&gt;Almost every bad access-control setup at a sports club comes from the same mistake — treating access as something you administer separately from bookings.&lt;/p&gt;

&lt;p&gt;You end up with a shared gate code the whole membership knows, which means it has effectively been public since 2019. Or you end up with per-booking codes, which sound secure and are miserable in practice: the member has to find the right email at 06:25 in the rain, and the club has to handle the calls from everyone who cannot.&lt;/p&gt;

&lt;p&gt;SportyPlus takes a third route. Every member gets &lt;strong&gt;one permanent PIN code&lt;/strong&gt; — the same code, all season, easy to remember. What changes is not the code but whether it currently opens anything. The system checks the code against that member's active bookings: right court, right time window, the door opens. Wrong time, or no booking, and the same code does nothing.&lt;/p&gt;

&lt;p&gt;That is the whole design, and it is worth stating plainly because it decides everything downstream:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Members memorise one number instead of hunting for an email.&lt;/li&gt;
&lt;li&gt;A cancelled or moved booking revokes access automatically, because the booking &lt;em&gt;is&lt;/em&gt; the permission.&lt;/li&gt;
&lt;li&gt;A member who leaves the club stops having access the moment their membership ends — no lock rekeying, no code rotation, no note to whoever mans the desk.&lt;/li&gt;
&lt;li&gt;Every entry is logged against a person and a booking, so "who was on court 3 when the net got damaged" is a query, not an investigation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The same logic drives the lights. Lighting comes on at the start of the booking and goes off at the end. Nobody has to remember to switch it off, which is where clubs quietly lose most of their lighting budget — a floodlit court left burning until the morning is a genuinely expensive mistake.&lt;/p&gt;

&lt;h2&gt;
  
  
  WebLock: the access side
&lt;/h2&gt;

&lt;p&gt;For access control we work with &lt;a href="https://weblockonline.com/" rel="noopener noreferrer"&gt;WebLock&lt;/a&gt;, an Estonian access-control company whose system is built around a cloud service and a small controller that sits at the door. The current controller is the &lt;strong&gt;&lt;a href="https://weblockonline.com/dla-controller-v4/" rel="noopener noreferrer"&gt;DLA Controller v4&lt;/a&gt;&lt;/strong&gt; — DLA is Digital Lock Access — and it is the piece that connects the WebLock cloud to the physical locks and keypads at your facility.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb55a3s9tl70lzdb9gn6j.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb55a3s9tl70lzdb9gn6j.jpg" alt="The WebLock DLA v4 access controller board" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The WebLock DLA v4 controller. Image: WebLock.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;What matters for a sports club:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Each controller handles up to two entryways.&lt;/strong&gt; For most clubs that means the main gate and the clubhouse door on one unit, or two court gates. A four-court facility with individually gated courts needs two controllers, not a rack of them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No central unit is required.&lt;/strong&gt; Each DLA talks to the WebLock cloud on its own, over wired LAN, Wi-Fi, or NB-IoT mobile. The NB-IoT variant matters more than it sounds: an outdoor court gate at the far end of a site often has power but no realistic network path, and running fibre to it is a project. NB-IoT turns that into a non-project.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It drives real locks.&lt;/strong&gt; Up to two lock drivers at 3 A / 12 V DC each, for solenoid or motor-driven locks, plus keypads or card readers over Wiegand or RS-232, plus inputs for door-status and tamper sensors. So the system knows not only that a door was unlocked, but whether it was actually opened — and whether it was left open.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It keeps working when the internet does not.&lt;/strong&gt; A controller stores 25,000–50,000 codes and access rules locally and logs 100,000 events. If your uplink drops mid-evening, the gate still opens for the people who are supposed to be there, and the events sync when the connection returns. Traffic is AES256-encrypted.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It has spare I/O.&lt;/strong&gt; Additional I/O pins are designed for integration with other equipment — lighting included. We will come back to that.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5fsbi0ejvjrn0zeh5nig.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5fsbi0ejvjrn0zeh5nig.png" alt="WebLock DLA v4 system architecture: keypad, door sensors and electric lock connect to the DLA v4, which reaches the WebLock cloud over LAN, WiFi or NB-IoT" width="799" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;How the pieces fit together. Diagram: WebLock.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Three variants exist — DLA v4 Pro Ethernet (&lt;code&gt;EL.DLA42001&lt;/code&gt;), DLA v4 Pro NB-IoT (&lt;code&gt;EL.DLA42003&lt;/code&gt;), and a single-entryway Consumer model (&lt;code&gt;EL.DLA42005&lt;/code&gt;) — which mostly comes down to how the controller gets online and whether you are driving motor-driven locks. Your installer will pick; the SportyPlus side is identical either way.&lt;/p&gt;

&lt;p&gt;Two Estonian clubs on our platform have been running this arrangement long enough to be worth naming. &lt;strong&gt;Airok&lt;/strong&gt; cut front-desk staffing substantially once smart locks and automated booking were doing the admitting. &lt;strong&gt;Sport Club Viimsi&lt;/strong&gt; pairs automated entry with adaptive lighting and reports lower energy costs alongside the reduced staffing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Shelly: the switching side
&lt;/h2&gt;

&lt;p&gt;Lighting is a different problem from access. A door lock is a low-current device you drive directly. Court floodlighting is a mains circuit, often three-phase, often several kilowatts per court. You do not switch that from a booking system directly — you switch a relay, and the relay switches the contactor that feeds the lighting circuit.&lt;/p&gt;

&lt;p&gt;That relay is &lt;a href="https://www.shelly.com/" rel="noopener noreferrer"&gt;Shelly&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7m8z2a9u8yqzxlwsoqss.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7m8z2a9u8yqzxlwsoqss.jpg" alt="Shelly Pro 4PM, a four-channel DIN rail smart relay with power metering" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Shelly Pro 4PM — four independently switched channels on a DIN rail. Image: Shelly.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Shelly makes Wi-Fi and LAN-connected relays that mount on a DIN rail in the same distribution board as everything else in your plant room, which is exactly where a club's lighting control belongs. The obvious fit for a multi-court facility is the &lt;strong&gt;Shelly Pro 4PM&lt;/strong&gt;: four channels, up to 16 A each, with power metering on every channel, controlled individually. One unit, four courts. Smaller sites use a one- or two-channel Pro device; a large facility stacks several.&lt;/p&gt;

&lt;p&gt;SportyPlus connects to &lt;strong&gt;Shelly Cloud&lt;/strong&gt;, so:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You authorise SportyPlus against your Shelly account once, from the club admin, using Shelly's own sign-in. We never hold your Shelly password, and you can revoke the connection from Shelly at any time.&lt;/li&gt;
&lt;li&gt;You then map devices to courts — this channel is court 2's lighting, that one is court 3's. That mapping is the only configuration the club does.&lt;/li&gt;
&lt;li&gt;From then on, bookings drive the relays. Lights on at the start, off at the end.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The per-channel power metering is a bonus most clubs do not expect to care about and then do. Because every channel reports its own consumption, you can see what each court's lighting actually costs per hour — and set the price of a floodlit slot from a number rather than a guess.&lt;/p&gt;

&lt;p&gt;Which brings up the commercial side. In SportyPlus, lighting can be an &lt;strong&gt;additional booking product&lt;/strong&gt;: the member books an evening slot, lighting is added to the booking, and the charge lands on the same payment as the court. Clubs that used to absorb evening lighting as an overhead can recover it per booking instead, without anyone tallying anything. And a club administrator can always extend a lighting period manually — a match that runs long does not end in the dark.&lt;/p&gt;

&lt;h3&gt;
  
  
  Either system can do either job
&lt;/h3&gt;

&lt;p&gt;It is worth being clear that the split above — WebLock for doors, Shelly for lights — is how clubs usually end up, not a rule either product imposes.&lt;/p&gt;

&lt;p&gt;A WebLock DLA v4 has spare I/O pins intended for exactly this, so the controller you fitted at the gate can switch a lighting contactor as well. And a Shelly relay does not care what it is switching: wire it to an electric strike or a gate opener instead of a lighting circuit and it opens doors. SportyPlus drives both, for both jobs, from the same booking.&lt;/p&gt;

&lt;p&gt;So it is largely a matter of preference — and of what your building makes convenient. Two things usually settle it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Where the cable runs.&lt;/strong&gt; If the lighting distribution board is a long way from the gate, you want a device at each, rather than pulling a new run across the site. If they are in the same plant room, one device may cover both.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What each one gives you beyond switching.&lt;/strong&gt; WebLock's value is the credential layer — keypads and card readers, per-user access rules, door and tamper sensors, and a local event log — which a plain relay does not have. Shelly's is per-channel power metering and DIN-rail mounting, which a door controller does not have. If you want entry logged against people, put access on WebLock; if you want to know what each court's lighting costs, put lighting on Shelly.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Plenty of clubs run only one of the two. Whichever way you go, the behaviour in the app is identical.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tweener: the light itself
&lt;/h2&gt;

&lt;p&gt;Access control and relays assume something worth switching on. For clubs that are installing or replacing court lighting, we have partnered with &lt;strong&gt;&lt;a href="https://www.tweener.fr/en/" rel="noopener noreferrer"&gt;Tweener&lt;/a&gt;&lt;/strong&gt;, the French LED lighting system made by NLX — and Tweener installations work with both the WebLock and Shelly control paths described above.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo7yam0yfm8rf6n1fnk1k.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo7yam0yfm8rf6n1fnk1k.jpg" alt="Clay court at Finca Guila Tenis &amp;amp; Padel Club, Alicante, lit by Tweener LED strips mounted on the fence posts" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Finca Guila Tenis &amp;amp; Padel Club, Alicante. The light source is the strip along the fence line — there are no masts.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Tweener's idea is a linear, &lt;strong&gt;post-less&lt;/strong&gt; system. Instead of four to eight floodlight masts around the court, LED bars mount directly onto the existing fence posts, running along the court's sides. That single decision removes most of what makes court lighting a construction project: no mast foundations, no crane, no long civil works, and in France no prior building permit. It is also why it goes into sites where masts were never going to be allowed — the Monte Carlo Country Club, the Mouratoglou Academy, Tennis Club Alberto Bonacossa in Milan, and the Nice LTC for the 2023 Hopman Cup.&lt;/p&gt;

&lt;p&gt;The numbers, for a single-court system: 300 lux average, uniformity coefficient ≥ 0.7, 5000 K, CRI above 70, at 1800 W of LED and 2200 W of electrical draw. The double system lights two courts at once at 250 lux from 3500 W of LED. Strips are IP65 and IK08 rated — sealed against weather and built to take a ball — with an operating range of −30 °C to +35 °C, in green (RAL 6005) or black (RAL 9005). Certification covers CE/RoHS in Europe and C-UL-US in the States, and the systems comply with federation standards including the French Tennis Federation's. The lens technology is patented in both France and the US.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz862kg6d29ylnvfe3gpo.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz862kg6d29ylnvfe3gpo.jpg" alt="Players on floodlit courts at Pelican Golf Club, Belleair, Florida, at dusk" width="800" height="599"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Pelican Golf Club, Belleair, Florida. Fence-mounted strips, no glare from overhead masts.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Two practical points matter more to a club manager than the photometrics. The first is that low, linear, side-mounted light is markedly kinder to players than high floodlights — you are not looking into a point source when you hit an overhead. The second is efficiency: at roughly 130 lm/W, an hour of Tweener-lit tennis costs a fraction of what the metal-halide system it replaces did. Combine that with lighting that only runs during actual bookings, and the two savings multiply rather than add.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr4pcn8z0fr799nc8iwbw.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr4pcn8z0fr799nc8iwbw.jpg" alt="Aerial view of two floodlit clay courts at Ry Tennis Club, Denmark" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Ry Tennis Club, Denmark. Light on the courts, not in the sky above them.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  A real club: Padel Tinjan
&lt;/h2&gt;

&lt;p&gt;Padel Tinjan is a padel club in Tinjan, in the Istrian hinterland, and it runs on SportyPlus. It is a useful example precisely because it is not a flagship site — it is a small club that needs to be open to its members without paying somebody to sit at the entrance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F61obiyj6utacdjrvvszj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F61obiyj6utacdjrvvszj.jpg" alt="The SportyPlus member app at Padel Tinjan, showing the Access Control card with a single Vrata button" width="800" height="581"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The member's home screen at Padel Tinjan. Access Control sits directly under the booking and club functions.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;What is worth noticing is how little there is to it. On the member's home screen, under the same tiles they use to reserve a court, check results and read club messages, there is an &lt;strong&gt;Access Control&lt;/strong&gt; card: &lt;em&gt;"Press the appropriate button to activate the lock or the lights."&lt;/em&gt; Below it, one button — &lt;strong&gt;Vrata&lt;/strong&gt;, Croatian for &lt;em&gt;door&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;That is the entire member-facing interface. No separate app to install, no code to look up, no instructions to remember. The card lists the controls the club has configured, so a club with a gate and two lit courts shows three buttons instead of one, in the member's own language.&lt;/p&gt;

&lt;p&gt;Everything described in this guide sits behind that button. The club's controller and relay are wired once by an electrician, mapped to courts once in the admin panel, and after that the member's experience is a card on the screen they were already looking at.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this looks like on a Tuesday
&lt;/h2&gt;

&lt;p&gt;Concretely, for a member with a 20:00 booking on court 3:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;They book on their phone, and pay. Lighting is added to the booking automatically because it is an evening slot in October.&lt;/li&gt;
&lt;li&gt;At 20:00, SportyPlus tells Shelly Cloud to close the channel mapped to court 3. The contactor pulls in, and court 3's Tweener strips come on.&lt;/li&gt;
&lt;li&gt;The member arrives, types their usual PIN on the gate keypad. WebLock checks it against their active bookings, finds the 20:00 on court 3, and releases the lock. The door sensor confirms it actually opened.&lt;/li&gt;
&lt;li&gt;At 21:30 the booking ends and the channel opens. Court 3 goes dark. Courts 1, 2 and 4 were never on.&lt;/li&gt;
&lt;li&gt;Nobody was at the club. The evening's entries and each court's lighting consumption are in the admin panel in the morning.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That is the whole point. The club is open to its members at 06:30 and at 22:00 without anyone being paid to be there, and the electricity bill reflects the hours that were actually played.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practical recommendations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Start with the booking system, not the hardware.&lt;/strong&gt; Booking-driven access only works if bookings are accurate. If half your court time is still arranged in a WhatsApp group, fix that first — see &lt;a href="https://www.sporty.plus/blog/court-booking-management" rel="noopener noreferrer"&gt;managing court bookings&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Count entryways, not doors.&lt;/strong&gt; Each DLA v4 covers two. Decide which gates genuinely need controlled access before you price anything.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check the network at the gate before you specify the controller.&lt;/strong&gt; If there is no realistic cable route, specify the NB-IoT variant now rather than discovering the problem on installation day.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Put the lighting relay in the distribution board, not near the court.&lt;/strong&gt; A DIN-rail Shelly next to the contactors is serviceable by any electrician; a device in a weatherproof box at the fence line is not.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Meter per court.&lt;/strong&gt; Per-channel metering is what lets you price a floodlit slot honestly. It costs nothing extra on a Pro 4PM.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep one manual override.&lt;/strong&gt; A physical way to force lights on, and a way for a member of staff to open a door, for the evening the internet is down and someone is standing outside in the rain.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Run the court cabling once.&lt;/strong&gt; If you are trenching for lighting or an access controller anyway, pull the network run for a &lt;a href="https://www.sporty.plus/blog/record-matches-on-club-courts" rel="noopener noreferrer"&gt;court camera&lt;/a&gt; at the same time — the cabling is the slow part of that project too.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Do lighting replacement and control together.&lt;/strong&gt; If you are re-lighting courts anyway, specifying the switching at the same time saves a second visit from the electrician.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Related questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Does each booking generate a new PIN code?&lt;/strong&gt;&lt;br&gt;
No. Each member has one permanent PIN. The system grants or refuses it based on that member's active bookings, so the code a member memorises in January still works in December — but only during their own booked times.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What happens if the internet goes down?&lt;/strong&gt;&lt;br&gt;
The WebLock DLA v4 stores codes and access rules locally — tens of thousands of them — and keeps logging events, so entry continues to work for existing bookings and the records sync when the connection returns. Lighting control runs through Shelly Cloud and does need connectivity, which is the main reason to keep a manual override at the board.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can members bring guests in?&lt;/strong&gt;&lt;br&gt;
Yes, if the club allows it. A guest is admitted under the member's booking; the club decides in SportyPlus whether guest bookings are permitted and what they cost.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do we have to replace our locks?&lt;/strong&gt;&lt;br&gt;
Usually not. The DLA v4 drives standard electric solenoid and motor-driven locks and reads standard Wiegand or RS-232 keypads and card readers, so an existing electrified door is often a matter of wiring rather than replacement. An entirely mechanical door does need a lock fitted.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can we control lights without a smart lock system, or vice versa?&lt;/strong&gt;&lt;br&gt;
Yes — they are independent. Plenty of clubs automate lighting with a Shelly relay while keeping a staffed entrance, and plenty automate access on a facility whose lighting is already on a timer. Doing both is simply where the staffing saving becomes real.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can Shelly do access control, or WebLock do lighting?&lt;/strong&gt;&lt;br&gt;
Yes, both ways. A Shelly relay wired to an electric strike or gate opener releases a door, and a WebLock DLA v4 has spare I/O pins for switching a lighting contactor. Which you pick is mostly a matter of preference and cable runs. The difference is in the extras: WebLock adds keypads, card readers, per-user rules and an event log; Shelly adds per-channel power metering.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do we have to buy lighting from Tweener to use this?&lt;/strong&gt;&lt;br&gt;
No. SportyPlus switches whatever lighting circuit your electrician wires to the relay, regardless of manufacturer. Tweener is who we recommend and work with for clubs that are installing or replacing lighting, and their systems are supported by both control paths described here.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is this only for tennis?&lt;/strong&gt;&lt;br&gt;
No. Nothing above is sport-specific — the same access and lighting automation runs on padel courts, pickleball courts, squash courts and indoor halls. Padel and pickleball facilities tend to adopt it fastest, because they are frequently built as unstaffed sites from day one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related SportyPlus guides
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.sporty.plus/blog/court-booking-management" rel="noopener noreferrer"&gt;How to Manage Court Bookings Without Spreadsheets, Messages and Manual Work&lt;/a&gt; — the booking layer everything here depends on.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.sporty.plus/blog/five-signs-your-club-needs-online-court-booking" rel="noopener noreferrer"&gt;Five signs your club needs online court booking&lt;/a&gt; — whether your manual processes have outgrown themselves.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Let the booking open the gate.&lt;/strong&gt; SportyPlus connects &lt;a href="https://www.sporty.plus/modules/court_booking" rel="noopener noreferrer"&gt;court booking&lt;/a&gt;, &lt;a href="https://www.sporty.plus/modules/memberships" rel="noopener noreferrer"&gt;memberships&lt;/a&gt; and payments to &lt;a href="https://www.sporty.plus/modules/smart_locks" rel="noopener noreferrer"&gt;smart locks and lighting&lt;/a&gt;, so a paid booking becomes a working PIN code and a lit court — with no one on site to make it happen.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Handle Refunds for Cancelled Court Bookings Automatically</title>
      <dc:creator>Marko Banušić</dc:creator>
      <pubDate>Sun, 13 Sep 2026 18:28:08 +0000</pubDate>
      <link>https://dev.to/sportyplus/how-to-handle-refunds-for-cancelled-court-bookings-automatically-3j75</link>
      <guid>https://dev.to/sportyplus/how-to-handle-refunds-for-cancelled-court-bookings-automatically-3j75</guid>
      <description>&lt;p&gt;Online court payments make reservations easier for both players and clubs. But cancellations&lt;br&gt;
can create additional administrative work.&lt;/p&gt;

&lt;p&gt;A player pays for a court. Later, the reservation is cancelled. Now the club needs to&lt;br&gt;
determine what should happen to the amount that was already paid.&lt;/p&gt;

&lt;p&gt;Handling this manually for every cancellation quickly becomes repetitive, especially for&lt;br&gt;
clubs processing many online reservations.&lt;/p&gt;

&lt;p&gt;One solution is to automatically return eligible amounts to the player's &lt;strong&gt;club wallet&lt;/strong&gt; —&lt;br&gt;
a balance held at the club that the player can spend on their next booking. That is the&lt;br&gt;
approach this guide describes, and it is worth being explicit about it up front: the money&lt;br&gt;
stays in the club rather than going back to the card.&lt;/p&gt;
&lt;h2&gt;
  
  
  Start with a clear cancellation rule
&lt;/h2&gt;

&lt;p&gt;Every club should first decide how late a player is allowed to cancel a reservation.&lt;/p&gt;

&lt;p&gt;For example, a club may define a cancellation period such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;cancellation is allowed until a defined number of hours before the reservation&lt;/li&gt;
&lt;li&gt;cancellations after that deadline are no longer eligible for a credit&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The important part is that the policy is clear and applied consistently. Different clubs can&lt;br&gt;
use different cancellation periods depending on how they operate.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why automate cancellation credits?
&lt;/h2&gt;

&lt;p&gt;Without automation, the process may look like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Player cancels a reservation.&lt;/li&gt;
&lt;li&gt;Administrator checks whether the booking was paid.&lt;/li&gt;
&lt;li&gt;Administrator checks whether the cancellation was made within the allowed period.&lt;/li&gt;
&lt;li&gt;Administrator manually adjusts the player's balance.&lt;/li&gt;
&lt;li&gt;Player uses the credit later.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For a single reservation this is easy. For dozens of cancellations, it becomes unnecessary&lt;br&gt;
administrative work.&lt;/p&gt;
&lt;h2&gt;
  
  
  How an automatic club wallet credit works
&lt;/h2&gt;

&lt;p&gt;A more efficient process can look like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The player books and pays for the court.&lt;/li&gt;
&lt;li&gt;The player later cancels the reservation.&lt;/li&gt;
&lt;li&gt;The system checks the club's cancellation rules.&lt;/li&gt;
&lt;li&gt;If the cancellation qualifies, the paid amount is automatically credited to the player's
club wallet.&lt;/li&gt;
&lt;li&gt;The court becomes available again.&lt;/li&gt;
&lt;li&gt;The wallet balance can be used for a future reservation.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The administrator does not need to process the credit manually.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why use a club wallet?
&lt;/h2&gt;

&lt;p&gt;Returning the amount to a club wallet can make the cancellation process simpler.&lt;/p&gt;

&lt;p&gt;For the player, the value of the cancelled reservation is immediately available for future&lt;br&gt;
use in the club. For the club, there is no need to manually handle every eligible&lt;br&gt;
cancellation.&lt;/p&gt;

&lt;p&gt;For example: a player pays €20 for a tennis court. The reservation is later cancelled within&lt;br&gt;
the club's allowed cancellation period. Instead of requiring an administrator to manually&lt;br&gt;
process the situation, €20 is returned to the player's club wallet. The player can then use&lt;br&gt;
that €20 toward another reservation.&lt;/p&gt;
&lt;h2&gt;
  
  
  The cancellation policy still matters
&lt;/h2&gt;

&lt;p&gt;Automation should not mean every cancellation automatically receives credit. The club's&lt;br&gt;
cancellation rules still determine whether the cancelled reservation qualifies.&lt;/p&gt;

&lt;p&gt;For example, a club might allow cancellations until a certain number of hours before the&lt;br&gt;
reservation. If the player cancels before that deadline, the amount can return to the club&lt;br&gt;
wallet. If the cancellation happens too late, the club's normal late-cancellation policy&lt;br&gt;
applies.&lt;/p&gt;

&lt;p&gt;The exact deadline is defined by the club.&lt;/p&gt;
&lt;h2&gt;
  
  
  Make the rule clear to players
&lt;/h2&gt;

&lt;p&gt;Players should know the cancellation conditions before they pay. A simple message can&lt;br&gt;
explain:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Cancellations made within the allowed cancellation period will be returned to your club&lt;br&gt;
wallet.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The exact cancellation deadline should also be clearly visible. This reduces questions and&lt;br&gt;
misunderstandings.&lt;/p&gt;
&lt;h2&gt;
  
  
  The court should become available again
&lt;/h2&gt;

&lt;p&gt;A cancellation is not only about the payment. The cancelled court should also return to the&lt;br&gt;
booking calendar so another player can reserve it.&lt;/p&gt;

&lt;p&gt;A good workflow therefore connects both actions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;reservation cancelled
    → court released
    → eligible amount returned to club wallet
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This means one action by the player can complete the entire process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example
&lt;/h2&gt;

&lt;p&gt;A player books a padel court and pays €32. The club allows cancellation until a defined&lt;br&gt;
period before the reservation. The player cancels within that period.&lt;/p&gt;

&lt;p&gt;The system:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;cancels the reservation&lt;/li&gt;
&lt;li&gt;makes the court available again&lt;/li&gt;
&lt;li&gt;credits €32 to the player's club wallet&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The player can use the balance when making their next booking. No manual refund handling is&lt;br&gt;
required.&lt;/p&gt;

&lt;h2&gt;
  
  
  How SportyPlus can help
&lt;/h2&gt;

&lt;p&gt;SportyPlus connects &lt;a href="https://www.sporty.plus/modules/court_booking" rel="noopener noreferrer"&gt;court reservations&lt;/a&gt;,&lt;br&gt;
&lt;a href="https://www.sporty.plus/modules/finance" rel="noopener noreferrer"&gt;online payments&lt;/a&gt; and the player's club wallet.&lt;/p&gt;

&lt;p&gt;When a paid reservation is cancelled and meets the club's cancellation conditions, the&lt;br&gt;
corresponding amount can automatically be returned to the player's SportyPlus wallet. The&lt;br&gt;
player can then use that balance for another booking.&lt;/p&gt;

&lt;p&gt;This helps remove repetitive administrative work from the cancellation process while keeping&lt;br&gt;
the club's cancellation policy consistent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practical recommendation
&lt;/h2&gt;

&lt;p&gt;Keep the cancellation policy easy to understand. Define:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how long before the reservation a player can cancel&lt;/li&gt;
&lt;li&gt;what happens after the deadline&lt;/li&gt;
&lt;li&gt;that eligible cancelled payments are returned to the club wallet&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then let the booking system apply the rule automatically. For players, the process is&lt;br&gt;
simple. For administrators, one more repetitive task disappears.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Is a club wallet credit the same as a refund?&lt;/strong&gt;&lt;br&gt;
No, and it is worth saying so plainly to players. The value returns to the club as a balance&lt;br&gt;
for future bookings rather than to the original payment method. Stating that before payment&lt;br&gt;
prevents most cancellation disputes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What happens to a late cancellation?&lt;/strong&gt;&lt;br&gt;
The club's late-cancellation policy applies instead. Decide that outcome explicitly —&lt;br&gt;
partial credit, no credit, or a fee — rather than leaving it to be settled case by case.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does the cancelled court get offered to anyone else?&lt;/strong&gt;&lt;br&gt;
It should. Releasing the slot is half the job; a court that is released but never noticed&lt;br&gt;
becomes the kind of unusable hole described in&lt;br&gt;
&lt;a href="https://www.sporty.plus/blog/prevent-30-minute-gaps-court-bookings" rel="noopener noreferrer"&gt;how to prevent 30-minute gaps between court bookings&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How long should the cancellation window be?&lt;/strong&gt;&lt;br&gt;
It depends on how likely the slot is to be rebooked. Clubs with heavy prime-time demand can&lt;br&gt;
afford a short window; quiet mid-week afternoons justify a longer one.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Remove one repetitive task from every cancellation.&lt;/strong&gt; SportyPlus applies your cancellation&lt;br&gt;
rules automatically, releases the court and credits the player's club wallet. See&lt;br&gt;
&lt;a href="https://www.sporty.plus/modules/finance" rel="noopener noreferrer"&gt;payments and finance&lt;/a&gt;, or read the full guide to&lt;br&gt;
&lt;a href="https://www.sporty.plus/blog/court-booking-management" rel="noopener noreferrer"&gt;court booking management&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
