diff --git a/db/db.ddl b/db/db.ddl
index 83bfb7a4560db2f29d8b8853d6841322fb917d8f..52b984df0d15ac1079af412be6ce5432a8a19a53 100644
--- a/db/db.ddl
+++ b/db/db.ddl
@@ -197,6 +197,7 @@ CREATE TYPE role_type AS ENUM (
 	'garant',		-- celostátní garant (může být omezený na kategorii)
 	'garant_kraj',		-- krajský garant
 	'garant_okres',		-- okresní garant
+	'garant_skola',		-- školní garant
 	'dozor',		-- dozor na soutěži (může odevzdávat řešení za účastníky)
 	'opravovatel'		-- opravovatel
 );
diff --git a/db/upgrade-20210115b.sql b/db/upgrade-20210115b.sql
new file mode 100644
index 0000000000000000000000000000000000000000..1262c92398ea0341655f77a7d2a319406515d2ab
--- /dev/null
+++ b/db/upgrade-20210115b.sql
@@ -0,0 +1,3 @@
+SET ROLE 'mo_osmo';
+
+ALTER TYPE role_type ADD VALUE 'garant_skola' AFTER 'garant_okres';
diff --git a/mo/db.py b/mo/db.py
index ec1dfe01929e9e2305d5ab8ce19424412d0bb423..cd9d0a39853c5c130ccfe3ddd343ca022fb761ce 100644
--- a/mo/db.py
+++ b/mo/db.py
@@ -348,6 +348,7 @@ class RoleType(MOEnum):
     garant = auto()
     garant_kraj = auto()
     garant_okres = auto()
+    garant_skola = auto()
     dozor = auto()
     opravovatel = auto()
 
@@ -359,6 +360,7 @@ role_type_names = {
     RoleType.garant: 'celostátní garant',
     RoleType.garant_kraj: 'krajský garant',
     RoleType.garant_okres: 'okresní garant',
+    RoleType.garant_skola: 'školní garant',
     RoleType.dozor: 'dozor',
     RoleType.opravovatel: 'opravovatel',
 }
diff --git a/mo/rights.py b/mo/rights.py
index a9daeb9c436718c62f1d8f6d9be3580fbdbafc57..63a4e5db9767c701d91b4fbc86edb20e06f9c18d 100644
--- a/mo/rights.py
+++ b/mo/rights.py
@@ -84,6 +84,21 @@ roles: List[Role] = [
             Right.edit_users,
         },
     ),
+    Role(
+        role=db.RoleType.garant_skola,
+        rights={
+            # FIXME: Až se pořádně rozjedou školní kola, asi chceme školním správcům omezit
+            # práva na editaci uživatelů. Viz issue #66.
+            Right.assign_rights,
+            Right.edit_place,
+            Right.manage_contest,
+            Right.view_submits,
+            Right.upload_submits,
+            Right.edit_points,
+            Right.add_users,
+            Right.edit_users,
+        },
+    ),
     Role(
         role=db.RoleType.dozor,
         rights={