CAFS - User Guide
By: AY1920S2-CS2113-T14-3
- Introduction
- Quick Start
- Features
3.1 Viewing help:help
3.2 Adding tasks:add
3.3 Editing tasks:edit
3.4 Listing tasks:list
3.5 Deleting tasks:delete
3.6 Marking tasks as done:done
3.7 Finding tasks:find
3.8 Viewing calendar:calendar
3.9 Clearing output:clc
3.10 Exiting program:bye
- FAQ
- Command Summary
1. Introduction
CAFS is a CLI calender-like task scheduler that supports task and class schedule adding. It is simple to use, and comes with an auto save function to remember your tasks.
2. Quick Start
-
Ensure you have Java 11 or above installed in your computer.
-
Download the latest cafs.jar here.
-
Copy the file to the folder you want to use as the home folder.
-
Run the jar file using
java - jar cafs.jar
from your terminal window.
3. Features
Command Format:
- The
format indicates user input. However, when inputting, there is no need to input `<>`symbol. The `< >` symbol just for readability. - Command keyword (e.g.
add
) is case insensitive. However, the delimiters (e.g.n/
) are case sensitive. - It is okay to switch the sequence when inputting the delimiters:
add n/<NAME> l/<LOCATION>
has same effects asadd l/<LOCATION> n/<NAME>
- When inputting a time, the format is always:
hh:mm-hh:mm
. No space is allowed around-
. Also, input like1:00-2:00
will not be allowed. - When inputting a date, the format is always:
yyyy-mm-dd
. - Some recognized date/time error will be automatically parsed to accepted format.
24:00
will be parsed to23:59
since 24:00 is next day.2021-02-30
will be parsed to2021-02-28
3.1. Viewing help: help
Displays the set of supported commands
Usage: help
3.2. Adding tasks: add
Users add tasks using this command.
Usage: add n/<NAME> t/<TIME> l/<LOCATION> d/<DATE> i/<INFORMATION> r/<REMINDER> c/<CATEGORY>
- Only name
<NAME>
is compulsory to include. However, if user only inputs time, then date of current day will be added automatically. - Space is okay in
<NAME>
,<REMINDER>
and<INFORMATION>
. e.g.:n/2113 deadline
is accepted. - The
<TIME>
should be in time duration format:hh:mm-hh:mm
(e.g.14:00-16:00
). There should be no space between this duration. - Since a task/class may have multiple time zones in a week, students can just add list of time zones.
However, the number of
<TIME>
should match with the number of<DATE>
. It is suggested that the number of<LOCATION>
also match with the number of<TIME>
. Use space to separate the time zone/date/location.- Example
add n/CS2113 t/12:00-13:00 15:00-16:00 d/2020-07-01 2020-09-01 l/NUS NTU
Adds a task with two time zones, dates, and locations.
- Example
- If no
<DATE>
is inputted by<TIME>
is inputted, the system will automatically add today’s date to that task. - The default category is TODO. To add a class, just indicate the category is
CLASS
. The category is case-insensitive. - Task’s notification are
[N]
(not completed, after just add) and[Y]
(completed, after done) Class’s notification is always[W]
(weekly).
3.2.1 Adding Task:
<Date>
should be in format:yyyy-mm-dd
Examples:
add n/Project Meeting t/12:00-13:00 15:00-16:00 d/2020-07-01 2020-09-01 l/NUS NTU c/meeting
Adds a meeting: Project Meeting on two time slots: 12:00-13:00 on 2020-07-01(NUS) and 15:00-16:00 on 2020-09-01(NTU)add n/2113 v2.1 t/23:00-24:00 d/2020-05-16 c/deadline
Adds a deadline: 2113 v2.1 on a specific date with a time range for the deadline.add n/Project Meeting t/12:00-13:00 15:00-16:00 l/NUS NTU i/important
Adds a task with two time slots on two locations with a description important.
3.2.2 Adding Class:
<DATE>
should be the day of the week, represented by an integer (e.g.1 3
means Mon Wed).
Examples:
add t/11:00-12:00 01:00-03:00 n/2113 d/3 4 c/CLASS l/COM2 COM1
Adds a class with two time frames, two days (Wednesday and Thursday), and two locations
3.3. Editing tasks: edit
Edit the inputted task/class.
Usage:edit TASK_INDEX t/<TIME> l/<LOCATION> d/<DATE> i/<INFORMATION> r/<REMINDER> c/<CATEGORY>
- It is not allowed to edit the
<NAME>
. - It is okay to edit the
<CATEGORY>
. However, it is not allowed to change from class category to other categories. It is also not allowed to change from other categories to class category. - When edit
<TIME>
and<DATE>
, please be reminded that the number of<TIME>
should match with the number of<DATE>
. It is suggested that number of location<LOCATION>
also matches.- If you only have added one of the
<TIME>
and<DATE>
for that task, no need to follow the number matching of TIME and DATE since there is only field in that task. - If you have added both
<TIME>
and<DATE>
for a task 1:
For example: Previously the task 1 is:[TODO] Title: Project Meeting | 2020-09-10 : 11:00 - 12:00
When editing, can either input<TIME>
with same number of<DATE>
in current task 1 :
e.g.edit 1 t/01:00-02:00
or input<DATE>
with same number of<TIME>
in current task 1 :
e.g.edit 1 d/2020-11-12
or input both<TIME>
and<DATE>
with same number :
e.g.edit 1 d/2020-09-10 2020-09-11 t/11:00-12:00 13:00-14:00
- If you only have added one of the
Examples:
edit 2 l/NUSCOM2
Edit the location of task 2 to be NUSCOM2edit 2 c/todo
Edit the category of task 2 to be TODO
3.4. Listing tasks: list
3.4.1. List
Displays all the current tasks in the list.
Usage: list
- Note that other list sub-commands (see below) will default to just
list
when input is wrongly formatted
3.4.2. List by Category
List tasks that belong to a specific category.
Usage: list c/<CATEGORY>
- Wrong command:
list TODO
will have the same effects as justlist
- The
<CATEGOTY>
is case insensitive. That is,list c/TODO
andlist c/todo
have same effect.
Examples:
list c/TODO
list c/DEADLINE
3.4.3. List by Time
Lists tasks and classes by specific time range.
Usage: list t/<TIME>
task
andclass
with a specific time range can be listed bylist t/hh:mm-hh:mm
. List theevents
which are exactly at that time range or have a overlap at that time range.
Example:
list t/15:00-16:00
Lists thetasks
that fall within the given time frame
3.4.4. List by Date
List tasks by specific date.
Usage : list d/<DATE>
task
with a specific date can be listed bylist d/yyyy-mm-dd
. Ortasks
have date/dates in the specific dates can be listed bylist d/yyyy-mm-dd yyyy-mm-dd ...
(more dates).class
cannot be listed by date since class only adopts schedule.
Examples:
list d/2020-07-01
Lists thetasks
that fall on the date2020-07-01
list d/2020-07-01 d/2020-09-01
Lists thetasks
that fall on either2020-07-01
or2020-09-01
3.4.5. List by Date & Time
Lists tasks by specific date and time.
Usage : list d/<DATE> t/<TIME>
task
with a specific date and time range can be listed bylist d/yyyy-mm-dd t/hh:mm-hh:mm
class
cannot be listed by date and time since class only adopts schedule.- List the
tasks
which are exactly at that time range or have a overlap at that time range.
Example:
list d/2020-07-01 t/12:00-13:00
Lists thetasks
that fall on the given date (2020-07-01
) and within the given time frame (12:00-13:00
)
3.4.6. List by Category, Date & Time
List tasks by category and date and time.
Usage: list c/<CATEGORY> d/<DATE> t/<TIME>
tasks
in a specific date and specific time range in a specific category. However, theclass
category cannot be shown, since these don’t have date values.tasks
just in a specific date/dates in a specific category. However, theclass
category cannot be shown, since these don’t have date values.tasks
andclasses
just in a specific time range in a specific category. Allcategories
can be shown.
Examples:
list d/2020-07-01 t/12:00-13:00 c/meeting
Lists thetasks
whose start time before2020-07-01 13:00
and end time after2020-07-01 12:00
and category ismeeting
list d/2020-05-16 c/deadline
Lists thetasks
which have date on2020-05-16
and whosecategory
isdeadline
list t/23:00-23:30 c/deadline
Lists thetasks
whose start time before23:00
and end time after23:30
andcategory
isdeadline
3.5. Deleting tasks: delete
3.5.1. Delete a task/class
Deletes a task from the list
Usage: delete <TASK_INDEX>
- The index refers to the index number shown in the displayed task list.
- Use
list
to derive task index - Index has to be an integer
Example:
delete 2
Deletes the second task from the list.
3.5.2 - Delete by Time
Delete tasks and classes by specific time range.
Usage: delete t/<TIME>
task
andclass
with a specific time range can be deleted bydelete t/hh:mm-hh:mm
.- Delete the
tasks
andclasses
which are exactly at that time range or have a overlap at that time range.
Example:
delete t/15:00-16:00
Deletes thetasks
that fall within the given time frame15:00-16:00
3.5.3 - Delete by Date
Delete tasks by specific date.
Usage : delete d/<DATE>
task
with a specific date can be listed bydelete d/yyyy-mm-dd
.class
cannot be deleted by date since classes adopt to a schedule (Monday to Sunday)
Examples:
delete d/2020-07-01
Deletes thetasks
that fall on2020-07-01
delete d/2020-07-01 d/2020-09-01
Deletes thetasks
that fall on either2020-07-01
or2020-09-01
3.5.4 - Delete by Date & Time
Delete tasks by specific date and time.
Usage : delete d/<DATE> t/<TIME>
task
with a specific date and time can be listed bydelete d/yyyy-mm-dd t/hh:mm-hh:mm
.class
cannot be listed by date and time since class only adopts schedule.- Delete the
tasks
which are exactly at that time range or have a overlap at that time range.
Example:
delete d/2020-07-01 t/12:00-13:00
Deletes thetasks
that fall on the given date and within the given time frame.
3.6. Marking tasks as done: done
Marks a task as complete, changing the notification from ‘N
’ (not completed) to ‘Y
’ (completed).
Usage: done <TASK_INDEX>
- Obtain task index from
list
command. (without any filters) - task cannot be a from the category class. Class’s notification is always ‘
W
’ (Weekly). - Index is a valid positive number.
Example:
done 4
Marks the fourth task as completed.
3.7. Finding tasks: find
Searches all task titles, descriptions, and locations for supplied pattern
Usage: find <PATTERN>
- Keyword is case insensitive
- Can search the pattern in title, description and location.
Examples:
find project meeting
Lists the tasks with the given pattern (project meeting
) if found in their title, description, or location
3.8. Viewing calendar: calendar
Prints a monthly representation of a calendar. Shows the number of tasks a user has on a particular day. Users are able to specify which month to look up. Default is the current month.
Will still display tasks from past months as long as not marked as complete.
Usage: calendar <optional month>
- Month is in integer representation
- Where 1 is January and 12 is December
- Default set to current month
- If number supplied is not within the month range, it will be set to current month
3.9. Clearing output: clc
Clears the output window.
Usage:clc
3.10. Exiting program: bye
Exits the program.
Usage: bye
4. FAQ
- Q: How do I save my tasks?
A: Tasks are saved automatically and loaded upon start up of application- If unable to load, check the directory and file name:
- Default folder from application folder:
/Save/
- Default file name:
data.txt
- Default folder from application folder:
- If unable to load, check the directory and file name:
5. Command Summary
- Add:
add n/<NAME> t/<TIME> l/<LOCATION> d/<DATE> i/<INFORMATION> r/<REMINDER> c/<CATEGORY>
- Edit:
edit TASK_INDEX t/<TIME> l/<LOCATION> d/<DATE> i/<INFORMATION> r/<REMINDER> c/<CATEGORY>
- List:
list
list c/<CATEGORY>
list t/<TIME>
list d/<DATE>
list d/<DATE> t/<TIME>
list c/<CATEGORY> d/<DATE> t/<TIME>
- Delete:
delete <TASK_INDEX>
delete t/<TIME>
delete d/<DATE>
delete d/<DATE> t/<TIME>
- Done:
done <TASK_INDEX>
- Find:
find <PATTERN>
- Help:
help
- Calendar:
calendar
orcalendar <MONTH>
- Clear:
clc
- Exit:
bye