This image was generated by Midjourney
LegacyLink is your all-in-one family contact and event management solution, combining the speed of keyboard (CLI, standing for Command Line Interface) commands with the convenience of a modern interface.
Perfect for managing both small, close-knit families and large extended family networks!
| Feature Category | What You Can Do |
|---|---|
| 👥 Contact Management | • Store family contact details • Organize by relationships • Quick search and updates |
| 📅 Event Planning | • Schedule family gatherings • Track event attendance • Manage event details |
| ⚡ Smart Interface | • Fast keyboard commands • Visual contact lists • Automatic saving |
Win + R, type cmd, and press Enter
* Mac: Open Terminal from Applications
java -version and press Enterlegacylink.jar and click on it to download.Get your folder path:
jar file.Open your command prompt/terminal (see instructions above).
Navigate to your LegacyLink folder:
cd followed by a spacecd C:\Users\YourName\LegacyLink)cd /Users/YourName/LegacyLink)cd (with a space) to automatically fill in the path!Run LegacyLink by typing: java -jar legacylink.jar
Pressing enter will open up the LegacyLink window as shown below!
We've prepopulated LegacyLink with some dummy data for you to play around and get a feel of how LegacyLink works! Here are some simple commands to get you started:
📋 Essential Commands:
----------------------------------------
list -p → Show all your contacts
list -e → Display all events
help → View all available commands
Ready to explore more features? Continue reading our features overview below in the what can you do with LegacyLink section or navigate to the deepdive section, where we break down each command in detail!
Our primary features include the following:
| Feature | Description | Command |
|---|---|---|
| Add Contacts | Create new family contact entries | add -n NAME -p PHONE -e EMAIL -rs RELATIONSHIP |
| View Contacts | See your full contact list | list -p |
| Search | Find specific family members | find KEYWORD |
| Feature | Description | Command |
|---|---|---|
| Schedule Events | Create family gatherings | event -n NAME -sd DATE -ed DATE -l LOCATION |
| Add Attendees | Include family members in events | event ... -a ATTENDEES |
| View Events | See all scheduled events | list -e |
Keep your information current with these features:
Contact Updates
Event Changes
Manage your data efficiently:
Contact Management
Event Cleanup
Refer to the feature list below for detailed information of each command that is available in LegacyLink.
Using This Guide:
- Commands are case-sensitive (
helpworks,Helpdoesn't)- Words in
UPPER_CASEare values you provide- Parameters can be in any order
- For example, if the command specifies
-n NAME -p PHONE_NUMBER,-p PHONE_NUMBER -n NAMEis also acceptable.- Extraneous parameters for commands that do not take in parameters (such as
helpandexit) will be ignored.- 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.
Format:
help
Format:
exit
⚠️ Warning: No confirmation message is displayed.
LegacyLink data are saved automatically as a JSON file [JAR file location]/data/addressbook.json and [JAR file location]/data/eventbook.json. Advanced users are welcome to update data directly by editing that data file.
Caution:
If your changes to the data file makes its format invalid, LegacyLink 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 LegacyLink 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.
list -p
Tip: Preceding, trailing and intermediate whitespaces will still result in a successful command.
Format:
add -n NAME -p PHONE_NUMBER -e EMAIL -rs RELATIONSHIP
NAME, PHONE_NUMBER, EMAIL, RELATIONSHIP must be present.d/o or s/o in name, please omit the / and enter so and do instead.Rules to Remember:
| Field | Requirements |
|---|---|
| Name | • Letters, numbers, and spaces only • Cannot be blank |
| Phone | • Minimally 3 digits |
| • Must be valid email format (example@domain.com) | |
| Relationship | • Letters only • Cannot be blank • Note: Please enter a meaningful relationship that best describes the connection (e.g., "Friend," "Colleague," "Sibling"). |
Note: Names which are very long may not be fully displayed in the detailed person view, as displaying it would
compromise the aesthetic of the User Interface and overall user experience.
The person can still be identified through
other information such as their phone number, email, and relationship. Additionally, relationship tags are case-sensitive.
Valid Example:
add -n Betsy Crowe -rs Mother -e betsycrowe@example.com -p 98262123

Invalid Example (Invalid Phone Number):
add -n Betsy Crowe -rs Mother -e betsycrowe@example.com -p 12

Invalid Example (Duplicate Persons):
add -n Betsy Crowe -rs Mother -e betsycrowe@example.com -p 98262123 already exists.add -n Betsy Crowe -rs Mother -e betsycrowe@example.com -p 98262123 will result in a duplicate entry and the person will not be added.
Format:
edit INDEX [-n NAME] [-p PHONE] [-e EMAIL] [-rs RELATIONSHIP]
Tips:
INDEX. The index refers to the index number shown in the displayed person list. The index must be a positive integer 1, 2, 3, …edit 1 -n Carmen -n Betsy is an invalid command.d/o or s/o in name, please omit the / and enter so and do instead.Valid Example (One field edited):
edit 2 -n Betsy Crower Edits the name of the 2nd person to be Betsy Crower.
Valid Example (Multiple fields edited):
edit 1 -p 91234567 -e johndoe@example.com -rs Father Edits the phone number, email and relationship of the 1st person to be 91234567, johndoe@example.com and Father respectively.

Invalid Example:
edit 1
Invalid Example (Multiple parameters):
edit 1 -n Carmen -n Betsy -p 12345678 -p 87654321 -e example@email.com -e example@gmail.com -rs Brother -rs Mother
Invalid Example (Duplicate Persons):
add -n Betsy Crowe -rs Mother -e betsycrowe@example.com -p 98262123 exists as the first contact.edit 2 -n Betsy Crowe -rs Mother -e betsycrowe@example.com -p 98262123 will result in a duplicate entry and the person will not be edited.
Finds persons whose names contain any of the given keywords.
Format:
find KEYWORD [MORE_KEYWORDS]
Tip:
hans will match HansHans Bo will match Bo HansHan will not match HansOR search).
e.g. Hans Bo will return Hans Gruber, Bo Yang0 Persons Listed is shown to the user.list -p after find command to restore the original list.Valid Example (Found 1 person):
Valid Example (Found multiple person):
Valid Example (Found no person)
Format:
delete INDEX
INDEX.⚠️ Warning: This action cannot be undone, no confirmation message is displayed! You will have to use
addcommand to add the contact again.
Valid Example:
Valid Example:
find Charlotte followed by delete 1 deletes the 1st person in the results of the find command.Charlotte is found by the find command.

Format:
clear -p
Clears all persons from the address book.
⚠️ Warning: This action cannot be undone, no confirmation message is displayed! You will have to use
addcommands to add all the contacts again.
Format:
list -e
Tip: Preceding, trailing and intermediate whitespaces will still result in a successful command.
Format:
event -n EVENT_NAME -sd EVENT_START_DATE -ed EVENT_END_DATE -l LOCATION [-a ATTENDEES]
Tip:
EVENT_NAME, EVENT_START_DATE, EVENT_END_DATE, LOCATION must be present but ATTENDEES is optional.-a can only be specified at most once.ATTENDEES parameter must be based on existing contacts indexing in the Address Book.
Note that the indexes are separated by spaces.Valid Example:
event -n Get Together Party -sd 2023-10-25 -ed 2023-10-27 -l MBS.
Adds a "Get together party" event to the event book.

event -n Birthday Party -sd 2023-10-15 -ed 2023-10-15 -l Home -a 1 2 3.
Creates the birthday party event and adds the first 3 people in the contacts book to the event.

Invalid Example:
event -n Birthday Party -sd 2023-10-15 -ed 2023-10-15 -l Home -a 1, 2, 3
Invalid Example:
event -n New Year's Party -sd 2025-01-01 -ed 2025-01-02 -l Times Square -a 1 2 -a 4 5-a is specified more than once.

Format:
update -i INDEX [-n NEW_NAME] [-sd NEW_START_DATE] [-ed NEW_END_DATE] [-l NEW_LOCATION] [-a NEW_ATTENDEES_INDICES] [-r REMOVED_ATTENDEES_INDICES]
Tip:
INDEX parameter is required, while the rest of the parameters are optional. The -r flag allows you to
remove attendees from an event, and can be used together with the -a flag. If you add and remove the same index, the result
will be adding the person first, then removing them, i.e. they will not be present in the attendee list after the command executes.NEW_ATTENDEES_INDICIES and REMOVED_ATTENDEES INDICES parameters must be based on existing contacts indexing in the Address Book.update -i 1 -n Birthday Party -n Dinner Party -a 1 -a 2 is an invalid command.update -i 1 -n Billy's School Musical -a 1 2 -l is an invalid command, as the trailing -l (location) flag is treated as an index, since no location string was passed as an argument into it.Valid Example (One field updated):
Valid Example (Multiple field updated):
update -i 3 -n New Year's Party -sd 2025-01-01 -ed 2025-01-02 -l Marine Parade Road #12-34 -r 3 6 updates the 3rd event, reflecting all the provided details.

Invalid Example:
update -i 3 -n New Year's Party -n Christmas Celebration -a 1 2 -a 4 5-n and -a are specified more than once.Format:
cancel INDEX
INDEX.⚠️ Warning: This action cannot be undone, no confirmation message is displayed! You will have to use
eventcommand to add the event again.
Valid Example:
Format:
clear -e`
⚠️ Warning: No confirmation message is displayed. This action is irreversible, you will have to use
eventcommand to add all the events again.
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 LegacyLink home folder.
preferences.json file created by the application before running the application again.help command (or use the Help menu, or the keyboard shortcut F1) again, the original Help Window will remain minimized, and no new Help Window will appear. The remedy is to manually restore the minimized Help Window.edit command. Currently, the error message for invalid index such as -1 (negative numbers), 0 and integer overflow is an invalid command instead of an index out of bounds. This is a known issue and will be addressed in an upcoming update to ensure that users receive more accurate and specific error messages when encountering invalid index values.edit or delete. You may have to refresh the UI by clicking on the person/event card again to see the updated person/event information.| Action | Format, Examples |
|---|---|
| List Persons | list -p |
| Add Person | add -n NAME -p PHONE_NUMBER -e EMAIL -rs RELATIONSHIP e.g., add -n James Ho -p 22224444 -e jamesho@example.com -rs Brother |
| Delete Person | delete INDEXe.g., delete 3 |
| Edit Person | edit INDEX [-n NAME] [-p PHONE_NUMBER] [-e EMAIL] [-rs RELATIONSHIP]e.g., edit 2 -n James Lee -e jameslee@example.com |
| Find Person | find KEYWORD [MORE_KEYWORDS]e.g., find James Jake |
| Clear Person Book | clear -p |
| Add Event | event -n EVENT_NAME -sd EVENT_START_DATE -ed EVENT_END_DATE -l LOCATION -a ATTENDEES e.g., event -n Birthday Party -sd 2023-10-15 -ed 2023-10-15 -l Home -a 1 2 3 |
| Cancel Event | cancel INDEX e.g., cancel 1 |
| Edit Event | update -i INDEX [-n NEW_NAME] [-sd NEW_START_DATE] [-ed NEW_END_DATE] [-l NEW_LOCATION] [-a NEW_ATTENDEES_INDICES] [-r REMOVED_ATTENDEES_INDICES] e.g., update -i 3 -n New Year's Party -sd 2025-01-01 -ed 2025-01-02 -a 1 2 4 5 -r 3 6 |
| List Events | list -e |
| Clear Events | clear -e |
| Help | help |
| Exit | exit |