tp

User Guide

Introduction

UniTasker is a desktop app for students managing tasks and courses, optimized for use via a Command Line Interface (CLI).

Quick Start

  1. Ensure that you have Java 17 or above installed.
  2. Down the latest version of UniTasker from here.
  3. Copy the file to the folder you want to use as the home folder for your UniTasker
  4. Open a command terminal, cd into the folder you put the jar file in, and use the java -jar UniTasker.jar command to run the application
  5. Type a command in the command box and press Enter to execute it.
  6. It is recommended to use the add category command first as tasks can only be added inside a category.

Features

Add Command: add

Adds a new item to the list. The add command supports multiple task types: category, todo, deadline, event, and recurring.


Add Category: add category

Adds a new category.

Format: add category [name]

Example:

add category School


Add Todo: add todo

Adds a todo item under a specific category.

Format: add todo [CATEGORYINDEX] [DESCRIPTION] /p [PRIORITYVALUE]

Examples:

add todo 1 finish tutorial add todo 1 reply email /p 5


Add Deadline: add deadline

Adds a deadline with a specified due date and time (optional). If no time is given, time is defaulted to 2359.

Format: add deadline [CATEGORYINDEX] [DESCRIPTION] /by [DATE TIME]

Example:

add deadline 1 Homework /by 25-05-2026 1800

add deadline 1 Homework /by 25-05-2026

Note: Adding a deadline will increase total incomplete task on particular date


Add Event: add event

Adds an event with a start and end time.

Format: add event [CATEGORYINDEX] [DESCRIPTION] /from [START] /to [END]

Example:

add event 1 meeting /from 25-05-2026 1400 /to 25-05-2026 1600

Note:


Add Recurring Event: add recurring

Adds a weekly recurring event.

Format: add recurring [CATEGORYINDEX] [DESCRIPTION] /from [DAY TIME] /to [DAY TIME] (/date or /month) [END DURATION]

______________________________________________________________________
add recurring 1 lecture /from Friday 1030 /to Friday 1130 /month 2
______________________________________________________________________
This recurring event has been added:
[RE][ ] lecture (from: Friday 1030 to: Friday 1130)
______________________________________________________________________
add recurring 1 CS2113 lecture /from Friday 1600 /to Friday 1800 /date 24-04-2026
______________________________________________________________________
This recurring event has been added:
[RE][ ] CS2113 lecture (from: Friday 1600 to: Friday 1800)
______________________________________________________________________

Examples:

add recurring 1 CS2113 lecture /from Friday 1600 /to Friday 1800

Note:


Delete Command: delete

Delete an existing item on the list. delete can be used to delete the following: category, todo, deadline, event, recurring

Delete Category: delete category

Format: delete category [CATEGORYINDEX]

Example: delete category 1

Delete Marked: delete marked

Deletes all marked tasks.

Format: delete marked

Example: delete marked

Delete Task (Todos and Deadlines): delete [TASKTYPE]

Format: delete [TASKTYPE] [CATEGORYINDEX] [TASKINDEX]

Examples:

delete deadline 1 1 delete deadline 1 all

Note: Use delete todo/deadline categoryIndex all to delete all todos/deadlines in specific category

Note: Deleting a deadline will affect the total number of incomplete task and completed task on particular date. This is applicable to delete deadline categoryIndex all but total completed and incomplete task per date will not be shown

Delete Events delete [EVENTTYPE]

Format: delete [EVENTTYPE] [CATEGORYINDEX] [UIINDEX]

Sample portion of outputs:

______________________________________________________________________
list event
______________________________________________________________________
ALL EVENTS
______________________________________________________________________
[1]school:
1. [E][ ] meeting (from: 04-04-2026 1000 to: 04-04-2026 1100)
2. [E][ ] consultation (from: 10-04-2026 1800 to: 10-04-2026 1900)
3. [E][ ] session (from: 11-04-2026 1800 to: 11-04-2026 1900)
4. [RE]lecture (from: Friday 1030 to: Friday 1130)
5. [RE]CS2113 lecture (from: Friday 1600 to: Friday 1800)
6. [RE]CS2113 seminar (from: Friday 2000 to: Friday 2100)

______________________________________________________________________
delete event 1 1
______________________________________________________________________
This event has been deleted:
[E][ ] meeting (from: 04-04-2026 1000 to: 04-04-2026 1100)
______________________________________________________________________
______________________________________________________________________
list recurring
______________________________________________________________________
ALL RECURRING EVENTS
______________________________________________________________________
[1]school:
1. [RE]lecture (from: Friday 1030 to: Friday 1130)
2. [RE]CS2113 lecture (from: Friday 1600 to: Friday 1800)
3. [RE]CS2113 seminar (from: Friday 2000 to: Friday 2100)

______________________________________________________________________
delete recurring 1 1
______________________________________________________________________
This recurring event has been deleted:
[RE]lecture (from: Friday 1030 to: Friday 1130)
______________________________________________________________________
______________________________________________________________________
list event
______________________________________________________________________
ALL EVENTS
______________________________________________________________________
[1]school:
1. [E][ ] consultation (from: 10-04-2026 1800 to: 10-04-2026 1900)
2. [E][ ] session (from: 11-04-2026 1800 to: 11-04-2026 1900)
3. [RE]CS2113 lecture (from: Friday 1600 to: Friday 1800)
4. [RE]CS2113 seminar (from: Friday 2000 to: Friday 2100)

______________________________________________________________________
list occurrence 1 3
______________________________________________________________________
OCCURRENCES FOR: CS2113 lecture
______________________________________________________________________
[1]school:
1. [RE][ ] CS2113 lecture (from: 10-04-2026 1600 to: 10-04-2026 1800)
2. [RE][ ] CS2113 lecture (from: 17-04-2026 1600 to: 17-04-2026 1800)
3. [RE][ ] CS2113 lecture (from: 24-04-2026 1600 to: 24-04-2026 1800)

______________________________________________________________________
delete occurrence 1 1
______________________________________________________________________
This recurring event has been deleted:
[RE][ ] CS2113 lecture (from: 10-04-2026 1600 to: 10-04-2026 1800)
______________________________________________________________________

Examples:

delete occurrence 1 1 delete recurring 1 1 delete event 1 all

Note:


Mark Command: mark

Mark Task (Todos and Deadlines) mark [TASKTYPE]

Mark existing task(s) (todos and deadlines) in a category.

Format: mark [TASKTYPE] [CATEGORYINDEX] [TASKINDEX]...

Examples:

Note: Marking a deadline will increase total completed task and decrease total incomplete task on particular date

Mark Events mark [EVENTTYPE]

Mark existing event(s) in the category.

Format: mark [EVENTTYPE] [CATEGORYINDEX] [UIINDEX]...

Sample portion of output:

______________________________________________________________________
list event
______________________________________________________________________
ALL EVENTS
______________________________________________________________________
[1]school:
1. [E][ ] consultation (from: 10-04-2026 1800 to: 10-04-2026 1900)
2. [E][ ] session (from: 11-04-2026 1800 to: 11-04-2026 1900)
3. [RE]CS2113 lecture (from: Friday 1600 to: Friday 1800)
4. [RE]CS2113 seminar (from: Friday 2000 to: Friday 2100)

______________________________________________________________________
mark event 1 1
______________________________________________________________________
This task is marked as done:
[E][X] consultation (from: 10-04-2026 1800 to: 10-04-2026 1900)
______________________________________________________________________
Marked 1 event(s) successfully.
list event
______________________________________________________________________
ALL EVENTS
______________________________________________________________________
[1]school:
1. [E][X] consultation (from: 10-04-2026 1800 to: 10-04-2026 1900)
2. [E][ ] session (from: 11-04-2026 1800 to: 11-04-2026 1900)
3. [RE]CS2113 lecture (from: Friday 1600 to: Friday 1800)
4. [RE]CS2113 seminar (from: Friday 2000 to: Friday 2100)

______________________________________________________________________
list occurrence 1 3
______________________________________________________________________
OCCURRENCES FOR: CS2113 lecture
______________________________________________________________________
[1]school:
1. [RE][ ] CS2113 lecture (from: 10-04-2026 1600 to: 10-04-2026 1800)
2. [RE][ ] CS2113 lecture (from: 17-04-2026 1600 to: 17-04-2026 1800)
3. [RE][ ] CS2113 lecture (from: 24-04-2026 1600 to: 24-04-2026 1800)

______________________________________________________________________
mark occurrence 1 2
______________________________________________________________________
This task is marked as done:
[RE][X] CS2113 lecture (from: 17-04-2026 1600 to: 17-04-2026 1800)
______________________________________________________________________
Marked 1 event(s) successfully.

Examples:

mark event 1 1 mark occurrence 1 1 mark event 1 1 3 mark occurrence 1 1 2

Note:

Unmark Command: unmark

Unmark Task (Todos and Deadlines) unmark [TASKTYPE]

Unmark existing task(s) (todos and deadlines) in the category.

Format: unmark [TASKTYPE] [CATEGORYINDEX] [TASKINDEX]...

Examples:

Note: Unmarking a deadline will increase total incomplete task and decrease total completed task on particular date

Unmark Events unmark [EVENTTYPE]

Unmark existing event(s) in the category.

Format: unmark [EVENTTYPE] [CATEGORYINDEX] [UIINDEX]...

Sample portion of output:

list event
______________________________________________________________________
ALL EVENTS
______________________________________________________________________
[1]school:
1. [E][X] consultation (from: 10-04-2026 1800 to: 10-04-2026 1900)
2. [E][ ] session (from: 11-04-2026 1800 to: 11-04-2026 1900)
3. [RE]CS2113 lecture (from: Friday 1600 to: Friday 1800)
4. [RE]CS2113 seminar (from: Friday 2000 to: Friday 2100)

______________________________________________________________________
unmark event 1 1
______________________________________________________________________
This task is marked as not done:
[E][ ] consultation (from: 10-04-2026 1800 to: 10-04-2026 1900)
______________________________________________________________________
Unmarked 1 event(s) successfully.
list event
______________________________________________________________________
ALL EVENTS
______________________________________________________________________
[1]school:
1. [E][ ] consultation (from: 10-04-2026 1800 to: 10-04-2026 1900)
2. [E][ ] session (from: 11-04-2026 1800 to: 11-04-2026 1900)
3. [RE]CS2113 lecture (from: Friday 1600 to: Friday 1800)
4. [RE]CS2113 seminar (from: Friday 2000 to: Friday 2100)

______________________________________________________________________
list occurrence 1 3
______________________________________________________________________
OCCURRENCES FOR: CS2113 lecture
______________________________________________________________________
[1]school:
1. [RE][ ] CS2113 lecture (from: 10-04-2026 1600 to: 10-04-2026 1800)
2. [RE][X] CS2113 lecture (from: 17-04-2026 1600 to: 17-04-2026 1800)
3. [RE][ ] CS2113 lecture (from: 24-04-2026 1600 to: 24-04-2026 1800)

______________________________________________________________________
unmark occurrence 1 2
______________________________________________________________________
This task is marked as not done:
[RE][ ] CS2113 lecture (from: 17-04-2026 1600 to: 17-04-2026 1800)
______________________________________________________________________
Unmarked 1 event(s) successfully.

Example: unmark event 1 1 unmark occurrence 1 1 mark event 1 1 3 mark occurrence 1 1 2

Note:


List Command: list

Displays a list of tasks. The list command can be used with the following keywords: category, todo, deadline, range, limit, event, recurring, occurrence


List Category: list category

List all categories or one selected category.

Format: list category [CATEGORYINDEX]

Examples: list category, list category 1


List Todo: list todo

Lists all todos in every category

Format: list todo

Example: list todo


List Deadline: list deadline

Lists all deadlines in every category

Format: list deadline

Example: list deadline


List Limit: list limit

Shows the current year range and daily task limit.

Format: list limit

Example: list limit

List Range: list range

Shows all deadlines and/or events within a date range

Format: list range [START] [END] [FLAG]

Examples: list range 25-06-2026 27-06-2026 list range 25-06-2026 27-06-2026 /deadline list range 25-06-2026 27-06-2026 /event


List Event: list event

Format: list event [TYPE]

list event /normal shows non-recurring events

list event /all shows expanded view of recurring events

list event shows both non-recurring events and recurring events (collapsed view)

Examples:

list event /normal list event /all list event

Note:

List Recurring: list recurring

List recurring shows groups of recurring events.

Format : list recurring

Examples:

list recurring

Note: Anything after ‘recurring’ will be ignored

List Occurrence: list occurrence

List occurrence shows all events within a recurring group.

Format: list occurrence [CATEGORYINDEX] [UIINDEX]

list event
______________________________________________________________________
ALL EVENTS
______________________________________________________________________
[1]school:
1. [E][ ] meeting (from: 04-04-2026 1000 to: 04-04-2026 1100)
2. [RE]CS2113 seminar (from: Friday 2000 to: Friday 2100)

______________________________________________________________________
list occurrence 1 2
______________________________________________________________________
OCCURRENCES FOR: CS2113 seminar
______________________________________________________________________
[1]school:
1. [RE][ ] CS2113 seminar (from: 03-04-2026 2000 to: 03-04-2026 2100)
2. [RE][ ] CS2113 seminar (from: 10-04-2026 2000 to: 10-04-2026 2100)
3. [RE][ ] CS2113 seminar (from: 17-04-2026 2000 to: 17-04-2026 2100)
4. [RE][ ] CS2113 seminar (from: 24-04-2026 2000 to: 24-04-2026 2100)

______________________________________________________________________

Examples:

list occurrence 1 1

Note: Must use list event before using this list command


Reorder Command: reorder

Change the ordering of the following: category or todo.


Reorder Category: reorder category

Format: reorder category [FROMINDEX] [TOINDEX]

Example: reorder category 1 2


Reorder Todo: reorder todo

Format: reorder todo [CATEGORYINDEX] [FROMINDEX] [TOINDEX]

Example: reorder todo 1 1 2


Priority Command: priority

Set the priority value of a todo.

Format: priority todo [CATEGORYINDEX] [TODOINDEX] [PRIORITYVALUE]

Example: priority todo 1 1 5


Sort Command: sort todo

Sort todos within a category by priority value.

Format: sort todo [CATEGORYINDEX]

Example: sort todo 1


Find Command: find

Find any task (todos, deadlines and events) that contains the substring entered.

Format: find [SUBSTRING]

Example: find assignment


Limit Command: limit

Sets a limit on the following: task, year

Allow user to set the limit for the following: Task, Year

Format: limit [KEYWORD] [INT]

Examples:

limit task 5

limit year 2035

Note 1: Year refers to the furthest year that can be accessed/added to from the list

Note 2: Cannot further reduce year x if there is a task in the year x

Note 3: Latest Year is set to 2100 and Max task is set to 24

Note 4: Task refers to timed task: deadline, event


Reminder Command: reminder

Shows the pending tasks (deadlines and events) for the day

Format:

reminder

Note: Anything after ‘reminder’ will be ignored


Course Command: course

Manages your course grading structure. Supports adding/deleting courses and assessments, recording scores, and viewing weighted grades.


Add Course: course add

Adds a new course to the tracker.

Format: course add [COURSE_CODE]

Example:

course add CS2113


Delete Course: course delete

Deletes an existing course from the tracker.

Format: course delete [COURSE_CODE]

Example:

course delete CS2113


List Courses: course list

Lists all courses currently tracked.

Format: course list


View Course: course view

Displays all assessments and scores for a specific course.

Format: course view [COURSE_CODE]

Example:

course view CS2113


Add Assessment: course add-assessment

Adds an assessment component to a course.

Format: course add-assessment [COURSE_CODE] /n [NAME] /w [WEIGHTAGE] /ms [MAX_SCORE]

Example:

course add-assessment CS2113 /n Finals /w 40 /ms 100


Record Score: course score

Records your score for an assessment.

Format: course score [COURSE_CODE] /n [NAME] /s [SCORE]

Example:

course score CS2113 /n Finals /s 85


Delete Assessment: course delete-assessment

Deletes an assessment from a course.

Format: course delete-assessment [COURSE_CODE] /n [NAME]

Example:

course delete-assessment CS2113 /n Finals


Undo Command: undo

Undoes the most recent course command that modified data.

Format: undo

Example:

course add CS2113 followed by undo will remove CS2113.

Note: Undo is currently supported for course commands only.


Exit program: exit

Exits the program

Format:

exit

Note: Anything after ‘exit’ will be ignored


Saving and loading the data

UniTasker data is saved automatically to the same folder after any change to the data. If the save data file exists, data will also be loaded automatically into the program.


Editing the data file

UniTasker data is saved as text files in the same directory as the JAR file.
Advanced users may edit these files directly, but should copy and edit existing entries to maintain the correct format.

Note: If changes to the data file makes its format invalid, data loading can behave unexpectedly. For example, invalid lines may result in wrong information loaded or the entire line being skipped completely.


Additional Notes

Additional characters behind a correct complete command will almost always be ignored, allowing most command to succeed without error message. This gives user some “additional room” for accidental error.


FAQ

Q: How do I transfer my data to another computer?

A: Copy all the .txt files inside the folder with UniTasker and paste in the same folder where UniTasker.jar is located in the other computer.

Command Summary

Action Format, Examples  
help help  
add add category [DESC], add todo [CATEGORYINDEX] [DESCRIPTION] /p [PRIORITYVALUE],
add deadline [CATEGORYINDEX] [DESCRIPTION] /by [DATE TIME],
add event [CATEGORYINDEX] [DESCRIPTION] /from [START] /to [END],
add recurring [CATEGORYINDEX] [DESCRIPTION] /from [DAY TIME] /to [DAY TIME]
 
delete delete [KEYWORD] [CATEGORYINDEX] [TASKINDEX], delete [KEYWORD] [CATEGORYINDEX] all  
list list category [CATEGORYINDEX], list todo, list deadline, list limit, list range [START] [END] [FLAG],
list event [TYPE], list recurring, list occurrence [CATEGORYINDEX] [UIINDEX]
 
mark/unmark mark [TASKTYPE] [CATEGORYINDEX] [TASKINDEX], unmark [TASKTYPE] [CATEGORYINDEX] [TASKINDEX]  
reorder reorder category [FROMINDEX] [TOINDEX], reorder todo [CATEGORYINDEX] [FROMINDEX] [TOINDEX]  
priority priority todo [CATEGORYINDEX] [TODOINDEX] [PRIORITYVALUE]  
sort sort todo [CATEGORYINDEX]  
find find [SUBSTRING]  
limit limit [KEYWORD] [INT]  
reminder reminder  
course course add [COURSE_CODE], course delete [COURSE_CODE], course list,
course view [COURSE_CODE], course add-assessment [COURSE_CODE] /n [NAME] /w [WEIGHTAGE] /ms [MAX_SCORE],
course score [COURSE_CODE] /n [NAME] /s [SCORE], course delete-assessment [COURSE_CODE] /n [NAME]
 
undo undo  
exit exit