Quick answer: Organizing CS2 scrims comes down to four repeatable steps: collect weekly availability from your 5-stack, lock roles (Entry Fragger, AWPer, Support, Lurker, IGL), agree on a map pool, and find an opponent at your Elo. Supatimer is the free Discord-native tool that handles steps one and two - CS2 ships a built-in role preset, so players tick the roles they cover and Supatimer checks that coverage as it builds the five from whoever is free. For the opponent search, it suggests teams in your own server and finds a team elsewhere by its exact Supatimer id.
CS2 is the most schedule-sensitive of the major tac shooters. ESEA Advanced, Faceit FPL-C, university leagues, and HLTV tier-3 rosters all run on identical operating loops - weekly availability, role-locked 5-stack, map veto, demo review. This guide turns that loop into four concrete actions you can run inside Discord.
Step 1: Collect weekly availability from your 5-stack
Post the calendar Sunday or Monday. Have all five players plus your sixth (analyst, coach, or sub) mark their blocks for the week. CS2 scrims do not run on day-of scheduling - they run on who blocked out Tuesday-Thursday three days in advance.
A typical CS2 scrim window is 19:00-23:00 in the region's main timezone (CET for European teams since most of tier-3 CS lives in EU, EST or PST for NA). EU teams running a 19:00 CET block usually finish by 22:30 with one map review. Lock that recurring window so players treat it as standing practice instead of optional.
With Supatimer: Run /avail in your team channel. A clean weekly calendar appears with buttons for each day and time block. Players tap their available blocks. The captain sees the entire week at a glance in Discord and on the web dashboard.
Step 2: Lock the lineup with defined roles
CS2 roles are sticky - your AWPer cannot just swap to Entry for a night without breaking T-side site executes. Confirm role coverage before announcing the scrim, especially when running with a stand-in who is filling a non-primary role.
A standard CS2 5-stack: one Entry Fragger (first contact on T-side sites), one AWPer (primary sniper, plays passive T / aggressive CT), one Support (utility setup and second contact), one Lurker (late-round presence and info), and one IGL calling strategy and tempo. Most rosters carry a sixth as a dedicated stand-in for the role that goes down most often. None of it is enforced by the game, so players usually cover two or three of the five - writing that down is what removes the "who's IGLing tonight" group-chat tax.
With Supatimer: CS2 is one of the ten games with a built-in role preset. Each player ticks the roles they cover - Entry Fragger, AWPer, Support, Lurker, IGL - and /weekplan checks role coverage as it builds the five, so a night with nobody on the AWP is visible before you announce it. Roles are convention, not a rule the game enforces, so a player ticks as many as they actually cover.
Step 3: Agree on the map pool and veto format
Map veto disagreements eat scrim time at server-up. Pre-agree on which Active Duty maps you are working, which you have banned permanently, and what veto format you run. Put it in the scrim announcement so neither team is surprised.
The Active Duty pool rotates - current is Mirage, Inferno, Nuke, Ancient, Anubis, Train, and Dust2. Tier-3 teams typically "main pool" four to five of those (drop two perma-bans) and run those maps in scrims for an entire season. Standard veto for a best-of-1 scrim: each team bans three of the agreed pool, the remaining map plays. Best-of-3 is ban-pick-ban-pick-ban-decider. The scrim announcement should specify pool, format, and starting side.
With Supatimer: Run /scrim with map pool, veto format, opponent (if known), and starting side in the notes. The scrim card pins to the channel and players see exactly what is locked in before warmup deathmatch.
Step 4: Find an opponent at your Elo
Scrim against teams within roughly 200 Elo of your average Faceit / Premier rating. Scrimming a top-tier team teaches very little - every clutch ends in a flick you cannot replicate. Scrimming down by 300+ Elo teaches nothing.
Established ESEA and Faceit teams find scrim partners through league-specific scrim Discords, HLTV team-finder threads, and direct IGL-to-IGL DMs. Newer teams cycle through the Faceit /scrim queue, FPL-C scrim networks, and the broader tier-3 EU scrim chains. The process is fundamentally manual and bottlenecked on someone in the roster being plugged into the right Discord servers.
In Supatimer today: opponent discovery inside your own server, and any team in another server by its exact Supatimer id. Discovery is reciprocal - your team is listed to the same teams it can see - and any team can switch itself off. Typing an opponent's name suggests matching teams with their Elo and contact details filled in for you. Once a team accepts a find-a-time request, both teams see the windows where they are both free that week. Planned, not built: a scrim board, where a team posts an open slot and another team claims it.
Why CS2 scheduling fails more often on map pools than on calendars
Most CS2 teams that quit scrimming did not stop because of availability. They stopped because the team kept ending up on maps half the roster had not practiced, against opponents with a completely different map pool. The calendar is solvable - the map pool alignment problem is what kills practice quality.
Practical implication: bake your map pool into the scrim announcement, share it with opponents before the scrim is booked, and treat veto pre-agreement as a hard requirement. Pair that with a tool that locks the availability and role-coverage problems behind a single Discord command, and the only thing left to negotiate is which opponent has your maps free that night. That is the loop Supatimer is built to close.