diff --git a/README.md b/README.md
index 3818299a85543a986020f67ea799704851b90355..adb02a9b09d5d7d63e1355e0803d1db42d7a65aa 100644
--- a/README.md
+++ b/README.md
@@ -41,12 +41,12 @@ Crée un dépôt git (projet) au sein d'un groupe à partir de l'URL d'un projet
 
 ### clone_all_repos_in_group.py
 ```bash
-python3 clone_all_repos_in_group.py <token> <group_id> <directory>
+python3 clone_all_repos_in_group.py <token> <group_id> <directory> <until_date>
 ```
-Clone tous les repositories d'un groupe `group_id` donné dans un répertoire nommé `directory`. Affiche sur la sortie standard les membres du groupe, l'url web du repo et dans quel sous-répertoire se trouvent les fichiers.
+Clone tous les repositories d'un groupe `group_id` donné dans un répertoire nommé `directory`. Si une date `until_date` (au format `AAAA-MM-DD hh:mm`) est donnée, exécute un `git checkout` sur le premier commit précédant cette date. Affiche sur la sortie standard les membres du groupe, l'url web du repo et dans quel sous-répertoire se trouvent les fichiers.
 
 ### clone_all_forks.py
 ```bash
-python3 clone_all_forks.py <token> <project_id> <directory>
+python3 clone_all_forks.py <token> <project_id> <directory> <until_date>
 ```
-Clone tous les forks d'un projet `project_id` donné dans un répertoire nommé `directory`. Affiche sur la sortie standard les membres du groupe (avec un droit d'accès supérieur à *Reporter*), l'url web du repo et dans quel sous-répertoire se trouvent les fichiers.
+Clone tous les forks d'un projet `project_id` donné dans un répertoire nommé `directory`. Si une date `until_date` (au format `AAAA-MM-DD hh:mm`) est donnée, exécute un `git checkout` sur le premier commit précédant cette date. Affiche sur la sortie standard les membres du groupe (avec un droit d'accès supérieur à *Reporter*), l'url web du repo et dans quel sous-répertoire se trouvent les fichiers.
diff --git a/scripts/clone_all_forks.py b/scripts/clone_all_forks.py
index 1c6ba5b3715dde25ef07c205e4f820a66e372250..1cd22620001c6e9481a2a93573b8efb845a9a996 100755
--- a/scripts/clone_all_forks.py
+++ b/scripts/clone_all_forks.py
@@ -7,7 +7,7 @@ import requests
 import subprocess
 
 if len(sys.argv) < 4:
-    print('Usage: ' + sys.argv[0] + ' <token> <project_id> <directory>')
+    print('Usage: ' + sys.argv[0] + ' <token> <project_id> <directory> <until_date>')
     exit(1)
 
 directory = sys.argv[3]
@@ -36,10 +36,21 @@ for repo in repositories:
 
     for member in members:
         if member['access_level'] > 20: # Access level greater than "Reporter"
-            members_names += member['username'] + ', '
+            members_names += "'" + member['name'] + "' (" + member['username'] + '), '
 
     print('Members: ' + members_names)
     print('Web url: ' + web_url)
-    print('Cloning in "' + directory + '/' + repo['namespace']['name'] + '"\n')
-    # TODO: checkout at date
+    print('Cloning in "' + directory + '/' + repo['namespace']['name'] + '"')
+
     subprocess.run(["git", "clone", "-q", ssh_url_to_repo, directory + '/' + repo['namespace']['name']])
+    if len(sys.argv) > 4:
+        until_date = sys.argv[4]
+        commit_id = subprocess.check_output([
+            "git","rev-list", "-n", "1", "--before=\"" + until_date + "\"",
+            "master"], cwd=directory + '/' + repo['namespace']['name']).decode('utf-8').rstrip()
+        subprocess.run(
+            ["git", "checkout", "-q", str(commit_id)],
+            cwd=directory + '/' + repo['namespace']['name'])
+        print("Checkout at " + str(commit_id) + "\n")
+    else:
+        print()
\ No newline at end of file
diff --git a/scripts/clone_all_repos_in_group.py b/scripts/clone_all_repos_in_group.py
index a6bfb8d612f7806b9292d1040981e4a88eb62c13..719f4da11819cfba637e91a4dd9f84ef1aff2cef 100755
--- a/scripts/clone_all_repos_in_group.py
+++ b/scripts/clone_all_repos_in_group.py
@@ -7,7 +7,7 @@ import requests
 import subprocess
 
 if len(sys.argv) < 4:
-    print('Usage: ' + sys.argv[0] + ' <token> <group_id> <directory>')
+    print('Usage: ' + sys.argv[0] + ' <token> <group_id> <directory> <until_date>')
     exit(1)
 
 directory = sys.argv[3]
@@ -45,6 +45,17 @@ for repo in repositories:
 
     print('Members: ' + members_names)
     print('Web url: ' + web_url)
-    print('Cloning in "' + directory + '/' + repo['path'] + '"\n')
-    # TODO: checkout at date
-    subprocess.run(["git", "clone", "-q", ssh_url_to_repo, directory + '/' + repo['path']])
\ No newline at end of file
+    print('Cloning in "' + directory + '/' + repo['path'] + '"')
+
+    subprocess.run(["git", "clone", "-q", ssh_url_to_repo, directory + '/' + repo['path']])
+    if len(sys.argv) > 4:
+        until_date = sys.argv[4]
+        commit_id = subprocess.check_output([
+            "git","rev-list", "-n", "1", "--before=\"" + until_date + "\"",
+            "master"], cwd=directory + '/' + repo['path']).decode('utf-8').rstrip()
+        subprocess.run(
+            ["git", "checkout", "-q", str(commit_id)],
+            cwd=directory + '/' + repo['path'])
+        print("Checkout at " + str(commit_id) + "\n")
+    else:
+        print()
\ No newline at end of file