diff --git a/bbcli/commands/contents.py b/bbcli/commands/contents.py
index f558e0bfc89460ea0e31c333d87b9c62136a88e3..2768d5ae1be9ad2635e4ba1e46c3771dee015555 100644
--- a/bbcli/commands/contents.py
+++ b/bbcli/commands/contents.py
@@ -93,10 +93,11 @@ def list_contents(ctx, course_id: str, folder_id: str, content_type, folders_onl
 @click.command(name='get', help='Get content')
 @click.option('-c', '--course', 'course_id', required=True, type=str, help='COURSE ID')
 @click.option('-co', '--content', 'node_id', required=True, type=str, help='CONTENT ID')
+@click.option('-p', '--path', required=False, type=str, help='Path to be downloaded to')
 @click.pass_context
 @list_exception_handler
-def get_content(ctx, course_id: str, node_id: str):
-    content_utils.check_content_handler(ctx, course_id, node_id)
+def get_content(ctx, course_id: str, node_id: str, path: str):
+    content_utils.check_content_handler(ctx, course_id, node_id, path)
 
 
 @click.command(name='attachment', help='Add attachment to content\n\nOnly supports contents of type document and assignment')
diff --git a/bbcli/services/contents_service.py b/bbcli/services/contents_service.py
index b252889e53773bf241e90bc4d5ef318234fadbf6..131da08b31818d02f06e1c4bf318ea1203839e73 100644
--- a/bbcli/services/contents_service.py
+++ b/bbcli/services/contents_service.py
@@ -55,7 +55,7 @@ def get_attachments(session: requests.Session, course_id: str, node_id: str):
     response.raise_for_status()
     return response
 
-def download_attachment(session: requests.Session, course_id: str, node_id: str, attachment) -> str:
+def download_attachment(session: requests.Session, course_id: str, node_id: str, attachment, path) -> str:
     attachment_id = attachment['id']
     fn = attachment['fileName']
     url = url_builder.base_v1().add_courses().add_id(
@@ -63,18 +63,24 @@ def download_attachment(session: requests.Session, course_id: str, node_id: str,
         ).add_id(attachment_id).add_download().create()
     response = session.get(url, allow_redirects=True)
     response.raise_for_status()
-    downloads_path = get_download_path(fn)
-    f = open(downloads_path, 'wb')
-    f.write(response.content)
-    f.close()
-    click.echo(f'\"{fn}\" was downloaded to the downloads folder.')
+    downloads_path = get_download_path(fn, path)
+    try:
+        f = open(downloads_path, 'wb')
+        f.write(response.content)
+        f.close()
+    except FileNotFoundError:
+        click.echo(f'\"{fn}\" could not be downloaded, please specify a valid path.')
+        return 
+    path = path if path != None else 'Downloads'
+    click.echo(f'\"{fn}\" was downloaded to \"{path}\".')
     return downloads_path 
 
-def download_attachments(session: requests.Session, course_id: str, node_id: str, attachments):
+def download_attachments(session: requests.Session, course_id: str, node_id: str, attachments, path):
     paths = []
     for attachment in attachments:
-        path = download_attachment(session, course_id, node_id, attachment)
-        paths.append(path)
+        downloads_path = download_attachment(session, course_id, node_id, attachment, path)
+        if downloads_path != None:
+            paths.append(downloads_path)
     return paths
 
 def open_file(path):
diff --git a/bbcli/utils/content_utils.py b/bbcli/utils/content_utils.py
index db9cbb03447c3800fdac7c12d6f1724a22711a2e..88b8ac1ad3572ed7ef2cad0559997a624b455fff 100644
--- a/bbcli/utils/content_utils.py
+++ b/bbcli/utils/content_utils.py
@@ -106,7 +106,7 @@ def list_contents_thread(
     return root_node
 
 
-def check_content_handler(ctx, course_id: str, node_id: str):
+def check_content_handler(ctx, course_id: str, node_id: str, path: str):
     session = ctx.obj['SESSION']
     response = contents_service.get_content(
         ctx.obj['SESSION'], course_id, node_id)
@@ -125,7 +125,7 @@ def check_content_handler(ctx, course_id: str, node_id: str):
             click.confirm(
                 "This is a document with an attachment(s), do you want to download it?",
                 abort=True)
-            paths = contents_service.download_attachments(session, course_id, node_id, attachments)
+            paths = contents_service.download_attachments(session, course_id, node_id, attachments, path)
             [contents_service.open_file(path) for path in paths]
         else:
             click.echo('The document has no attachments.')
@@ -158,7 +158,7 @@ def check_content_handler(ctx, course_id: str, node_id: str):
                 "This is a file, do you want to download and open it?",
                 abort=True)
         paths = contents_service.download_attachments(
-            session, course_id, node_id, attachments)
+            session, course_id, node_id, attachments, path)
         [contents_service.open_file(path) for path in paths]
     elif ch == content_handler['assignment']:
         click.echo('Opening assignment...')
@@ -172,7 +172,7 @@ def check_content_handler(ctx, course_id: str, node_id: str):
                 "The assignment contains attachment(s), do you want to download?",
                 abort=True)
             paths = contents_service.download_attachments(
-                session, course_id, node_id, attachments)
+                session, course_id, node_id, attachments, path)
             [contents_service.open_file(path) for path in paths]
     elif ch == content_handler['blankpage']:
         click.echo('Opening blankpage...')
diff --git a/bbcli/utils/utils.py b/bbcli/utils/utils.py
index 071dabea6f80852769fcd4bf29269459a3759607..3c7171775089599f0ee9a446e3ba84d9fdcc6c0e 100644
--- a/bbcli/utils/utils.py
+++ b/bbcli/utils/utils.py
@@ -71,7 +71,7 @@ def format_date(date: str):
             click.echo('Value format is not valid, please see --help for more info.')
             raise click.Abort()
 
-def get_download_path(file_name):
+def get_download_path(file_name, path: str):
     """Returns the default downloads path for linux or windows"""
     if os.name == 'nt':
         import winreg
@@ -79,9 +79,16 @@ def get_download_path(file_name):
         downloads_guid = '{374DE290-123F-4565-9164-39C4925E467B}'
         with winreg.OpenKey(winreg.HKEY_CURRENT_USER, sub_key) as key:
             location = winreg.QueryValueEx(key, downloads_guid)[0]
-        return f'{location}\{file_name}'
+        downloads_path = f'{location}\{file_name}'
+        if path == None:
+            return donwloads_path
+        else:
+            return downloads_path.replace('Downloads', path)
     else:
-        return os.path.join(os.path.expanduser('~'), f'Downloads/{file_name}')
+        if path == None:
+            return os.path.join(os.path.expanduser('~'), f'Downloads/{file_name}')
+        else:
+            return os.path.join(os.path.expanduser('~'), f'{path}/{file_name}')
 
 
 def authorization_handler(func):