Joe is a chatbot that helps you keep track of your tasks. It is user-friendly and easy to use due to its simplistic design.
joe.jar from herecd to the home folder and run java -jar joe.jar command to run the application.
A GUI similar to the below should appear in a few seconds.

list: Lists all tasks.todo sleep: Adds a todo task with the description “sleep”.delete 1: Deletes the 1st task shown in the current list.bye: Exits the app.Joe can help you manage your tasks in a simple and efficient manner. Do note that commands have to strictly adhere to the formats provided or Joe wouldn’t be able to understand you. Here are some of the commands you can use:
listJoe can show you all the tasks you have added.
Example: list
Joe will list all the tasks you have added.
Here are the tasks in your list:
1. [T][ ] sleep
2. [D][ ] finish assignment (by: 17th of September 2025, 11:59pm)
3. [E][ ] project meeting (from: 17th of September 2025, 2:00pm to: 17th of September 2025, 3:00pm)
markJoe can help you mark tasks as done.
Example: mark 1
Joe will mark the 1st task as done.
Nice! I've marked this task as done:
1. [T][X] sleep
unmarkJoe can help you unmark tasks as not done.
Example: unmark 1
Joe will unmark the 1st task as not done.
Ok, I've unmarked this task as not done:
1. [T][ ] sleep
deleteJoe can help you delete tasks.
Example: delete 1
Joe will delete the 1st task.
Noted. I've removed this task:
1. [T][ ] sleep
Now you have 2 tasks in the list.
findJoe can help you find tasks with a specific keyword.
Example: find assignment
Joe will list all tasks with the keyword “assignment”.
Here are the matching tasks in your list:
1. [D][ ] finish assignment (by: 17th of September 2025, 11:59pm)
Joe can help you manage three types of tasks: todos, deadlines, and events.
todoExample: todo sleep
Joe will add a todo task with the description “sleep”.
Got it. I've added this task:
1. [T][ ] sleep
Now you have 1 task in the list.
deadlineExample: deadline finish assignment | by 17/09/2025 2359
Joe will add a deadline task with the description “finish assignment” and the deadline “17th of September 2025, 11:59pm”.
Got it. I've added this task:
2. [D][ ] finish assignment (by: 17th of September 2025, 11:59pm)
Now you have 2 tasks in the list.
eventExample: event project meeting | from 17/09/2025 1400 | to 17/09/2025 1500
Joe will add an event task with the description “project meeting”, starting at “2:00pm” and ending at “3:00pm” on the “17th of September 2025”.
Got it. I've added this task:
3. [E][ ] project meeting (from: 17th of September 2025, 2:00pm to: 17th of September 2025, 3:00pm)
Now you have 3 tasks in the list.
byeWith a simple bye, you could send Joe to sleep.
Example: bye
Joe will bid you farewell and close the application.
Bye. Hope to see you again soon!
saveYou can get Joe to manually save your current task list.
Example: save
Joe will save your current task list.
Saving your tasks...
[T][ ] sleep (saved)
[D][ ] finish assignment (by: 17th of September 2025, 11:59pm) (saved)
[E][ ] project meeting (from: 17th of September 2025, 2:00pm to: 17th of September 2025, 3:00pm) (saved)
Your tasks have been succesfully saved.
helpJoe can show you all the available commands.
Example: help
Here are the available commands:
bye: ends our interaction :-(
deadline <description> /by <due date/time>: Creates a Deadline task
delete <idx>: Deletes the task at your chosen index
event <description> /from <start date/time> /to <end date/time>: Creates an Event task
find <queryString>: Finds task with descriptions matching your query regex
list: Displays your current tasks
mark <idx>: Marks the task at your chosen index
save : Saves all tasks in your current list to the database that will be automatically loaded during your next session
todo <description>: Creates a ToDo task
unmark <idx>: Unmarks the task at your chosen index
queryJoe can show you all the tasks on a specific date.
Example: query 17/09/2025
Joe will list all tasks on the “17th of September 2025”.
Here are the tasks on the 2025-09-17:
1. [D][ ] finish assignment (by: 17th of September 2025, 11:59pm)
2. [E][ ] project meeting (from: 17th of September 2025, 2:00pm to: 17th of September 2025, 3:00pm)
| Action | Format, Examples |
|---|---|
| List | list |
| Mark as done | mark INDEX e.g., mark 1 |
| Unmark as not done | unmark INDEX e.g., unmark 1 |
| Delete | delete INDEX e.g., delete 1 |
| Find Tasks with matching keyword | find KEYWORD e.g., find assignment |
| Todo | todo DESCRIPTION e.g. todo sleep |
| Deadline | deadline DESCRIPTION /by DATE TIME e.g., deadline finish assignment /by 17/09/2025 2359 |
| Event | event DESCRIPTION /from DATE TIME /to DATE TIME e.g., event project meeting /from 17/09/2025 1400 /to 17/09/2025 1500 |
| Bye | bye |
| Save | save |
| Help | \help |
| Query Date | query DATE e.g., query 17/09/2025 |