OutBook User Guide
About OutBook
OutBook is a desktop application designed for freelance insurance agents, enabling them to effectively organize and oversee their extensive contacts and meeting schedules. It is optimised for Command Line Interface (CLI) and aims to significantly reduce the time needed for organizational tasks.
This guide aims to help you explore its features and learn how to use them.
Key Features
To help you simplify and streamline the process of organizing your contacts and meeting schedule, our application provides these easy-to-use and efficient features:
- Client Information Management: Easily store, access and modify client details such as contact number, email and last contacted time. Add statuses, custom tags and remarks to organize your clients according to your preferences.
- Meeting Schedule and Information Management: Keep track of where and when your meetings are, and who you are meeting, to ensure you will be prepared for every appointment.
Managing clients and a busy schedule has never been easier. With OutBook, all you need is a keyboard and a few seconds to type out simple commands!
Table of Contents
- Quick Start
- Navigating OutBook
- Features
- Command Summary
- FAQ
- Known issues
Quick start
-
Ensure you have Java
11or above installed in your Computer. -
Download the latest
OutBook.jarhere. -
Copy the file to the folder you want to use as the home folder for OutBook.
- Open a command terminal, navigate to the home folder using
cd, and use thejava -jar OutBook.jarcommand to run the application.
A GUI similar to the below should appear in a few seconds. Note how the app comes pre-loaded with some sample data.
-
Type a 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:-
listc: Lists all contacts. -
addc n/John Doe p/98765432 e/johnd@example.com lc/10.10.2023 1000: Adds a contact namedJohn Doeto OutBook. -
deletec 3: Deletes the 3rd contact shown in the contact list. -
deletem 1: Deletes the 1st meeting shown in the meeting list. -
clear: Deletes all contacts and meetings. -
exit: Exits the app.
-
- You can refer to the Features section below for details of each command.
Click here to return to the Table of Contents
Navigating OutBook

| Name | Function |
|---|---|
| Command Box | Allows you to enter your commands here. |
| Status Box | Displays the results after a command is executed. |
| Contacts List | Displays your contacts along with a summary of their details. |
| Meetings List | Displays meetings that are scheduled along with a summary of their details. |
| Details List | Displays all the fields of a contact and/or meeting in full detail, complete with labels. Use viewc/viewm to specify the contact/meeting to display. |
Click here to return to the Table of Contents
Features
Notes about the command format:
-
Every word in uppercase represents a field you can supply.
e.g. inaddc n/NAME,NAMEis a parameter that can be substituted forJohn Doe, as inaddc n/John Doe. -
Fields contained in square brackets are optional.
e.g. when provided with the fieldsn/NAME [t/TAG], you can submitn/John Doe t/friendif you want to mark this contact as afriend, orn/John Doeotherwise. -
Fields with
… after them can be submitted any number of times, including zero.
e.g. when provided with the field[t/TAG]…, you can leave the field blank, or submitt/friend,t/friend t/family, etc. -
You can submit fields in any order.
e.g. if the command specifiesn/NAME p/PHONE_NUMBER, submitting in the formatp/PHONE_NUMBER n/NAME, such as inp/91472381 n/John Doe, is also acceptable. -
If you are using a PDF version of this document, be careful when copying and pasting commands that span multiple lines. This is to avoid deletion of space characters surrounding line-breaks when lengthy text is copied over to the application.
Contact Commands
Contact Parameters
| Parameter | Description | Examples |
|---|---|---|
NAME |
The name of the contact. It should only contain alphanumeric characters and spaces, and it should not be blank. |
• John Doe • Miguel-James Lee
|
PHONE |
The phone number of the contact. It must contain only numbers, and be at least 3 digits long. |
• 999 • 91243253
|
EMAIL |
The email address of the contact. It must adhere to the format [LOCAL-PART]@[SERVER].[DOMAIN]. |
• example@mail.com • john@hotmail.sg
|
LAST_CONTACTED_TIME |
The last date and time you had a meeting with the contact. It must contain both date and time in the format DD.MM.YYYY HHMM or left blank. |
• 29.10.2023 1000 • 05.01.2023 2200
|
STATUS |
The status of the contact with regards to the insurance sales process. It must be one of NIL, Prospective, Active, Inactive, Claimant, Renewal (case-insensitive) or blank. |
• active • Prospective
|
REMARK |
The remark you have about the contact, if any. | • has 4 cars • Loves coffee
|
TAG |
The tag you want to associate with the contact, if any. A contact can have more than 1 tag. It must be alphanumeric, i.e. special and non-alphanumeric characters (including spaces) are not allowed. |
• Friend • TermLife
|
CONTACT_INDEX |
The number shown beside each contact’s name in the displayed contacts list. It must be a positive integer and not more than the total number of contacts. |
• 1
|
Adding a contact: addc
Adds a contact to OutBook.
Format: addc n/NAME p/PHONE e/EMAIL [lc/LAST_CONTACTED_TIME] [s/STATUS] [r/REMARK] [t/TAG]…
- Duplicate contacts are not allowed. Contacts are duplicates if they have the same
NAME,PHONE, orEMAIL. -
NAME,PHONE, andEMAILare compulsory fields. -
LAST_CONTACTED_TIME,STATUS,REMARKandTAGare optional fields:- If
LAST_CONTACTED_TIMEis not specified, it will be defaulted to the minimum datetime provided by Java (i.e.LocalDateTime.MIN) and displayed asNAin the contacts list. - If
STATUSis not specified, it will be defaulted toNIL.
- If
- This command may change the contact that is currently displayed in the details list via the
viewccommand, as detailed here.
Examples:
addc n/John Doe p/98765432 e/johnd@example.comaddc n/Betsy Crowe t/friend e/betsycrowe@example.com p/1234567 lc/01.01.2023 0100 t/Professor
Listing all contacts: listc
Shows an unfiltered list of all contacts in OutBook in the contacts list. Contacts are sorted by their LAST_CONTACTED_TIME.
Format: listc
- This command may change the contact that is currently displayed in the details list via the
viewccommand, as detailed here.
Deleting a contact: deletec
Deletes a contact from OutBook.
Format: deletec CONTACT_INDEX
- Deletes the contact at the specified
CONTACT_INDEX. - This command clears the contact that is currently displayed in the details list via the
viewccommand.
Examples:
-
listcfollowed bydelete 2deletes the 2nd person in the unfiltered contacts list returned bylistc. -
findc Betsyfollowed bydelete 1deletes the 1st person in the filtered contacts list returned byfindc.
Editing a contact : editc
Edits an existing contact in OutBook.
Format: editc CONTACT_INDEX [n/NAME] [p/PHONE] [e/EMAIL] [lc/LAST_CONTACTED_TIME] [s/STATUS] [r/REMARK] [t/TAG]…
- Edits the contact at the specified
CONTACT_INDEX. - All fields are optional, but at least one must be provided.
- Existing values in each specified field will be updated to the corresponding input values.
- When editing tags, the existing tags of the contact will be removed i.e. adding of tags is not cumulative.
- You can remove all the contact’s tags by typing
t/without specifying any tags after it. - This command may change the contact that is currently displayed via the
viewccommand, as detailed here.
Examples:
-
editc 1 p/91234567 e/johndoe@example.comedits the phone number and email address of the 1st contact to be91234567andjohndoe@example.comrespectively. -
editc 2 n/Betsy Crower t/edits the name of the 2nd contact to beBetsy Crowerand clears all existing tags.
Viewing detailed contact information : viewc
Displays detailed information of a contact in the details list.
Format: viewc CONTACT_INDEX
- Displays the
NAME,PHONE,EMAIL,LAST_CONTACTED_TIME,STATUS,REMARKandTAGof the contact at the specifiedCONTACT_INDEX. - As this command displays the contact at the specified
CONTACT_INDEXin the contacts list, the contact displayed in the details list may change due to a modification in list order through the use ofaddc,editcorlistccommands. This is intentional. - The displayed contact is cleared from the details list when the
deletecandfindccommands are used.
Examples:
-
viewc 3displays detailed information related to the 3rd contact on the contacts list.
Finding contacts: findc
Finds contact(s) that match the keywords specified for at least 1 of these fields: NAME, PHONE, EMAIL, LAST_CONTACTED_TIME, STATUS, TAG. The contacts list will be filtered to show only the results of this command.
Format: findc [n/KEYWORDS] [p/KEYWORDS] [e/KEYWORDS] [lc/DATETIME] [s/KEYWORDS] [t/KEYWORDS]
- The search is case-insensitive, e.g
shopwill returnSHOP. - The order of the keywords does not matter, e.g.
Shop Meetwill returnMeet Shop. - For
NAME,STATUSandTAG, only full words will be matched, e.g.Johnwill returnJohn Leebut notJohnny. - For
EMAIL, any email addresses that contains the sequence of characters specified in the inputs will be given as a result, e.g._will returnm_e@gmail.com. - For
PHONE, any phone number that contains the sequence of digits specified in the inputs will be given as a result, e.g.913will return90091300but not90103000. - For
LAST_CONTACTED_TIME, the input must adhere to theDD.MM.YYYY HHMMformat, e.g. 9th October 2023, 10.30am will be written as09.10.2023 1030. - If only one field is provided, all contacts matching at least one keyword will be returned (i.e.
ORsearch). - If multiple fields are provided, only contacts matching at least one keyword in each field will be returned (i.e.
ANDsearch).- e.g.
n/John s/activewill returnName: John Lee, Status: Activebut notName: John Doe, Status: Claimant.
- e.g.
- This command clears the contact that is currently displayed in the details list via the
viewccommand.
Examples:
-
findc n/Alicereturns all contacts with a name that containsalice -
findc p/51returns all contacts with a phone number that contains51 -
findc e/_@GMAILreturns all contacts with an email address that containsalice_@gmail.com -
findc p/9 s/inactive claimant t/friendreturns contacts with a phone number that contains a9, a status of eitherinactiveorclaimant, and afriendtag
Meeting Commands
Notes about meetings:
-
Meetings in OutBook are sorted by their start time.
-
Meetings are allowed to overlap and multiple meetings can be occurring at the same time.
Meeting Parameters
| Parameter | Description | Examples |
|---|---|---|
TITLE |
The title of the meeting. It can take any values, but should not be blank. |
• 1st Meeting with Alex • Quick-chat
|
LOCATION |
The location of the meeting. It can take any values, but should not be blank. |
• Zoom • 21 Lower Kent Ridge Rd, S(119077)
|
START / END
|
The start/end times of the meeting. They must contain both date and time and adhere to the DD.MM.YYYY HHMM format. START must be equal or before END. |
• 29.10.2023 1000 • 05.01.2023 2200
|
TAG |
The tag you want to associate with the meeting, if any. A meeting can have more than 1 tag. It must be alphanumeric, i.e. special and non-alphanumeric characters (including spaces) are not allowed. |
• Casual • Remote
|
ATTENDEE_NAME |
The name of the contact added to the meeting as an attendee via the addmc command. |
- |
ATTENDEE_INDEX |
The number shown beside each attendee’s name in the detailed view of the meeting (as described here). It must be a positive integer and not more than the total number of attendees. |
• 2
|
MEETING_INDEX |
The number shown beside each meeting’s title in the displayed meetings list. It must be a positive integer and not more than the total number of meetings. |
• 1
|
Adding a meeting: addm
Adds a meeting to OutBook.
Format: addm m/TITLE a/LOCATION s/START e/END [t/TAG]…
-
TITLE,LOCATION,STARTandENDare compulsory fields.TAGis optional. - This command may change the meeting that is currently displayed in the details list via the
viewmcommand, as detailed here.
Examples:
addm m/Lunch a/Cafeteria s/20.09.2023 1200 e/20.09.2023 1300addm m/CS2103T meeting a/Zoom call url s/20.09.2023 1000 e/20.09.2023 1200
Listing all meetings : listm
Shows an unfiltered list of all meetings in OutBook in the meetings list. Meetings are sorted by their START time.
Format: listm
- This command may change the meeting that is currently displayed in the details list via the
viewmcommand, as detailed here.
Deleting a meeting : deletem
Deletes a meeting from OutBook.
Format: deletem MEETING_INDEX
- Deletes the meeting at the specified
MEETING_INDEX. - This command clears the meeting that is currently displayed in the details list via the
viewmcommand.
Examples:
-
listmfollowed bydeletem 2deletes the 2nd meeting in the unfiltered meetings list returned bylistm. -
findm m/Projectfollowed bydeletem 1deletes the 1st meeting in the filtered meetings list returned byfindm.
Editing a meeting : editm
Edits an existing meeting in OutBook.
Format: editm MEETING_INDEX [m/TITLE] [a/LOCATION] [s/START] [e/END] [t/TAG]…
- Edits the meeting at the specified
MEETING_INDEX. - All fields are optional, but at least one must be provided.
- Existing values in each specified field will be updated to the corresponding input values.
- When editing tags, the existing tags of the meeting will be removed, i.e. addition of tags is not cumulative.
- You can therefore remove all of a meeting’s tags by typing
t/without specifying any tags after it.
- You can therefore remove all of a meeting’s tags by typing
- This command may change the meeting that is currently displayed in the details list via the
viewmcommand, as detailed here.
Examples:
-
editm 1 a/Hawker Centre s/15.09.2023 1500edits the location and start of the 1st meeting to beHawker Centreand15.09.2023 1500respectively. -
editm 2 m/Zoom meeting t/edits the title of the 2nd meeting to beZoom meetingand clears all existing tags.
Viewing detailed meeting information : viewm
Displays detailed information of a meeting in the details list.
Format: viewm MEETING_INDEX
- Displays the
TITLE,LOCATION,START,END,TAGand attendees of the meeting at the specifiedINDEX. - As this command displays the contact at the specified
MEETING_INDEXin the meetings list, the meeting displayed in the details list may change due to a modification in list order through the use ofaddm,editmandlistmcommands. This is intentional. - The displayed meeting is cleared from the details list when the
deletemandfindmcommands are used.
Examples:
-
viewm 1displays detailed information of the 1st meeting on the meetings list, including current attendees.
Finding meetings: findm
Finds meetings with details matching the keywords you specified for at least 1 of these fields: TITLE, LOCATION, ATTENDEE_NAME, TAG; and falls within the START and END times given.
The meetings list will be filtered to show only the results of this command.
Format: findm [m/KEYWORDS] [a/KEYWORDS] [t/KEYWORDS] [n/ATTENDEE_NAME] [s/START e/END]
- The search is case-insensitive. e.g
shopwill returnSHOP. - The order of the keywords does not matter. e.g.
Shop Meetwill returnMeet Shop. -
TITLE,LOCATION,TAGandATTENDEE_NAMEare searched, within the time frame given bySTARTandEND. - Only full words will be matched e.g.
Meetwill returnMeet with Johnbut notMeeting. - If only one field is provided, all meetings matching at least one keyword will be returned (i.e.
ORsearch).- e.g.
m/Shop Meetwill returnMeeting: Shop at mall,Meeting: Meet client.
- e.g.
- If multiple fields are provided, only meetings matching at least one keyword in each field will be returned (i.e.
ANDsearch).- e.g.
m/Shop Meet a/Mallwill returnMeeting: Shop at mall, Location: Mallbut notMeeting: Meet client, Location: Park.
- e.g.
- This command clears the meeting that is currently displayed in the details list via the
viewmcommand.
Examples:
-
findm m/projectreturns all meetings with a title that containsproject. -
findm m/zoom meetingreturns all meetings with a title that contains at least one ofzoomormeeting. -
findm s/09.09.2023 0000 e/09.10.2023 0000returns all meetings between 09.09.2023 0000 and 09.10.2023 0000. -
findm m/Meeting s/18.10.2023 0000 e/18.10.2023 2359 n/JohnreturnsMeeting with friends, as it starts after 18.10.2023 0000 and ends before 18.10.2023 2359, and is attended by John.

Adding contact to meeting: addmc
Adds a contact to a meeting as an attendee.
Format: addmc MEETING_INDEX CONTACT_INDEX
- Adds the contact at the specified
CONTACT_INDEXto the meeting specified atMEETING_INDEX. - The specified contact’s name will be listed under “Attendees” in the detailed view of the specified meeting when
viewmis used.
Examples:
-
addmc 3 1adds the 1st contact in the contacts list to the 3rd meeting in the meetings list.
Removing contact from meeting: rmmc
Removes a contact from a meeting.
Format: rmmc MEETING_INDEX ATTENDEE_INDEX
- Removes a contact at the specified
ATTENDEE_INDEXto the meeting at the specifiedMEETING_INDEX.
Examples:
-
rmmc 3 2removes the 2nd attendee from the 3rd meeting.
Marking a meeting as complete : mark
Marks a meeting as complete.
Format: mark MEETING_INDEX
- Marks the meeting at the specified
MEETING_INDEXas complete. - All attendees of the meeting will have their
LAST_CONTACTED_TIMEfield updated to theENDtime of the meeting
Examples:
-
listmfollowed bymark 2marks the 2nd meeting in the unfiltered meetings list returned bylistm.
Miscellaneous Commands
Viewing help : help
Displays a message explaining how to access the help page.

Format: help
Clearing all entries : clear
Clears all entries from the contacts, meetings and details list in OutBook, effectively wiping all data from OutBook.
Format: clear
Exiting the program : exit
Closes and exits OutBook.
Format: exit
Saving the data
OutBook’s data is saved in the hard disk automatically after any command that modifies the data. There is no need to save manually.
Editing the data file
OutBook’s data is saved as a JSON file [JAR file location]/data/outbook.json. If you are an experienced user, you may attempt to update data directly by editing this data file.
Click here to return to the Table of Contents
Command summary
| Action | Format, Example |
|---|---|
| Add contact |
addc n/NAME p/PHONE e/EMAIL [lc/LAST_CONTACTED_TIME] [r/REMARK] [t/TAG]… e.g., addc n/James Ho p/22224444 e/jamesho@example.com lc/09.09.2023 0000 t/friend t/colleague
|
| Add contact to meeting |
addmc MEETING_INDEX CONTACT_INDEX e.g., addmc 2 1
|
| Add meeting |
addm m/TITLE a/LOCATION s/START e/END [t/TAG]… e.g., addm m/Lunch a/Cafeteria s/20.09.2023 1200 e/20.09.2023 1300
|
| Clear | clear |
| Delete contact |
deletec CONTACT_INDEX e.g., deletec 3
|
| Delete meeting |
deletem MEETING_INDEX e.g., deletem 3
|
| Edit contact |
editc CONTACT_INDEX [n/NAME] [p/PHONE] [e/EMAIL] [lc/LAST_CONTACTED_TIME] [r/REMARK] [t/TAG]…e.g., editc 2 n/James Lee e/jameslee@example.com
|
| Edit meeting |
editm MEETING_INDEX [m/TITLE] [a/LOCATION] [s/START] [e/END] [t/TAG]…e.g., editm 1 a/Hawker Centre s/15.09.2023 1500
|
| Find contact |
findc [n/KEYWORDS] [p/KEYWORDS] [e/KEYWORDS] [lc/LAST_CONTACTED_TIME] [s/KEYWORDS] [t/KEYWORDS] e.g., findc n/James Jake s/active claimant
|
| Find meeting |
findm [m/KEYWORDS] [a/KEYWORDS] [t/KEYWORDS] [n/ATTENDEE_NAME] [s/START e/END] e.g., findm m/Zoom Meet s/09.09.2023 0000 e/09.10.2023 0000
|
| Help | help |
| List contacts | listc |
| List meetings | listm |
| Mark meeting |
mark MEETING_INDEX e.g., mark 1
|
| Remove contact from meeting |
rmmc MEETING_INDEX ATTENDEE_INDEX e.g., rmmc 2 2
|
| View contact details |
viewc CONTACT_INDEX e.g., viewc 4
|
| View meeting details |
viewm MEETING_INDEX e.g., viewm 4
|
| Exit | exit |
Click here to return to the Table of Contents
FAQ
Q: How do I transfer my data to another computer?
A: Follow these steps:
- Install OutBook on the other computer following the same instructions as in the Quick Start Guide. An empty data file will be created in the same folder as the application.
- Replace this empty data file with the file that contains the data from your previous OutBook installation.
- Your transferred data should now be visible upon launching OutBook.
Click here to return to the Table of Contents
Known issues
-
When using multiple screens, if you move the application to a secondary screen, and later switch to using only the primary screen, the GUI will open off-screen. You can solve this by deleting the
preferences.jsonfile created by the application, before running the application again.
Click here to return to the Table of Contents