Duke is a desktop app for managing tasks, optimised for use via a command line interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, Duke can manage and organise your tasks faster than traditional GUI apps. The chat interface also gives users a more personal feeling.
11 or above installed on your computer.java -jar duke.jar for Mac.
You should see the below GUI after a few seconds:

Some example commands you can try:
todo read book: Adds a todo read book to the list of tasks.list: Lists all tasks.done 1: Marks the first task in the list as done.delete 1: Deletes the first task shown in the list.bye: Exits the app
ℹ️ Notes about the command format:
- Words in
UPPER_CASEare the parameters to be supplied by the user.
eg. intodo DESCRIPTION,DESCRIPTIONis a parameter which can be used astodo read book.- Items in square brackets are optional.
egevent DESCRIPTION /at DATE [TIME]can be used asevent meeting /at 9/10/2020orevent meeting /at 9/10/2020 2:00 PM- Items with
...after them can be used multiple times but at least once, separated by a comma.
egfind KEYWORD...can be used asfind readorfind read book.- Parameters must be in the order specified.
- Command is case-insensitive.
todoAdds a todo to the list of tasks.
Format: todo DESCRIPTION
Example of usage:
todo read book
Expected outcome:
Got it. I've added this task:
[T][✘] read book
Now you have 2 tasks in the list.
deadlineAdds a deadline to the list of tasks.
Format: deadline DESCRIPTION /by DATE [TIME]
⚠️ For
DATE [TIME]parameters in both deadline and event features, only the following formats are accepted:
| Format | Example |
|---|---|
| dd/mm/yyyy | 9/10/2020 |
| dd MMM yyyy | 9 Oct 2020 |
| dd MMMM yyyy | 9 October 2020 |
| dd-mm-yyyy | 9-10-2020 |
| yyyy-mm-dd | 2020-10-9 |
| Format | Example |
|---|---|
| hh:mm A | 3:30 PM |
| HH:mm | 15:30 |
| Hmm | 1530 |
💡 Tip: It is not necessary to add a time.
Example of usage:
deadline finish CS2103 User Guide /by 9/10/2020 2:00 PM
Expected outcome:
Got it. I've added this task:
[D][✘] finish CS2103 User Guide (by 9 Oct 2020 2:00 PM)
Now you have 3 tasks in the list.
👍 All dates and time are displayed as
dd MMM yyyy h:mm A(as above) for easy reading.
eventAdds an event to the list of tasks.
Format: event DESCRIPTION /at (DATE [TIME])...
💡
...indicates thatDATE [TIME]can be repeated multiple times (but at least once), separated by a comma. Add multiple timings if you want to store a tentative schedule to be confirmed later.
ℹ️ Refer to Adding a deadline:
deadlineto find out the accepted date and time formats.
Example of usage:
event meeting /at 9 Oct 2020, 10/10/2020 4:30 PM
Expected outcome:
Got it. I've added this task:
[E][✘] meeting (at [9 Oct 2020, 10 Oct 2020 4:30 PM])
Now you have 2 tasks in the list.
confirmConfirms the timing of an event with a tentative schedule (multiple timings).
Format: confirm TASK_INDEX DATE_TIME_INDEX
Example of usage:
Before command, suppose there was originally an event
1. [E][✘] meeting (at [9 Oct 2020, 10 Oct 2020 4:30 PM])
and you want to confirm the timing 10 Oct 2020 4:30 PM, which
is the second timing.
Command: confirm 1 2
Expected outcome:
Nice! I've confirmed the date for this event
[E][✘] meeting at 10 Oct 2020 4:30 PM)
listShows a list of all tasks.
Format: list
Example of usage:
list
Expected outcome:
Here are the tasks in your list:
1. [T][✘] read book
2. [D][✘] finish CS2103 User Guide (by 9 Oct 2020 2:00 PM)
3. [E][✘] meeting (at [9 Oct 2020, 10 Oct 2020 4:30 PM])
Now you have 3 tasks in the list.
todayShows a list of all events and deadlines that are happening today.
Format: today
Example of usage:
today
Expected outcome:
Here are the tasks today:
1. [D][✘] finish CS2103 User Guide (by 9 Oct 2020 2:00 PM)
⚠️ Note that events with tentative schedules (more than one timing specified) that have not been confirmed will not be displayed.
findFinds tasks whose description matches all the keywords.
Format: find KEYWORD...
read book or
book read will show the same result.boo will match book);Examples:
find finish GuideExpected outcome:
Here are the matching tasks in your list:
1. [D][✘] finish CS2103 User Guide (by 9 Oct 2020 2:00 PM)
doneMarks a task as done.
Format: done INDEX
ℹ️
INDEXrefers to the index of the task as displayed when executinglist.
Example of usage:
done 1
Expected outcome:
Nice! I've marked this task as done:
[T][✓] read book
deleteDeletes a task.
Format: delete INDEX
ℹ️
INDEXrefers to the index of the task as displayed when executinglist.
Example of usage:
delete 1
Expected outcome:
Noted. I've removed this task:
[T][✓] read book
byeExits the program.
Format: bye
All tasks are saved in the hard drive automatically after every command. There is no need to save manually.
💡 Data is stored in /data/duke.txt relative to the home folder.
Action | Format | Examples
—— | —— | ——–
todo | todo DESCRIPTION | todo read book
deadline | deadline DESCRIPTION /at DATE [TIME] | deadline study /by 9/10/2020
event | event DESCRIPTION /at (DATE [TIME])... | event meeting /at 9/10/2020 2:00 PM, 10 Oct 2020 1530
confirm | confirm INDEX | confirm 1
list | list
today | today
find | find KEYWORDS... | find read, find read book
done | done INDEX | done 2
delete | delete INDEX | delete 1
bye | bye