diff --git a/bbcli/cli.py b/bbcli/cli.py
index c643a919cf2924e4c0340ec02b452162886927e2..8c0ab51f0613f4d62bda99ae1da42e491257fc01 100644
--- a/bbcli/cli.py
+++ b/bbcli/cli.py
@@ -10,6 +10,7 @@ import click
 from bbcli.commands.courses import list_courses
 from bbcli.commands.announcements import list_announcements, create_announcement, delete_announcement, update_announcement
 from bbcli.commands.contents import create_assignment, create_courselink, create_folder, delete_content, list_contents, create_document, create_file, create_web_link, update_content, upload_attachment, get_content
+from bbcli.commands.assignments import get_assignments
 from bbcli.services.authorization_service import login
 
 load_dotenv()
@@ -77,6 +78,17 @@ announcements.add_command(create_announcement)
 announcements.add_command(delete_announcement)
 announcements.add_command(update_announcement)
 
+
+@entry_point.group()
+@click.pass_context
+def assignments(ctx):
+    """
+    Commands for creating, listing and submitting assignments.
+    """
+    pass
+
+assignments.add_command(get_assignments)
+
 """
 CONTENT COMMANDS ENTRY POINT
 """
diff --git a/bbcli/commands/assignments.py b/bbcli/commands/assignments.py
new file mode 100644
index 0000000000000000000000000000000000000000..d236f6d08180be95745fbcfdbbb5e9cb1210d86e
--- /dev/null
+++ b/bbcli/commands/assignments.py
@@ -0,0 +1,13 @@
+from email.policy import default
+import click
+
+from bbcli.services import assignment_service
+
+@click.command(name='get')
+@click.argument('course_id', required=True)
+@click.pass_context
+def get_assignments(ctx, course_id):
+    """
+    Get assignments
+    """
+    assignment_service.get_assignments(ctx.obj['SESSION'], course_id)
\ No newline at end of file
diff --git a/bbcli/services/__init__.py b/bbcli/services/__init__.py
index f30c4e42d3b55b2e31bb4a281935a9f0513de3f0..aa951f169f8041caf708990893dd0631718ad8fa 100644
--- a/bbcli/services/__init__.py
+++ b/bbcli/services/__init__.py
@@ -1,2 +1,2 @@
 from .authorization_service import *
-from bbcli.utils.URL_builder import URLBuilder
\ No newline at end of file
+from bbcli.utils.URL_builder import URL_builder
\ No newline at end of file
diff --git a/bbcli/services/announcements_service.py b/bbcli/services/announcements_service.py
index 9e7533f14bc5538c1fb9e77061b3da7b9335399f..48a54a4727ad7ed1065bd2e6098b30af6ce7e08e 100644
--- a/bbcli/services/announcements_service.py
+++ b/bbcli/services/announcements_service.py
@@ -8,9 +8,9 @@ from bbcli.services.courses_service import list_courses
 from bbcli.utils.utils import input_body, set_cookies
 import click
 
-from bbcli.utils.URL_builder import URLBuilder
+from bbcli.utils.URL_builder import URL_builder
 
-url_builder = URLBuilder()
+url_builder = URL_builder()
 
 def list_announcements(session: requests.Session, user_name: str):
     courses = list_courses(session, user_name=user_name)
diff --git a/bbcli/services/assignment_service.py b/bbcli/services/assignment_service.py
new file mode 100644
index 0000000000000000000000000000000000000000..e4755c5d3d4b2031bd6dab98b84410c8aafa6425
--- /dev/null
+++ b/bbcli/services/assignment_service.py
@@ -0,0 +1,37 @@
+from datetime import timezone
+import json
+import click
+import requests
+import dateutil.parser
+
+from bbcli.utils.URL_builder import URL_builder
+
+url_builder = URL_builder()
+
+
+def get_assignments(session: requests.Session, course_id):
+    url = url_builder.base_v1().add_courses().add_id(
+        course_id).add_gradebook().add_columns().create()
+    response = session.get(url)
+    response = json.loads(response.text)
+    results = response['results']
+    print_assignments(results)
+
+
+def print_assignments(assignments):
+    for i in range(len(assignments)):
+        name = assignments[i]['name']
+        due = 'N/A'
+        if ('grading' in assignments[i]):
+            if ('due' in assignments[i]['grading']):
+                due = assignments[i]['grading']['due']
+                due_datetime = utc_to_local(dateutil.parser.parse(due))
+                date = str(due_datetime.date())
+                time = str(due_datetime.time())
+                due = f'{date} {time}'
+
+        click.echo('{:<40s} due {:<10s}'.format(name, due))
+
+
+def utc_to_local(utc_dt):
+    return utc_dt.replace(tzinfo=timezone.utc).astimezone(tz=None)
diff --git a/bbcli/services/contents_service.py b/bbcli/services/contents_service.py
index eb7fd35d7e4adbe17aead253930eb934dc5e162c..ce0d20e511a711a4ffe77c8e326134aeeb37ab81 100644
--- a/bbcli/services/contents_service.py
+++ b/bbcli/services/contents_service.py
@@ -4,7 +4,7 @@ import os
 from typing import Dict, Any, List
 import requests
 import magic
-from bbcli.utils.URL_builder import URLBuilder
+from bbcli.utils.URL_builder import URL_builder
 from bbcli.services.utils.content_builder import ContentBuilder
 from bbcli.entities.content_builder_entitites import DateInterval, FileContent, GradingOptions, StandardOptions, FileOptions, WeblinkOptions
 from bbcli.utils.utils import input_body
@@ -12,7 +12,7 @@ import click
 
 from bbcli.utils.utils import check_response
 
-url_builder = URLBuilder()
+url_builder = URL_builder()
 content_builder = ContentBuilder()
 
 # User gets a tree structure view of the courses content
diff --git a/bbcli/services/courses_service.py b/bbcli/services/courses_service.py
index c25cbdcb1a346faff24de366b48e2447d5fa9bfc..334e68be61424134e7c9eb1e517ae6b73983a326 100644
--- a/bbcli/services/courses_service.py
+++ b/bbcli/services/courses_service.py
@@ -3,9 +3,9 @@ from typing import Dict, Any, List
 import requests
 from datetime import date
 
-from bbcli.utils.URL_builder import URLBuilder
+from bbcli.utils.URL_builder import URL_builder
 
-url_builder = URLBuilder()
+url_builder = URL_builder()
 
 
 def list_courses(session: requests.Session, user_name: str) -> Any:
diff --git a/bbcli/services/utils/content_builder.py b/bbcli/services/utils/content_builder.py
index 80173d5f71fe243d7bb8e0fe81c985d7e2f51730..675d131a5d1ca28bfc95fb1130a60dc73d660377 100644
--- a/bbcli/services/utils/content_builder.py
+++ b/bbcli/services/utils/content_builder.py
@@ -99,6 +99,12 @@ class ContentBuilder(Builder):
             'title': title
         })
         return self
+   
+    def add_name(self, name: str) -> Builder:
+        self._product.add({
+            'name': name
+        })
+        return self
 
     def add_body(self, body: str) -> Builder:
         self._product.add({
diff --git a/bbcli/utils/URL_builder.py b/bbcli/utils/URL_builder.py
index 92d28a70c8306bfa6eb91f0dca6808460db70b44..e83af410eb305cc6a028a4f4cabfac14a6e2a3c0 100644
--- a/bbcli/utils/URL_builder.py
+++ b/bbcli/utils/URL_builder.py
@@ -75,8 +75,16 @@ class Builder(ABC):
     def add_download(self) -> Builder:
         pass
 
+    @abstractmethod
+    def add_gradebook(self) -> Builder:
+        pass
+
+    @abstractmethod
+    def add_columns(self) -> Builder:
+        pass
+
 
-class URLBuilder(Builder):
+class URL_builder(Builder):
 
     def __init__(self) -> None:
         self.reset()
@@ -92,35 +100,35 @@ class URLBuilder(Builder):
 
 
 
-    def base_v1(self) -> URLBuilder:
+    def base_v1(self) -> URL_builder:
         self._product.add(f'{DOMAIN}{API_BASE}/v1')
         return self
     
-    def base_v2(self) -> URLBuilder:
+    def base_v2(self) -> URL_builder:
         self._product.add(f'{DOMAIN}{API_BASE}/v2')
         return self
 
-    def base_v3(self) -> URLBuilder:
+    def base_v3(self) -> URL_builder:
         self._product.add(f'{DOMAIN}{API_BASE}/v3')
         return self
 
-    def add_courses(self) -> URLBuilder:
+    def add_courses(self) -> URL_builder:
         self._product.add('/courses')
         return self
 
-    def add_users(self) -> URLBuilder:
+    def add_users(self) -> URL_builder:
         self._product.add('/users')
         return self
     
-    def add_announcements(self) -> URLBuilder:
+    def add_announcements(self) -> URL_builder:
         self._product.add('/announcements')
         return self
 
-    def add_contents(self) -> URLBuilder:
+    def add_contents(self) -> URL_builder:
         self._product.add('/contents')
         return self
 
-    def add_terms(self) -> URLBuilder:
+    def add_terms(self) -> URL_builder:
         self._product.add('/terms')
         return self
 
@@ -144,13 +152,20 @@ class URLBuilder(Builder):
         self._product.add('/download')
         return self
 
-    def add_id(self, id:str, id_type:str=None) -> URLBuilder:
+    def add_id(self, id:str, id_type:str=None) -> URL_builder:
         if id_type:
             self._product.add(f'/{id_type}:{id}')
         else:
             self._product.add(f'/{id}')
         return self
 
+    def add_gradebook(self) -> Builder:
+        self._product.add('/gradebook')
+        return self
+        
+    def add_columns(self) -> Builder:
+        self._product.add('/columns')
+        return self
 
     def create(self) -> str:
         url = self._product.get_url()
diff --git a/bbcli/utils/error_handler.py b/bbcli/utils/error_handler.py
index 9c5d16cc536c55e26db0ba679904cd7edd2a192a..bfa48610b75af30030d8bf62cf7abdae9f06a9f1 100644
--- a/bbcli/utils/error_handler.py
+++ b/bbcli/utils/error_handler.py
@@ -13,4 +13,4 @@ def exception_handler(func):
         except KeyError as err:
             click.echo(f'KeyError: key {err} does not exist.')
             raise click.Abort()
-    return inner_function
\ No newline at end of file
+    return inner_function