diff --git a/mo/imports.py b/mo/imports.py
index 46b1e18e0f27f35de4e2d7ac1f8d4dc4d8ba6023..d6f738b67137f2b1a36b4c6b078ee2d0697f0d29 100644
--- a/mo/imports.py
+++ b/mo/imports.py
@@ -7,6 +7,7 @@ from sqlalchemy import and_
 from sqlalchemy.orm import joinedload, Query
 from typing import List, Optional, Any, Dict, Type, Union, Tuple
 
+import mo.contests
 import mo.csv
 from mo.csv import FileFormat, MissingHeaderError
 import mo.db as db
@@ -27,6 +28,7 @@ class Import:
     cnt_new_participants: int = 0
     cnt_new_participations: int = 0
     cnt_new_roles: int = 0
+    cnt_new_contests: int = 0
     cnt_set_points: int = 0
     cnt_add_sols: int = 0
     cnt_del_sols: int = 0
@@ -49,6 +51,7 @@ class Import:
     log_msg_prefix: str
     log_details: Any
     allow_change_user_to_org: bool = False  # pro Import orgů: je povoleno vyrobit orga z účastníka
+    allow_create_contests: bool = False     # pro Import účastníků: je povoleno zakládat soutěže
 
     # Interní: Stav importu
     place_cache: Dict[str, db.Place]
@@ -263,7 +266,16 @@ class Import:
                 return None
             contest = db.get_session().query(db.Contest).filter_by(round=round, place=oblast).one_or_none()
             if contest is None:
-                return self.error('V uvedené oblasti toto kolo neprobíhá')
+                if self.allow_create_contests:
+                    try:
+                        mo.contests.add_contest(round.master, oblast, reason='import', gatekeeper=self.gatekeeper)
+                        self.cnt_new_contests += 1
+                    except mo.contests.ContestError as e:
+                        return self.error(str(e))
+                    # Je jednodušší contest znovu najít, než ho vyhrabat ze zakládání soutěží ve skupině kol
+                    contest = db.get_session().query(db.Contest).filter_by(round=round, place=oblast).one()
+                else:
+                    return self.error('V uvedené oblasti toto kolo neprobíhá')
 
         return contest
 
@@ -468,7 +480,8 @@ class ContestImport(Import):
          round: db.Round,
          contest: Optional[db.Contest] = None,
          only_region: Optional[db.Place] = None,
-         default_place: Optional[db.Place] = None
+         default_place: Optional[db.Place] = None,
+         allow_create_contests: bool = False
     ):
         super().__init__(user)
         self.user = user
@@ -476,6 +489,7 @@ class ContestImport(Import):
         self.contest = contest
         self.only_region = only_region
         self.default_place = default_place
+        self.allow_create_contests = allow_create_contests
         assert not self.round.is_subround()
 
     def import_row(self, r: mo.csv.Row) -> None:
@@ -515,7 +529,7 @@ class ContestImport(Import):
         self.find_or_create_participation(user, contest, misto)
 
     def get_after_import_message(self) -> str:
-        return f'Importováno ({self.cnt_rows} řádků, založeno {self.cnt_new_users} uživatelů, {self.cnt_new_participations} účastí, {self.cnt_new_roles} rolí)'
+        return f'Importováno ({self.cnt_rows} řádků, založeno {self.cnt_new_users} uživatelů, {self.cnt_new_participations} účastí, {self.cnt_new_contests} soutěží)'
 
 
 @dataclass
diff --git a/mo/web/org_contest.py b/mo/web/org_contest.py
index a49d464b264ca4dccf666716eb3014ccf2bdb35c..b11e95aab161b94a356b5c7b251bc27f8a184535 100644
--- a/mo/web/org_contest.py
+++ b/mo/web/org_contest.py
@@ -486,7 +486,7 @@ def org_contest(ct_id: int, site_id: Optional[int] = None):
 
 
 class ContestantImportForm(ImportForm):
-    pass
+    allow_create_contests = wtforms.BooleanField("Povolit zakládání nových soutěží")
 
 
 @app.route('/org/contest/c/<int:ct_id>/import-contestant', methods=('GET', 'POST'))
@@ -499,6 +499,9 @@ def org_import_user(round_id: Optional[int] = None, hier_id: Optional[int] = Non
     default_place = contest.place if contest else ctx.hier_place
 
     form = ContestantImportForm()
+    if ctx.contest is not None:
+        del form.allow_create_contests
+
     imp = None
     if form.validate_on_submit():
         imp = ContestImport(
@@ -507,6 +510,7 @@ def org_import_user(round_id: Optional[int] = None, hier_id: Optional[int] = Non
             contest=contest,
             only_region=ctx.hier_place,
             default_place=default_place,
+            allow_create_contests=form.allow_create_contests.data if form.allow_create_contests is not None else False
         )
     return generic_import_page(
         form, imp, ctx.url_home(),
diff --git a/mo/web/templates/org_contestants_import.html b/mo/web/templates/org_contestants_import.html
index 82d27d7e2ca53cd63d8e6955d6f3194cd89863e4..12da9a298e1bcc23d41511e8a8828353f8066980 100644
--- a/mo/web/templates/org_contestants_import.html
+++ b/mo/web/templates/org_contestants_import.html
@@ -21,4 +21,7 @@ kód oblasti. Nechcete raději importovat do konkrétní oblasti?</em></p>
 
 
 {% block import_form %}
+	{% if form.allow_create_contests %}
+		{{ wtf.form_field(form.allow_create_contests) }}
+	{% endif %}
 {% endblock %}