User Guide
Welcome to Lifebook User Guide! Choose a section from the table of contents below to
find answers, step-by-step guides and know about Lifebook better.
Are you a developer? Make sure to check our Developer Guide also! Go back to our Lifebook Developer Guide Page to find out more resources.
Lifebook is a desktop application intended for university students to manage contact details, assignments, projects, and module details. Lifebook supports Command Line Interface (CLI) for efficient contacts and tasks management while still having the benefits of a Graphical User Interface (GUI).
This user guide is targeted at university students who are interested in using Lifebook.
Table of Contents
- 1. Quick start
- 2. Features
- 3. FAQ
- 4. Command summary
1. Quick start
-
Ensure you have Java
11or above installed in your Computer. -
Download the latest
Lifebook.jarfrom here. -
Copy the file to the folder you want to use as the home folder for your Lifebook.
-
Double-click the file to start the app. You will see that the app initially contains some sample data.

-
Type the command in the command box and press Enter to execute it. e.g. typing
helpand pressing Enter will open the help window.
Some example commands you can try:-
list contact: Lists all contacts. -
add contactn/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01: Adds a contact namedJohn Doeto the contact list. -
add tododesc/homework date/12-12-2020 time/2359: Adds a todo with a descriptionhomeworkthat is due by12 December 2020, 2359. -
link meetingdesc/Annual meeting url/https://nus-sg.zoom.us/j/98401234359?pwd=eG9HU1FJRDdsVHRaYkFUTC95L0abcedf i/2 date/20/1/2020 time/2359: Add a zoom meeting titled ‘annual meeting’ at 2359, 20 Jan 2020 to the app. -
delete contact3: Deletes the 3rd contact shown in the current list. -
clear contact: Deletes all contacts. -
exit: Exits the app.
-
-
Refer to the Features below for details of each command.
2. Features
Notes about the command format:
-
Words in
UPPER_CASEare the parameters to be supplied by the user.
e.g. inadd n/NAME,NAMEis a parameter which can be used asadd n/John Doe. -
Items in square brackets are optional.
e.gn/NAME [t/TAG]can be used asn/John Doe t/friendor asn/John Doe. -
Items with
… after them can be used multiple times including zero times.
e.g.[t/TAG]…can be used as(i.e. 0 times),t/friend,t/friend t/familyetc. -
Parameters for contacts and task operations can be in any order.
e.g. if the command specifiesn/NAME p/PHONE_NUMBER,p/PHONE_NUMBER n/NAMEis also acceptable.
2.1 Contact
2.1.1 Adding a person: add contact
Adds a person to the contact list.
Format: add contact n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…
Examples:
add contact n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01add contact n/Betsy Crowe t/friend e/betsycrowe@example.com a/Newgate Prison p/1234567 t/criminal
2.1.2 Listing all persons : list contact
Shows a list of all persons in the contact list.
Format: list contact
2.1.3 Editing a person : edit contact
Edits an existing person in the contact list.
Format: edit contact i/INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]…
- Edits the person at the specified
INDEX. The index refers to the index number shown in the displayed person 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.
- Emails should be of the format
local-part@domainand adhere to the following constraints:- The local-part should only contain alphanumeric characters and these special characters:
`!#$%&'*+/=?`{|}~^.- - This is followed by a ‘@’ and then a domain name. The domain name must:
- be at least 2 characters long
- start and end with alphanumeric characters
- consist of alphanumeric characters, a period or a hyphen for the characters in between, if any.
- The local-part should only contain alphanumeric characters and these special characters:
- When editing tags, the existing tags of the person will be removed i.e adding of tags is not cumulative.
- You can remove all the person’s tags by typing
t/without specifying any tags after it.
Examples:
-
edit contact i/1 p/91234567 e/johndoe@example.comEdits the phone number and email address of the 1st person to be91234567andjohndoe@example.comrespectively. -
edit contact i/2 n/Betsy Crower t/Edits the name of the 2nd person to beBetsy Crowerand clears all existing tags.
2.1.4 Locating person by name or tag: find contact
Finds people whose names contain any of the given name keywords and tag matches the given tag keyword.
Format: find contact [n/NAME_KEYWORD [MORE_NAME_KEYWORDS]] [t/TAG_KEYWORD]
- At least one of name keyword or tag keyword is given in the command.
- The search is case-insensitive for both name and tag. e.g
friendswill matchFriends - The order of the name keywords does not matter. e.g.
Hans Bowill matchBo Hans - Only full words will be matched for both name and tag e.g.
Hanwill not matchHans - When only name keyword is given, persons matching at least one keyword will be returned (i.e.
ORsearch). e.g. name keywordHans Bowill returnHans Gruber,Bo Yang - When only tag keyword is given, persons whose one of the tag(s) matches the tag searched will be returned.
e.g. Hans with tag
friendsandcolleagueswill be returned when tagfriendsis searched. - When both name keyword and tag keyword are given, persons matching both keywords are returned.
e.g.
Hans Gruberwith tagfriendsandcolleagueswill be returned on commandfind contact n/Hans Bo t/friends.
Examples:
-
find contact n/JohnreturnsjohnandJohn Doe -
find contact n/alex davidreturnsAlex Yeoh,David Li find contact t/friends-
find contact n/John Doe t/colleagues
2.1.5 Deleting a person : delete contact
Deletes the specified person from the contact list.
Format: delete contact INDEX
- Deletes the person at the specified
INDEX. - The index refers to the index number shown in the displayed person list.
- The index must be a positive integer 1, 2, 3, …
Examples:
-
list contactfollowed bydelete contact 2deletes the 2nd person in the contact list. -
find contact Betsyfollowed bydelete contact 1deletes the 1st person in the results of thefindcommand.
2.1.6 Clearing all entries : clear contact
Clears all entries from the contact list.
Format: clear contact
2.2 Task
2.2.1 Due soon Tasks

At the bottom right hand corner of Lifebook, a list of tasks is shown that are due 1 week from the current date/time.
Warning:
For all task operations, input the task’s index based from the whole Tasklist, NOT from “Due soon”.
2.2.2 Removing Tasks : delete task
Removes a To Do or an Event from the TaskList of LifeBook.
Format: delete task INDEX
- Removes the To Do at the specified
INDEX. - The index refers to the index number shown in the displayed TodoList.
- The index must be a positive integer 1, 2, 3, …
Example:
-
list todofollowed bydelete task 3removes the 3rd To Do from the To Do list. -
list eventfollowed bydelete task 3removes the 3rd Event from the Event list.
2.2.3 Mark Task as complete: done
Marks a Task on the TaskList as complete.
Format: done INDEX
- Marks the Task at the specified
INDEXas done. - The index refers to the index number shown in the displayed TaskList.
- The index must be a positive integer 1, 2, 3, …
- If it is a recurring todo or event, it will proceed to add a new Todo or a new Event based on the new deadline given by the recurrence.
Example:
-
list todofollowed bydone 3marks the 3rd todo on the Todo List as complete. -
list eventfollowed bydone 3marks the 3rd Event on the Event list as complete.
2.2.4 Listing all tasks : list task
Shows a list of all events and to-dos in the Lifebook.
Format: list task
2.2.5 Filter deadlines : itemsDue
User can search todos/meetings due at/before a certain date/time.
Outputs a list of results.
-
Due at
itemsDueAt date/DD-MM-YYYY time/HHmmDD-MM-YYYY: States the Day, Month, Year.HHmm: States the time in 24 hours.Example:
itemsDueAt date/12-12-2020 time/2359It will output a list of todos/meetings that are due specifically at 12th December 2020, 2359. -
Due before
itemsDueBefore date/DD-MM-YYYY time/HHmmDD-MM-YYYY: States the Day, Month, Year.HHmm: States the time in 24 hours.Example:
itemsDueBefore date/12-12-2020 time/2359It will output a list of todos/meetings that are due specifically before 12th December 2020, 2359.
Note:
- It is designed to show your completed tasks as well.
2.2.6 Recurrence
A recurring task is created when a user includes the optional recurring/ field in adding a new todo/event.
When a recurring task is marked as done, it will automatically generate another recurring task with the new deadline based on the recurrence field. (while the remaining details of the task remains the same)
Example: add todo desc/CS2100 Tutorial date/04-11-2020 time/1100 recurring/1 week
When this task is marked as done, it will generate another todo with the deadline: Date: 11-11-2020, Time: 1100
If a task is recurring, it will be displayed in the GUI.

2.2.7 Add common tag to contact + task: contactTaskTag
Adds a common tag to a contact and task (Todo or Event) based on the given indexes of the contact and task.
The user can choose to add as many common tags as they want, where they simply just need to input the t/ prefix.
Format:
contactTaskTag t/TAG... contactIndex/INDEX taskIndex/INDEX

Example:
Upon executing the command, the contact at index 7- “James Ho” and task at index 1- “homework” will have both the tags “CS2100” and “buddy”, which helps in the ease of searching contacts that are associated with a task.
Warning:
It is a coincidence in the example that the index of the “homework” task is 1 for “Due soon” and the whole Tasklist. Input the task’s index based from the whole Tasklist instead.
Also, each tag should not have any spacings.
contactTaskTag t/CS2100 t/buddy contactIndex/7 taskIndex/1
2.3 Todo
2.3.1 Adding To Dos : add todo
Adds a To Do to the TodoList of LifeBook.
Format: add todo desc/DESCRIPTION date/DATE time/TIME [recurring/VALUE UNIT] [t/TAG]…
-
DESCRIPTIONmust be <= 30 characters -
DATEmust be specified in the format of DD-MM-YYYY -
TIMEmust be specified in the format of HHmm using 24 hour time -
VALUEmust be > 0 -
TAGmust be alphanumeric (no spaces) -
UNITmust be “day”, “week”, “month” or “year”
Examples:
add todo desc/cs2101 Oral Presentation reflection date/08-08-2020 time/2359add todo desc/user guide draft date/09-08-2020 time/2300 t/MUSTFINISHSOONadd todo desc/tutorial date/10-10-2020 time/1130 recurring/1 week
2.3.2 Editing a todo : edit todo
Edits an existing todo in the task list.
Format: edit todo i/INDEX [desc/DESCRIPTION] [date/DATE] [time/TIME]
- Edits the todo at the specified
INDEX. The index refers to the index number shown in the displayed task 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.
-
DATEmust be specified in the format of DD-MM-YYYY -
TIMEmust be specified in the format of HHmm using 24 hour time
Warning:
To change a normal Todo to a recurring one (or vice-versa), you would have to delete the task and add it with the updated fields, instead of using the edit command.
Examples:
-
edit todo i/1 desc/CS2101 Slides date/24-01-2020Edits the description and date of the 1st todo to beCS2101 Slidesand24-01-2020respectively. -
edit todo i/2 date/25-01-2020 time/2350Edits the date and time of the 2nd todo to be25-01-2020and2350respectively.
2.3.3 View all To Dos : list todo
Shows a list of all To Do’s in the TodoList.
Format: list todo
2.3.4 Adding a collaborative folder link: link doc
Note:
- Collaborative links can only be added to a todo.
- Only one collaborative link can be assigned to a todo.
Adds a collaborative link (Google Drive, GitHub, Trello, and others) for a todo.
Format:
-
link doc desc/DESCRIPTION url/LINK i/INDEX_OF_TODO -
LINKmust be specified in the format of URL.- Valid URL: https://www.google.com
- Invalid URL: www.google.com, google.com, google
Examples:
link doc desc/CS2103T Team Project url/https://drive.google.com/drive/folders/1zoUz1JpAgynIkfacr0asqV9A4kh i/2
2.3.5 Locating todos by description or tag: find todo
Finds todos whose description contain any of the given description keywords and tag matches the given tag keyword.
Format: find todo [desc/DESC_KEYWORD [MORE_DESC_KEYWORDS]] [t/TAG_KEYWORD]
- At least one of description keyword or tag keyword is given in the command.
- The search is case-insensitive for both description and tag. e.g
assignmentwill matchAssignment - The order of the description keywords does not matter. e.g.
Finish assignmentwill matchassignment Finish - Only full words will be matched for both description and tag e.g.
Quizwill not matchQuizzes - When only description keyword is given, todos matching at least one keyword will be returned (i.e.
ORsearch). e.g.Do assignmentwill returnDo chores,Finish assignment - When only tag keyword is given, todos whose one of the tag(s) matches the tag searched will be returned.
e.g. Finish assignment with tag
CS2100andGradedwill be returned when tagCS2100is searched. - When both description keyword and tag keyword are given, todos matching both keywords are returned.
e.g.
Finish assignmentwith tagCS2100andGradedwill be returned on commandfind todo desc/Do assignment t/CS2100.
Examples:
-
find todo assignmentreturnsEssay assignmentandQuiz assignment -
find todo Do assignmentreturnsDo chores,Finish assignment
find todo t/CS3243-
find todo n/Finish assignment t/CS2100
2.4 Event
2.4.1 Adding Events : add event
Adds an Event o to the EventList of LifeBook.
Format: add event desc/DESCRIPTION startdate/DATE starttime/TIME enddate/DATE endtime/TIME [recurring/VALUE UNIT] [t/TAG]..
-
DESCRIPTIONmust be <= 30 characters -
DATEmust be specified in the format of DD-MM-YYYY -
TIMEmust be specified in the format of HHmm using 24 hour time -
VALUEmust be > 0 -
UNITmust be “day”, “week”, “month” or “year” -
TAGmust be alphanumeric (no spaces)
Examples:
add event desc/Party with friends startdate/08-08-2020 starttime/2359 enddate/10-08-2020 endtime/2359 recurring/1 yearadd event desc/Singapore Fintech Festival startdate/09-08-2020 starttime/1000 enddate/12-08-2020 endtime/2359 t/important
2.4.2 Editing an event : edit event
Edits an existing event in the task list.
Format: edit event i/INDEX [desc/DESCRIPTION] [startdate/DATE] [starttime/TIME] [enddate/DATE] [endtime/TIME]
- Edits the event at the specified
INDEX. The index refers to the index number shown in the displayed task 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.
-
STARTDATEandENDDATEmust be specified in the format of DD-MM-YYYY -
STARTTIMEandENDTIMEmust be specified in the format of HHmm using 24 hour time
Warning:
To change a normal Event to a recurring one (or vice-versa), you would have to delete the task and add it with the updated fields, instead of using the edit command.
Examples:
-
edit event i/1 desc/CS2101 Lecture startdate/24-01-2020 endtime/2359Edits the description, start date, and end time of the 1st event to beCS2101 Lecture,24-01-2020, and2359respectively. -
edit event i/2 starttime/1400 enddate/30-01-2020Edits the start time and end date of the 2nd event to be1400and30-01-2020respectively.
2.4.3 View all Events : list event
Shows a list of all Events in the EventList.
Format: list event
2.4.4 Adding a zoom meeting: link meeting
Note:
- Meeting links can only be added to an event.
- Only one meeting link can be assigned to an event.
Adds a meeting link for an event.
Format:
-
link meeting desc/DESCRIPTION url/MEETING LINK i/INDEX_OF_EVENT date/DD-MM-YYYY time/HHmm -
DATEmust be specified in the format of DD-MM-YYYY -
TIMEmust be specified in the format of HHmm using 24 hour time -
MEETING LINKmust be specified in the format of URL.- Valid URL: https://www.google.com
- Invalid URL: www.google.com, google.com, google
Examples:
link meeting desc/Job interview url/https://nus-sg.zoom.us/j/98221234359?pwd=eG9HU1FJRDdsVHRaYk2UTC95L0abcedf i/2 date/22-09-2020 time/1400
2.4.5 Locating events by description or tag: find event
Finds events whose description contain any of the given description keywords and tag matches the given tag keyword.
Format: find event [desc/DESC_KEYWORD [MORE_DESC_KEYWORDS]] [t/TAG_KEYWORD]
- At least one of description keyword or tag keyword is given in the command.
- The search is case-insensitive for both description and tag. e.g
meetingwill matchMeeting - The order of the description keywords does not matter. e.g.
Attend meetingwill matchmeeting Attend - Only full words will be matched for both description and tag e.g.
Meetwill not matchMeeting - When only description keyword is given, events matching at least one keyword will be returned (i.e.
ORsearch). e.g.Attend meetingwill returnAttend workshop,Arrange meeting - When only tag keyword is given, events whose one of the tag(s) matches the tag searched will be returned.
e.g. Attend meeting with tag
CS2100andTeamProjectwill be returned when tagCS2100is searched. - When both description keyword and tag keyword are given, todos matching both keywords are returned.
e.g.
Attend meetingwith tagCS2100andTeamProjectwill be returned on commandfind event desc/meeting t/TeamProject.
Examples:
-
find event meetingreturnsCCA meetingandTeam meeting -
find event Attend meetingreturnsAttend workshop,Arrange meeting find event t/CS3243-
find event n/Attend meeting t/TeamProject
2.5 Others
2.5.1 Sorting contacts and tasks: sort
Sorts the currently displayed tasks or contacts according to date or name, respectively. Sorting may also be cleared, such that the natural order of both lists are restored. If the currently displayed list is empty, a sorted, unfiltered list will be displayed instead.
Format: sort OPTION
- The
OPTIONfield refers tocontact,task, orclear
- Contact, task, and clear are the available options for sort and should be used individually in the
OPTIONfield. - Using the clear option restores all lists (i.e. both contact list and task list) to their natural order.
Examples:
-
sort tasksorts the task list. -
sort contactsorts the contact list.
2.5.2 Exiting the program : exit
Exits the program.
Format: exit
2.5.3 Viewing help : help
Shows a message explaining how to access the help page.

Format: help
3. FAQ
Q: How do I save any update I made on the Lifebook?
A: Lifebook will automatically save any update you make upon closing the app, and the data is saved in the hard disk. There is no need to save manually.
Q: How do I transfer my data to another Computer?
A: Simply copy over the whole directory of Lifebook to the other computer and overwrite the files.
4. Command summary
4.1 General
| Action | Format, Examples |
|---|---|
| Sort |
sort OPTION OPTION refers to contact, task, or clear
|
| Help | help |
| Add common tag to Contact + Task |
contactTaskTag t/TAG... contactIndex/INDEX taskIndex/INDEX e.g., contactTaskTag t/CS2103T t/ProjMate contactIndex/1 taskIndex/1
|
4.2 Contact Operations
| Action | Format, Examples |
|---|---|
| Add Contact |
add contact n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]… e.g., add contact n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 t/friend t/colleague
|
| Clear Contacts | clear contact |
| Delete Contact |
delete contact INDEXe.g., delete contact 3
|
| Edit Contact |
edit contact i/INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]e.g., edit contact i/2 n/James Lee e/jameslee@example.com
|
| Find Contact |
find contact [n/NAME_KEYWORD [MORE_NAME_KEYWORDS]] [t/TAG_KEYWORD]e.g., find contact n/James Jake t/colleagues
|
| List Contacts | list contact |
4.3 Task Operations
| Action | Format, Examples |
|---|---|
| List Tasks | list task |
| Remove Task (Todo and Event) |
delete task INDEX e.g., delete task 3
|
| Mark To Do/Event as Complete |
done INDEX e.g., done 5
|
| Find tasks due at |
itemsDueAt date/DD-MM-YYYY time/HHmm e.g. itemsDueAt date/12-12-2020 time/2359
|
| Find tasks due before |
itemsDueBefore date/DD-MM-YYYY time/HHmm e.g. itemsDueBefore date/12-12-2020 time/2359
|
4.3.1 Todo-specific Operations
| Action | Format, Examples |
|---|---|
| List To Dos | list todo |
| Add To Do |
add todo desc/DESCRIPTION date/DATE time/TIME [recurring/VALUE UNIT] [t/TAG]… e.g., add todo desc/update user guide date/09-08-2020 time/2300 recurring/1 week t/MUSTFINISHSOON
|
| Find To Do |
find todo [desc/DESC_KEYWORD [MORE_DESC_KEYWORDS]] [t/TAG_KEYWORD]e.g., find todo desc/Finish assignment t/CS2100
|
| Link doc |
link doc desc/DESCRIPTION url/LINK i/INDEX_OF_TODO e.g., link doc desc/CS2103T Team Project url/https://drive.google.com/drive/folders/1zoIkfacr0asqV9A4kh i/2
|
4.3.2 Event-specific Operations
| Action | Format, Examples |
|---|---|
| List Events | list event |
| Add Event |
add event desc/DESCRIPTION startdate/DATE starttime/TIME enddate/DATE endtime/TIME [recurring/VALUE UNIT] [t/TAG] e.g., add event desc/meeting startdate/12-12-2020 starttime/1000 enddate/12-12-2020 endtime/1130 recurring/1 week t/IMPORTANT
|
| Find Event |
find event [desc/DESC_KEYWORD [MORE_DESC_KEYWORDS]] [t/TAG_KEYWORD]e.g., find event desc/Attend meeting t/CS2103T
|
| Link meeting |
link meeting desc/DESCRIPTION url/LINK i/INDEX_OF_EVENT date/DATE time/TIME e.g., link meeting desc/Job interview url/https://nus-sg.zoom.us/j/98221234359?pwd=eG9HU1FJRDdsVHRaYk2UTC95L0abcedf i/2 date/22-09-2020 time/1400
|