By: Team T10-1
- 1. Introduction
- 2. Quick Start
- 3. Features
- 3.1. Viewing help :
help
- 3.2. Adding:
add
- 3.3. Listing:
list
- 3.4. Editing:
edit
- 3.5. Searching for events:
find event
- 3.6. Deleting:
delete
- 3.7. Selecting event:
select event
- 3.8. Showing description:
show todo
- 3.9. Listing entered commands :
history
- 3.10. Undoing previous command :
undo
- 3.11. Redoing the previously undone command :
redo
- 3.12. Clearing all entries :
clear
- 3.13. Using the Calendar Display
- 3.14. Exiting the program :
exit
- 3.15. Saving the data
- 3.16. Encrypting data files
[coming in v2.0]
- 3.1. Viewing help :
- 4. FAQ
- 5. Command Summary
U-Schedule is for university students who prefer to use a desktop app for managing their schedule. More importantly, U-Schedule is optimized for those who prefer to work with a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). It features a calendar to manage regular events such as lectures and tutorials, as well as a todo list for upcoming deadlines. If you can type fast, you can manage both of these more efficiently with U-Schedule than traditional GUI apps. Interested? Jump to the Section 2, “Quick Start” to get started. Enjoy!
-
Ensure you have Java version
9
or later installed in your Computer. -
Download the latest
u-schedule.jar
here. -
Copy the file to the folder you want to use as the home folder for this application.
-
Double-click the file to start the app. The GUI should appear in a few seconds.
-
Type the command in the command box and press Enter to execute it.
e.g. typinghelp
and pressing Enter will open the help window. -
Some example commands you can try:
-
list event
: lists all calendar events -
list todo
: lists all todo items -
add event
t/CS2103 Lecture d/Abstraction, IntelliJ, Gradle s/16 nov 4pm e/16 nov 6pm v/i3 Auditorium tag/lecture
: adds a calendar event titledCS2103 Lecture
to the calendar. -
add todo
t/CS2103 Assignment d/Version Control p/H
: adds a todo item titledCS2103 Assignment
to the todo list. -
**
find event cs2103
: shows all events with title, description or venue matchingcs2103
-
delete event
3
: deletes the calendar event marked3
. -
delete todo
3
: deletes the todo item marked3
. -
show todo
3
: show the description of todo item marked3
. -
exit
: exits the app
-
-
Refer to Section 3, “Features” for details of each command.
Command Format
-
Words in
UPPER_CASE
are the parameters to be supplied by the user e.g. inadd event t/TITLE
,TITLE
is a parameter which can be used asadd event t/CS2103 Lecture
. -
Items in curly brackets denote the choices of words that can be used. e.g.
add {event/todo}
-
Items in square brackets are optional e.g
t/TITLE [tag/TAG]
can be used ast/CS2103 Lecture tag/lecture
or ast/CS2103 Lecture
. -
Items with
…
after them can be used multiple times including zero times e.g.[tag/TAG]…
can be used astag/lecture
,tag/cs2103
etc. -
Parameters can be in any order e.g. if the command specifies
t/TITLE d/DESCRIPTION
,d/DESCRIPTION t/TITLE
is also acceptable. -
The second word specifies whether the command will operate on the todo list or the calendar. For example
add event
adds an event to the calendar andadd todo
will add an item to the todo list. -
Priorities on the todo list are either
H
,M
orL
for high, medium or low respectively, in upper case.
Adds a calendar event to the calendar
Format: add event t/TITLE d/DESCRIPTION s/START_DATETIME e/END_DATETIME v/VENUE [tag/TAG]…
Adds an item to the todo list
Format: add todo t/TITLE d/DESCRIPTION p/{H/M/L}
-
Adds the specified item to the calendar or todo list
-
Since it is difficult to type a rigidly formatted date and time, a natural language date parser will try to parse the input for calendar events.
-
The start and end datetimes can be word descriptions, such as 'the day after tomorrow', or '1 week from now'.
-
If only a time is specified, the application will assume you mean today.
-
For todo items, the priority can be
H
,M
orL
for high, medium or low respectively, in upper case.
💡
|
A calendar event can have any number of tags. (including 0) |
Examples:
-
add event t/CS2103 Lecture d/Abstraction, IntelliJ, Gradle s/16 oct 2pm e/16 oct 4pm v/i3 Auditorium tag/lecture
-
add todo t/CS2103 Assignment d/Version Control p/L
Shows the list of all calendar events / todo items in the calendar / todo list.
Format: list {event/todo}
Edits an existing calendar event in the calendar.
Format: edit event INDEX [t/TITLE] [d/DESCRIPTION] [s/START_DATETIME] [e/END_DATETIME] [v/VENUE] [tags/TAG]…
-
Edits the calendar event / todo list item at the specified
INDEX
. The index refers to the index number shown in the displayed list. The index must be a positive integer 1, 2, 3, … -
At least one of the optional fields must be provided.
-
Existing values will be updated to the input values.
-
When editing tags, the existing tags of the calendar event will be removed i.e adding of tags is not cumulative.
-
You can remove all the calendar event’s tags by typing
tag/
without specifying any tags after it.
Examples:
-
edit event 1 d/Abstraction v/i3 Auditorium
Edits the description and venue of the calendar event to beAbstraction ` and `i3 Auditorium
respectively. -
edit event 2 t/CS2103 Project Meetup
Edits the name of the 2nd calendar event to beCS2103 Project Meetup
.
Finds calendar events whose title, venue or description match any of the given keywords.
Also optionally filters the search by the specified date & time interval as well as the specified tags.
Format: find event [KEYWORD MORE_KEYWORDS…] [from/DATE & TIME] [to/DATE & TIME] [tag/TAG] [tag/MORE_TAGS]…
-
Shows list of events that match the keywords and fulfil the filter rules.
-
The most relevant results are shown at the top.
-
At least one of the optional fields must be provided.
-
Fuzzy Keyword Search
-
The search is case insensitive for both keywords. e.g
lecture
will matchLecture
-
The order of the keywords does not matter. e.g.
CS2103 Lecture
will matchLecture CS2103
-
The fuzzy search allows for partial matches for keywords. e.g.
2103 lec
will matchCS2103 Lecture
.-
Slight differences and typos will also usually be matched. e.g.
s2130 Lecutre
will match 'CS2103 Lecture'
-
-
-
Filter by Date & Time
-
Shows events that occur in the interval from the
from
date & time, to theto
date & time.-
i.e. the event must be ongoing at some point in the time interval starting at the
from
date and ending at theto
date
-
-
You can choose to include only one of the 2 (
from
orto
) date & times -
Date & time are parsed using natural language parsing, thus they can be input in most human-readable formats, e.g.
16 nov 8am
-
Note: sometimes date & time inputs may be parsed in an unexpected manner - see Question 3 in the FAQ
-
-
-
Filter by Tags
-
In order for an event to be shown, it must have a tag that is exactly matching (although case-insensitive) with the input tag.
-
If multiple tags are input, the filter will only show the events with ALL the input tags.
-
Examples:
-
find event lecture
Returns list of events whose title, venue or description matches the keywordlecture
. -
find event cs2103 assignment tag/Project
Returns list of events matching the keywordscs2103
andassignment
, and having the tagProject
-
find event exam from/29 nov 8am to/7 dec 5pm
Returns list of events matching the keywordexam
, that is ongoing at some point between 8am on 29th November and 5pm on 7th December. -
find event project tag/CS2103 from/15 nov 10am ` Returns list of events matching the keyword `project
, having the tagCS2103
, that is ongoing at some point after 10am on 15th November. -
find event tag/cs2103 tag/lecture
Returns list of events having both the tags 'CS2103' and 'Lecture' (i.e. events with only theCS2103
tag but not theLecture
tag would be excluded).
Deletes the specified calendar event / todo item from the calendar / todo list.
Format: delete {event/todo} INDEX
-
Deletes the calendar event at the specified
INDEX
. -
The index refers to the index number shown in the displayed calendar event list / todo list.
-
The index must be a positive integer 1, 2, 3, …
Examples:
-
list event
delete event 2
Deletes the 2nd calendar event in the calendar. -
find event assignment
delete event 1
Deletes the 1st calendar event in the results of thefind event
command. -
list todo
delete todo 1
Deletes the 1st todo item in the todo list.
Selects the calendar event identified by the index number used in the displayed list.
Format: select event INDEX
-
Selects the calendar event at the specified index on the list, and jumps to the event in the calendar display..
-
The index refers to the index number shown in the displayed calendar event list.
-
The index must be a positive integer
1, 2, 3, …
Examples:
-
list event
select event 2
Selects the 2nd calendar event in the calendar. -
find event lecture
select event 1
Selects the 1st calendar event in the results of thefind event
command.
Shows description of the specified todo item from the todo list.
Format: show todo INDEX
-
Shows description of the todo item at the specified
INDEX
. -
The index refers to the index number shown in the displayed todo list.
-
The index must be a positive integer 1, 2, 3, …
Examples:
-
list todo
show todo 1
Shows description of the 1st todo item in the todo list.
Lists all the commands that you have entered in reverse chronological order.
Format: history
ℹ️
|
Pressing the ↑ and ↓ arrows will display the previous and next input respectively in the command box. |
Restores the calendar to the state before the previous undoable command was executed.
Format: undo
ℹ️
|
Undoable commands: those commands that modify the calendar’s /todo list’s content ( |
Examples:
-
delete event 1
list event
undo
(reverses thedelete event 1
command) -
select 1
list event
undo
Theundo
command fails as there are no undoable commands executed previously. -
delete event 1
clear
undo
(reverses theclear
command)
undo
(reverses thedelete event 1
command)
Reverses the most recent undo
command.
Format: redo
Examples:
-
delete event 1
undo
(reverses thedelete event 1
command)
redo
(reapplies thedelete event 1
command) -
delete event 1
redo
Theredo
command fails as there are noundo
commands executed previously. -
delete event 1
clear
undo
(reverses theclear
command)
undo
(reverses thedelete event 1
command)
redo
(reapplies thedelete event 1
command)
redo
(reapplies theclear
command)
Navigating the calendar to viewing the events:
-
←: Display previous week
-
→: Display next week
-
↑: Scroll up to events earlier in the day
-
↓: Scroll down to events later in the day
ℹ️
|
Scrolling with the mouse wheel is also possible. |
ℹ️
|
The calendar display must be in focus in order to navigate with the arrow keys. |
When selecting an event, either by the select
command or clicking in the list of calendar events,
the calendar display will navigate to that event and attempt to centralize it in the calendar.
Application data is saved in the hard disk automatically after any command that changes the data.
There is no need to save manually.
Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous U-Schedule folder.
Q: Why is the calendar display not responding to the arrow keys?
A: The calendar display must be in focus in order for it to receive the arrow key events. Try clicking on the calendar display. If a blue highlight is present around the edges, the calendar display is in focus and will now receive the key presses.
Q: The date time parser is parsing dates unexpectedly!
A: The Natural Language Parser we used tries its best to parse a datetime out of any input. Hence, there are some inputs which even humans would not consider a valid date, but the parser would still try to find a best fit. Most of the time, if a human can understand the input, the parser will parse the input correctly.
-
Add
add event t/TITLE d/DESCRIPTION s/START_DATETIME e/END_DATETIME v/VENUE [tag/TAG]…
e.g.add event t/CS2103 Lecture d/Abstraction, IntelliJ, Gradle s/2018-10-16 14:00 e/2018-10-16 16:00 v/i3 Auditorium tag/lecture
-
Add
add todo t/TITLE d/DESCRIPTION p/{H/M/L}
e.g.add todo t/CS2103 Assignment d/Version Control p/L
-
Clear :
clear calendar
-
Delete :
delete {event/todo} INDEX
e.g.delete event 3
-
Edit :
edit event INDEX [t/TITLE] [d/DESCRIPTION] [s/START_DATETIME] [e/END_DATETIME] [v/VENUE] [tag/TAG]…
e.g.edit event 1 d/Abstraction v/i3 Auditorium
-
Find :
find event [KEYWORD MORE_KEYWORDS…] [from/DATE & TIME] [to/DATE & TIME] [tag/TAG] [tag/MORE_TAGS]
e.g.find event CS2103 Lecture from/16 Nov 8am tag/PE
-
List :
list {event/todo}
-
Help :
help
-
Select :
select event INDEX
e.g.select event 2
-
Show Description :
show todo INDEX
e.g.show todo 2
-
History :
history
-
Undo :
undo
-
Redo :
redo
-
Calendar navigation : ↑ ↓ ← →