Thank you for downloading EventBook as your project management software of choice!
Choose a topic from the table of contents below / or in the sidebar to find answers, or step-by-step guides on how to use EventBook.
EventBook is a desktop application for Student Leaders to manage the contacts from different events, optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, EventBook can get your contact management tasks done faster than traditional GUI apps.
This user guide provides in-depth summaries of all the commands available to you. To make it easier to find the information you need, you can either:
Before we can begin to use EventBook, we advise you to follow the simple steps below to ensure that EventBook is set up correctly.
Ensure you have Java 11 or above installed in your Computer.
Download the latest EventBook.jar from here.
Copy the file to the folder you want to use as the home folder for your EventBook.
Open a command terminal (Terminal for MacOS, Windows Terminal for Windows OS)
ServicesNew Terminal at FolderWindows Explorer, navigate to your home folderOpen in Windows TerminalUse the java -jar EventBook.jar command to run the application.
A GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.

Type a command in the command box and press Enter to execute it. e.g. typing help and pressing Enter will open
the help window.
Some example commands you can try:
list : Lists all contacts.add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 : Adds a contact named John Doe to the EventBook.assign 1 t/E-event1 : Assigns the 1st contact shown in the current list with the event tag named event1.assign John t/tag1 : Assigns the contact named John in the current list with the tag named tag1.clear : Deletes all contacts.ctag Friend : Creates a tag name Friend.ctag t/E-orientation dc/Orientation! sd/2024-04-04 02:02:02 ed/2024-04-05 02:02:02 : Creates an event tag.dtag Friend : Deletes a tag named Friend.delete 3 : Deletes the 3rd contact shown in the current list.devent orientation : Deletes an event tag called orientation.delete John Doe : Deletes the contact named John Doe shown in the current list.exit : Exits the app.import : Imports contacts from .\import\import.csv.search Friend : Displays all contacts with the tag Friend.switch Flag : Switches to Flag event tab to show contacts.Refer to the Features below for details of each command or to Command Summary for a quick summary.
EventBook's GUI consists of 5 main components:
The following details are displayed for each contact in EventBook:
This detailed overview enables users to quickly access essential contact information of their event members.
[Note]
The default tab on entering the app is theAlltab, with all contacts in EventBook displayed in the Result Panel.
Ready to dive in? Let's try out a few commands to get you started with EventBook:
add n/Xavier Tan p/98765432 e/xavt@example.com a/Ang Mo Kio street 2, Block 123, #01-01
VPD of the Flag event. Enter the following command in the
command box:assign Xavier Tan t/VPD t/E-Flag
VPD tag and a purple Flag event tag.switch Flag
All tab to the Flag tab, and all listed contacts
have the Flag event tag. All tab, with all contacts in EventBook displayed in the Result Panel.
All tab to view all your contacts, enter the following command:list
Now that you are all warmed up, let's delve deeper into the details of each command and how you can use them to supercharge your event management in the next section!
Things to take note of before about the format of commands:
Words in UPPER_CASE are the parameters to be supplied by the user.
e.g. in add n/NAME, NAME is a parameter which can be used as add n/John Doe.
Items in square brackets are optional.
e.g. n/NAME [t/TAG] can be used as n/John Doe t/friend or as n/John Doe.
Items in round brackets specify two possible parameter types
e.g. (NAME or INDEX) means that either NAME or INDEX should fill that parameter
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 (i.e. 1 time), t/friend t/family (i.e. multiple
times) etc.
Parameters can be in any order.
e.g. if the command specifies n/NAME p/PHONE_NUMBER, p/PHONE_NUMBER n/NAME is also acceptable.
Extraneous parameters for commands that do not take in parameters (such as help, list, exit and clear) will be
ignored.
e.g. if the command specifies help 123, it will be interpreted as help.
[Note]
If you are using a PDF version of this document, be careful when copying and pasting commands that span multiple lines as space characters surrounding line-breaks may be omitted when copied over to the application.
EventBook is divided into 3 categories - managing contacts, managing events with tags and general functions, which are all listed below.
addThis command allows you to add a person to the EventBook.
Format: add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…
[❗WARNING❗] Names must consist solely of alphabetic characters; any inclusion of numbers or symbols is not permitted. This is to ensure that
delete 2does not create an ambiguity on whether to delete the person with the name2or the person at index2.
[💡TIP💡]
A person can have any number of tags (including 0)
Examples:
add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01add n/Betsy Crowe t/friend e/betsycrowe@example.com a/Newgate Prison p/1234567 t/criminaleditThis command allows you to edit an existing person in the EventBook.
Format: edit (NAME or INDEX) [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]…
INDEX or NAME.edit John Doe t/friends instead of edit John t/friends.t/ without
specifying any tags after it.Examples:
edit 1 p/91234567 e/johndoe@example.com Edits the phone number and email address of the 1st person to be 91234567 and johndoe@example.com respectively.edit Ben n/Betsy Crower t/ Edits the person named Ben to be Betsy Crower and clears all existing tags.edit 2 n/Betsy Crower t/ Edits the name of the 2nd person to be Betsy Crower and clears all existing tags.findThis command allows you to find all contacts whose names contain any of the given keywords.
Format: find KEYWORD [MORE_KEYWORDS]
hans will match HansHans Bo will match Bo HansHan will not match HansOR search).
e.g. Hans Bo will return Hans Gruber, Bo YangExamples:
deleteThis command allows you to delete the specified person from the EventBook.
Format: delete (NAME or INDEX)
INDEX or NAME.delete John Doe instead of delete John.Examples:
list followed by delete 2 deletes the 2nd person in the EventBook.list followed by delete John Doe deletes the person named 'John Doe' in the EventBook.importThis command allows you to imports all contacts from given file path (default ./import/import.csv)
Format: import f/PATH
Requires a valid file to be given in the PATH parameter
If PATH is left empty (i.e. import f/) the default file referenced is ./import/import.csv
A sample is provided below. Note the fields in the first row and the data in subsequent rows.

Fields:
NAME,NUMBER,EMAIL,ADDRESS,EVENTS,TAGS as above (.csv is comma delimited, so that means
each field should be in their own cell)Name pr NaME would also be valid)Parameters:
The EVENTS parameter must satisfy one of the following format requirements:
N/A if the contact is not in any events, else a field error will occurt/E-eventName dc/Description sd/yyyy-MM-dd HH:mm:ss ed/yyyy-MM-dd HH:mm:ss for the first instance of each
unique event, unless said tag already exists in the EventBook, in which case iii. can be usedt/E-eventName for existing events or previously declared events
t/E-orientation dc/Orientation! sd/2024-04-04 02:02:02 ed/2024-04-05 02:02:02,
then further contacts may simply have t/E-orientation under the EVENTS fieldsThe TAGS and EVENTS portion accept multiple arguments delimited by the | character (e.g. Friend|Colleague). A
consequence of this is that tags containing | in their name cannot be imported
Ensure that the file provided is saved before used as an import file
The default download contains a sample .csv file that one can refer to
Examples:
import f/./import/import.csv imports the contacts from the specified fileimport f/ is identical to running the above commandexportThis command allows you to export all contacts to ./export/export.csv
Format: export
import[❗WARNING❗] There should be an empty folder named
exportinside the folder withEventBook.jarto ensure that export function works.
ctagThis command allows you to create a tag or an event tag in the EventBook. You are able to manage or search for people with the specified tags after creation.
The ctag function allows you to create tags and events tags separately based on different input formats listed below.
Format 1: ctag TAG_NAME
This format allows you to create tags that you can tag your contacts with!
tag name that does not already exist in the EventBook.0-9,a-z,A-Z.Friends is allowed but Good Friends is forbidden)Example: ctag Friend creates a tag named Friend.
[❗WARNING❗]
- All input fields are necessary.
- If you miss out any of the mandatory fields, or has input the wrong format, your input will get rejected or you will get an incorrect result.
- Make sure your TAG_NAME is alphanumerical(
0-9,a-z,A-Z) with no whitespaces in between them.
[💡TIP💡]
- If you want to create a tag with 2 words, consider grouping them together into a single word. For example: " SchoolFriends"
Format 2: ctag t/E-EVENT_NAME dc/Description sd/yyyy-MM-dd HH:mm:ss ed/yyyy-MM-dd HH:mm:ss
This format allows you to create event tags that you can tag your contacts with! How cool!
EVENT_NAME name that does not already exist in the EventBook.0-9,a-z,A-Z. For instance, ctag t/E-E-event1 sd/2024-04-04 02:02:02 ed/2024-04-05 02:02:02 is not allowed.Meeting is allowed but Friends Meeting is forbidden)Examples:
ctag t/E-orientation dc/Orientation! sd/2024-04-04 02:02:02 ed/2024-04-05 02:02:02[💡TIP💡]
- If you want to create an event with 2 words, consider grouping them together into a single word. For example: " SchoolEvent"
[❗WARNING❗]
- All input fields are necessary.
- If you miss out any of the mandatory fields, or has input the wrong format, your input will get rejected, or you will get an incorrect result.
- Make sure your EVENT_NAME is alphanumerical(
0-9,a-z,A-Z) with no whitespaces in between them.
dtagThis command allows you to delete an existing tag in the EventBook. This is done to allow you to free up memory space by deleting tags that you will no longer use, how thoughtful of us 😃. Take note that this command also deletes the tag from all the contacts in your list.
Format: dtag TAG_NAME
TAG_NAME name that already exists in the EventBook.0-9,a-z,A-Z.Examples:
dtag Friend Deletes a tag named Friend.[💡TIP💡]
- You can check who is associated with the tag you are deleting by using the Search command.
[NOTE]
If you delete a tag that does not exist, you will get notified by a warning that it does not exist. You will get a success message when you delete an existing tag too.
[❗WARNING❗] All input fields are necessary. This tag will be removed from every contact tagged with it. This action is also not reversible. Make sure your
TAG_NAMEis alphanumerical(0-9,a-z,A-Z) with no whitespaces in between them.
deventThis command allows you to delete an event tag in the EventBook. Convenient to do so when an event is over, right? Take note that this command also deletes the event tag from all the contacts that are associated with it.
Format: devent EVENT_TAG
EVENT_TAG name that already exists in the EventBook.0-9,a-z,A-Z.Examples:
devent orientation Deletes an EventTag named orientation.[💡TIP💡] You can do a quick check of who is in the event by using the Switch, do take note that the event panel at the left of the GUI is not clickable.
[❗WARNING❗] Make sure your
EVENT_NAMEis alphanumerical(0-9,a-z,A-Z) with no whitespaces in between them.
[NOTE]
If you delete an event tag that does not exist, you will get notified by a warning that says it does not exist. You will get a success message after deleting an existing tag. The event GUI on the left of the screen will update when you delete an existing event. This event tag will be removed from every contact tagged with it. This action is also not reversible.
assignThis command allows you to assign someone to a tag and group them conveniently! For example, you can assign a person with a tag named Logistics or assign a person with an event tag named Rag.
Format: assign (NAME or INDEX) t/TAG… or assign (NAME or INDEX) t/E-EVENT_TAG…
INDEX or NAME with the tag TAG or with the event tag EVENT_TAG.Examples:
assign 1 t/Logistics Assigns the first person in the list to a tag named Logistics.assign John Doe t/E-event1 Assigns the person named John Doe in the list to an Event Tag named event1.[💡TIP💡]
If you do not have the tag or event tag you are assigning a person with, you can create them with the ctag command.
[❗WARNING❗]
The name refers to the name shown in the displayed person list. The name must be exactly what is shown in the displayed person list. For example,assign John Doe t/friendsinstead ofassign John t/friends.
searchThis command allows you to displays all the people that are tagged with TAG_NAME. We know that to search for a list people who are tagged as Friend,
you are tempted to do search Friends, plural. However, this is not supported 😦.
Format: search TAG_NAME
Examples:
search Friend Displays all people tagged as Friend.[💡TIP💡]
After searching, you can reset the app to display all the contacts with the list command.
switchThis command allows you to switch to the event with the EVENT_TAG_NAME.
Format: switch EVENT_TAG_NAME
All tab with full list of contacts displayed.Examples:
switch Flag Switches to Flag event tab and shows all members tagged with Flag event tag.[💡TIP💡] After searching, you can reset the app to display all the contacts with the list command.
helpTo access the EventBook User Guide within the application, simply enter help into the command box and a link to the User Guide will be provided.
Format: help
listThis command shows a list of all contacts in the EventBook.
Format: list
clearThis command clears all the contacts from the EventBook.
Format: clear
exitThis command exits the program.
Format: exit
EventBook data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
EventBook data are saved automatically as a JSON file [JAR file location]/data/addressbook.json. Advanced users are
welcome to update data directly by editing that data file.
[❗WARNING❗]
If your changes to the data file makes its format invalid, EventBook will discard all data and start with an empty data file at the next run. Hence, it is recommended to take a backup of the file before editing it.
Furthermore, certain edits can cause the EventBook to behave in unexpected ways (e.g., if a value entered is outside the acceptable range). Therefore, edit the data file only if you are confident that you can update it correctly.
This section would guide you through some basic commands of EventBook, and how to use them to set up your first event with contacts and tags.
To start, if you want to remove the sample contacts in the EventBook, you can use the clear command to clear
everything!
Simply type clear in the text box at the top of the app! (Do take note that throughout this tutorial, we will not
clear the
sample contacts for the convenience doing demo.)
ctagTo tag a person as a friend or any tag you want, you need to first create the tag.
To start, create a tag called dummytag. Do take not tags are alphanumerical, so you cannot do pen-pal unfortunately.
assign to tag peopleTo tag the person to the tag, we can use the assign command.
logistics by typing assign Alex Yeoh t/logistics.
switch to change to the event that you wantOk, I want to check who is in an event or the event details, how can I do it?
No worries pal, we got you covered. To figure out who is in any event, use the switch command.
search to find the people with the tagYou may want to say, what if I don't remember who are part of the logistics team? No worries, you can use the search command to find out!
Flag with search logistics.
list in the input box to reset everything!dtagOh no, what if I want to delete a tag that I no longer use? No worries, you can use the dtag command!
This command removes the tag you delete for all your contacts so be careful!
ctagOk, what if you have an event that you need to group people to, like a Orientation for 9 Feb 2024 8pm? No worries, you can assign people to events
and manage them as well. But first, you should create an event first with ctag.
ctag t/E-Orientation dc/SoC Orientation 2024 sd/2024-02-09 20:00:00 ed/2024-02-09 20:00:00.
assignNow you want to assign a person to the Rag. You can do it with the
assign command.
| Action | Format, Examples |
|---|---|
| Add | add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]… e.g., add n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 t/friend t/colleague |
| Assign | assign (NAME or INDEX) [t/TAG]… or assign (NAME or INDEX) [t/E-TAG]… e.g., assign 2 t/tag1 or assign John Doe t/E-event1 |
| Clear | clear |
| Delete | delete (NAME or INDEX) e.g., delete 3 or delete John Doe |
| Edit | edit (NAME or INDEX) [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]… e.g., edit 2 n/James Lee e/jameslee@example.com oredit John Doe n/James Lee e/jameslee@example.com |
| Find | find KEYWORD [MORE_KEYWORDS]e.g., find James Jake |
| List | list |
| Help | help |
| Create Tag | ctag TAG_NAME e.g., ctag Friend |
| Create EventTag | ctag t/E-eventName dc/Description sd/yyyy-MM-dd HH:mm:ss ed/yyyy-MM-dd HH:mm:ss e.g., ctag t/E-orientation dc/Orientation! sd/2024-04-04 02:02:02 ed/2024-04-05 02:02:02 |
| Delete Tag | dtag TAG_NAME e.g., dtag Friend |
| Delete Event | devent EVENT_TAG_NAME e.g., devent orientation |
| Import | import f/PATH e.g., import f/./import/import.csv |
| Export | export |
| Search Tag | search TAG_NAME e.g., search Friend |
| Switch | switch EVENT_TAG_NAME e.g. switch Flag |
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 EventBook home folder.
preferences.json file created by the application before running the application again.