How do you know when the next tournament is held?

Major sporting events, like the Olympics or the FIFA World Cup, are held according to a fixed schedule. In both cases they are held every four years: the Olympics in 2024, 2028 and so on, and the FIFA World Cup in 2026, 2030, ... - at least if FIFA does not launch another insane idea again. I am not pretending that the card game tournaments on Whisthub are major sporting events too, but if you often participate in them, then you might have noticed that they also follow a certain schedule.

For example, for Colour Whist, a tournament is held every three weeks, and the start date of each tournament rotates between Monday, Tuesday and Wednesday. For Manille this is similar, but here there are actually two types of tournaments: Solo Cups and Team Cups. The rule here is that a Team Cup is always played the week after a Solo Cup.

Still, these schedules are not always clear for everyone and hence I sometimes get questions about when the next tournament will be held. To solve this, I've created a tournament calendar that shows all upcoming tournaments in the coming three months. The calendar below shows tournaments for all games, but you can find the calendar for a specific game by clicking on "Tournaments" in the lobby of that specific game and then on tournament calendar in the text.

Below you find the tournament calendar for all card games that you can play on Whisthub. You can show or hide certain games by choosing them from the list right below the calendar.

February 2025
Mon
Tue
Wed
Thu
Fri
Sat
Sun
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
1
2
March 2025
Mon
Tue
Wed
Thu
Fri
Sat
Sun
24
25
26
27
28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
April 2025
Mon
Tue
Wed
Thu
Fri
Sat
Sun
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4

Show tournaments for

The calendar can be read as follows. Days where a tournament takes place are marked in red. If the tournament page is already created - which is something I still have to do manually for now - then you can click on the day and be taken to the tournament page where you can find all information of the tournament, such as the time schedule and when the registrations will open. Note that a tournament page can already be created, even though the tournament is not yet visible in the lobby!

Tournaments that are planned according to the schedule, but for which the tournament page does not yet exist, are indicated in light red. Only when the tournament page has actually been created, it is confirmed that the tournament will actually take place. It is therefore possible that due to various circumstances - think of holidays - certain tournaments do not have the exact date from the schedule, or that they do not take place at all, but this is rather rare.

Also note that sometimes there can be pauses in the schedule. For example, it wouldn't really make sense to hold tournaments on Christmas eve, so the schedule knows this and skips a tournament if this would happen according to the schedule.

As mentioned above, I still have to create tournaments manually, but that is only partly true. As tournaments always have the same structure, the only thing I have to do is click a button in the calendar to create a tournament on that day. Subsequently the tournament configuration is generated automatically, and all I have to do is come up with a name for the tournament - which is surprisingly hard sometimes! Actually, naming tournaments is the only reason why tournaments are not generated completely automatically!

If you want to know how this works technically, then you should know that a tournament schedule is represented by a single object, which typically looks like

const schedule = {
  anchor: '2023-10-09',
  variant: 'manille',
  name: 'Solo Cup',
  day: ['Tuesday', 'Wednesday', 'Monday'],
  opens: '19:00-6',
  liveAt: 'Monday-1 19:00',
  interval: '3 weeks',
  pause: '12-23 01-01',
  timeZone: 'Europe/Brussels',
  schedule: {
    rounds: [
      '20:00',
      '21:00',
      '22:00',
      '20:00+1',
      '21:30+1',
    ],
  },
};

Key here is the anchor date: this is the first time a tournament of this schedule was held. Using the anchor date and the specified interval, all future tournaments can be generated, theoretically until the end of times. You can also see that the day of a tournament can be specified as an array. That means that the first time this tournament is held, it's on a Tuesday, the next time on a Wednesday, then Monday and then Tuesday again and so on.

In fact, the algorithm is structured so that any configuration option of a tournament can be an array, which is then cycled through. This happens for example with the Piccolo Cups of Colour Whist, where every fourth tournament is normally a tournament where the Piccolo contract is part of the rules:

const schedule = {
  variant: 'whist',
  config: {
    rules: {
      piccolo: [false, false, false, true],
    },
  },
};

A rather interesting aspect to this are time zones, and more specifically Daylight Saving Time. This is relevant for tournaments, because if the tournament schedule defines that a tournament always starts at 8 pm, then it has to do so both in Summer and in Winter. That's why every tournament schedule is also linked to a certain time zone, which is Europe/Brussels for most tournaments.

While not really relevant if you live somewhere in Europe, it becomes relevant if you are for example an expat living in Mexico. Mexico does not use Daylight Saving Time, which means that if you live in Mexico City - i.e. the America/Mexico_City time zone - then a tournament that starts at 8pm Brussels time in December, will start at 1pm Mexico City time. However, if the tournament starts at 8pm Brussels time in July, then it will start at 12pm Mexico City time because Mexico does not use Daylight Saving Time!

It even gets more complex if you are living in the United States. While the US does use Daylight Saving Time - well, at least most of the country - it does not start and end at the same days as it does in Europe! In Europe, DST starts the last Sunday in March at 01:00 UTC, but in the United States it starts already the second Sunday of March at 2am local time!

So, if a tournament takes place in March and has the Europe/Brussels time zone set, this results in the following starting hours in various time zones, depending on the actual date of the tournament:

DateEurope/BrusselsAmerica/New_YorkAmerica/Mexico_City
March 58pm2pm1pm
March 228pm3pm1pm
April 58pm2pm12pm

A similar thing happens in October at the end of DST! Or, as the saying among programmers goes:

I got 99 problems, and timezones are 97 of them.

Anyway, if you live in Belgium - like most players on this site - then you shouldn't worry too much about it. Even if you are on holiday in a different time zone, you can still participate in tournaments easily because the starting hours of the tournament are always shown in the local time zone of your device.

This means that if you travel to Portugal - which has a different time zone than Belgium - and your phone is set to Portugese time - which most phones do automatically - then the start times on the tournament page will automatically adapt. So, leave the 97 problems to the programmers, and just trust what you see on the tournament page!