What is WedLinker?
WedLinker is an essential desktop app tailored to the needs of professional wedding planners who need to efficiently manage every aspect of a wedding. From organising wedding-related contacts to tracking tasks assigned to vendors, WedLinker consolidates all the tools you need into one streamlined platform.
Designed with the unique demands of wedding planners in mind, WedLinker helps you:
With WedLinker, you can stay on top of multiple weddings at once, reduce administrative workload, and ensure that no detail is overlooked.
Tailored to your needs, WedLinker simplifies complex workflows so you can focus on delivering flawless, stress-free wedding experiences for your clients.
Why Choose WedLinker?
While WedLinker excels with its fast Command-Line Interface (CLI), it also offers a clear and intuitive Graphical User Interface (GUI). The GUI presents your contacts, weddings, and tasks in an organised layout, making it easy to view and manage them at a glance.
This combination of speed and clarity allows you to manage your wedding planning tasks efficiently and with precision.
Before you can run this app, you need to have Java 17 or above installed on your computer. Follow the simple steps below to check if you already have Java 17 installed, or to install it if you do not:
1.1. Open your operating system's terminal. If you are unsure how to open the terminal, follow the steps below:
cmd and press enterTerminal in the search field, then click Terminal, OR/Applications/Utilities folder, then double-click Terminal.1.2. Type java -version and press enter.
1.3. If you have Java 17 installed, the terminal should look like:
C:\Users\UserName>java -version
java version "17.0.12" 2024-07-16 LTS
Java(TM) SE Runtime Environment (build 17.0.12+8-LTS-286)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.12+8-LTS-286, mixed mode, sharing)
If you have Java 17 installed, proceed to Step 3. If not, follow these instructions:
2.1. Download Java 17 from here.
2.2. Select the installation package based on your Operating System.
2.3. Follow the instruction guide to install Java on your device. For more information, click here.
WedLinker.jar to begin the download.

WedLinker.jar.
Type a command in the command box and press Enter to execute it. For example, 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/ABC Photography Studio : Adds a contact named John Doe to WedLinker with the phone number 98765432, email address johnd@example.com, and address ABC Photography Studio.
delete 3 : Deletes the 3rd contact shown in the current list.
clear : Deletes all contacts.
exit : Exits the app.
Words in UPPER_CASE are the parameters to be supplied by the user.
For example: add n/NAME, NAME is a parameter which can be used as add n/John Doe.
Items in square brackets are optional.
For example: n/NAME [t/TAG_NAME] can be used as n/John Doe t/guest or as n/John Doe.
Items with … after them can be used multiple times.
For example: [t/TAG_NAME]… can be: t/guest, t/guest t/photographer etc.
Commands in WedLinker uses labels to specify the parameters, the labels are stated as such:
Extra inputs for commands that do not require them (such as help, list, exit and clear) will be ignored.
help 123, it will be interpreted as help.Similarly, extra labels (e.g. n/ or tk/) for commands that do not take in those labels will be processed as part of other inputs.
n/, p/, e/, a/, t/, and w/. If the command specifies
add n/Betsy Crowe d/2020-04-11 tk/Buy flowers, it will be interpreted as adding a person with the name "Betsy Crowe d/2020-04-11 tk/Buy flowers". 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.
assign-vendor 1, you can type in asv 1. You can find the shortcuts for each command in their respective sections.You can find the help page by entering the command help.
Format: help
You can see a list of all saved Persons in the WedLinker by entering the command list.
Format: list
You can see a list of all Weddings in the WedLinker by entering the command list-weddings.
Format: list-weddings or lw
You can see a list of all Tasks in the WedLinker by entering the command list-tasks.
Format: list-tasks or ltasks
You can see a list of all Tags in the WedLinker by entering the command list-tags.
You can delete all the data from WedLinker by entering clear.
Format: clear
Exits the program.
Format: exit
WedLinker data is saved in your computer automatically. There is no need to save manually.
WedLinker data is 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.
You can add a new contact to WedLinker by using the add.
Format: add n/NAME [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG_NAME]… [w/WEDDING_NAME]…
If you want to add contact to WedLinker, type add followed by details such as the name, phone number, and email.
NAME is case-insensitive. John Doe is already in WedLinker, adding another john doe with different details will not work.Tags or Weddings specified in the add command do not exist yet, they will be created.Examples:
add n/John Doe p/98765432 e/johnd@example.com a/XYZ Floral Servicesadd n/Betsy Crowe p/1234567 t/Photographer t/GuestTags or Weddings that do not exist in WedLinker will create all the Tags and Weddings.
Created weddings will have the person automatically assigned to their guest lists. n/, p/, e/, a/, t/, and w/. If the command specifies
add n/Betsy Crowe d/2020-04-11 tk/Buy place settings, it will be interpreted as adding a person with the name Betsy Crowe d/2020-04-11 tk/Buy place settingsYou can edit details of an existing person in WedLinker by using the edit command.
Format: edit PERSON_NUMBER [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS]
To edit the details of an existing contact in WedLinker, type edit followed by the positional number of the person in the contact list, and details you wish to update, such as the name, phone number, and email.
PERSON_NUMBER must be a positive integer 1, 2, 3, …
The PERSON_NUMBER corresponds to each person's position in the currently visible `Person` list.
PERSON_NUMBER 2 refers to the person named "Bernice Yu", and the command edit 2 n/Bob Yu will change the contact's name from "Bernice Yu" to "Bob Yu".Examples:
edit 1 p/91234567.edit 2 n/Betsy Crower a/XYZ Flower Shop.You can remove a person from WedLinker by using the delete command.
Format: delete PERSON_NUMBER
To remove a contact from WedLinker, type delete followed by the positional number of the person in the contact list.
PERSON_NUMBER must be a positive whole number 1, 2, 3, …Examples:
list,delete 2Betsy:
Betsy by entering the command: find n/Betsydelete 1You can find all persons based on a search term after the label and display them as a list using the find command.
Format: find n/NAME... or find p/PHONE... or find e/EMAIL... or find a/ADDRESS... or find t/TAG_NAME... or find w/WEDDING_NAME... or find tk/TASK_NAME...
To search for a contact in WedLinker, type find followed by the label and search terms.
hans will match Hans.find n/Alex searches by name, find e/alex@gmail.com searches by email.find a/ is not allowed as the search term should be specified.find p/98 p/64.
This will return all contacts that have either 98 or 64 in their phone number.find n/Alex a/ is not allowed as it searches for keywords in more than one field.n/Hans n/Bo will return the same contacts as n/Bo n/Hans.Examples:
find p/973 returns all Contacts whose phone number contains 973find n/alex n/david returns Alex Yeoh, David Lifind t/guests returns all Contacts tagged with 'guests' find w/Casey's Wedding returns all Contacts assigned to Casey's Wedding 
You can create tags for contacts within WedLinker by using the create-tag command.
Format: create-tag t/TAG_NAME orctag t/TAG_NAME
To create a tag, type create-tag followed by the name of the tag.
TAG_NAME should contain letters, numbers and whitespaces.Examples:
Florist, enter the command:
create-tag t/FloristYou can assign a tag to a specific person in WedLinker by using the tag command.
Format: tag PERSON_NUMBER t/TAG_NAME... [f/]
To assign a tag to a contact, type tag followed by the positional number of the person in the contact list and the name of the tag.
PERSON_NUMBER must be a positive integer 1, 2, 3, ….Tag must exist in WedLinker before it can be assigned.Tag does not exist, you can use the label f/ to force the creation and assignment of the Tag.Examples:
Florist to the first person in the list, enter the command:
tag 1 t/FloristMusician (that doesn't currently exist) to the second person in the list, enter the command:
tag 2 t/Musician f/To see all current tags, use the list-tags command
tag 1 f/ RandomWord t/Tag1 will cause RandomWord to be ignored.You can remove a tag from a specific person in WedLinker by using the untag command.
Format: untag PERSON_NUMBER t/TAG_NAME...
To remove a tag from a contact, type untag followed by the positional number of the person in the contact list and the name of the tag.
PERSON_NUMBER must be a positive integer 1, 2, 3, ….TAG_NAME is case-sensitive unlike other tag commands so if person 2 is tagged with the tag Hotel Manager, only entering the command untag 2 t/Hotel Manager
will remove the tag from person 2 and untag 2 t/hotel manager will not.Examples:
Florist from the first person in the list, enter the command:
untag 1 t/FloristYou can delete a tag you no longer use in WedLinker by using the delete-tag command.
Format: delete-tag t/TAG_NAME [f/] or dtag t/TAG_NAME [f/]
To delete a tag from WedLinker, type delete-tag followed by the name of the tag
TAG_NAME is case-insensitive.Tag must exist in WedLinker.Tag cannot be assigned to any contacts after it is deleted.Tag is currently in use, you can use f/ to force its deletion and remove the tag from all contacts.Examples:
Florist from WedLinker, enter the command:
delete-tag t/FloristYou can create a Wedding within WedLinker that can be linked to contacts by using the create-wedding command.
Format: create-wedding w/WEDDING_NAME or cw w/WEDDING_NAME
To create a Wedding, type create-wedding followed by the name of the wedding.
WEDDING_NAME should only contain letters, numbers, spaces or the following characters: / . , ' & : ( )WEDDING_NAME is case-insensitive.Examples:
Wedding 1, enter the command:
create-wedding w/Wedding 1You can assign a person to one or more Weddings by using the assign-wedding command.
Format: assign-wedding PERSON_NUMBER w/WEDDING_NAME… [p1/] [p2/] [f/] or asw PERSON_NUMBER w/WEDDING_NAME… [p1/] [p2/] [f/]
To assign a person to one or more Weddings, type assign-wedding, followed by the positional number of the person in the person list and the name(s) of the wedding(s).
WEDDING_NAME is case-insensitive.PERSON_NUMBER must be a positive integer 1, 2, 3, ….Wedding must exists in WedLinker before it can be assigned.Wedding does not exist, you can use f/ to force its creation and assignment to the contact.p1/ or p2/ keywords will set that contact as Partner 1 or Partner 2 of the wedding respectively.p1/ and p2/, WedLinker will default to assigning the person as the first partner.Examples:
Wedding 1 to the third person in the contact list, enter the command:
assign-wedding 3 w/Wedding 1assign-wedding 2 w/Wedding 3 p1/ w/Amanda's WeddingYou can edit details of a Wedding, such as the Wedding name and Address by using the edit-wedding command.
Format: edit-wedding WEDDING_NUMBER [a/ADDRESS] [d/DATE] or ew WEDDING_NUMBER [a/ADDRESS] [d/DATE]
To edit the details of a Wedding, enter the command list-weddings to identify the Wedding number in the Wedding list.
Following that, type "edit-wedding" followed by the Wedding number and the details you wish to edit.
Examples:

The WEDDING_NUMBER corresponds to each Wedding's position in the `Wedding` list
In this example, the WEDDING_NUMBER 2 refers to the Wedding named "Wedding 2", and the command edit-wedding 2 w/Bob's Wedding will change the Wedding name from "Wedding 2" to "Bob's Wedding".
To edit the address of the Wedding named Wedding!, to XYZ street:
list-weddingsWedding! be 1, enter the command: edit-wedding 1 a/XYZ street. If the Wedding number is different, simply replace the 1 in the command with the corresponding Wedding positional number.You can remove a person from one or more Weddings using the unassign-wedding command.
Format: unassign-wedding PERSON_NUMBER w/WEDDING_NAME... or uw PERSON_NUMBER w/WEDDING_NAME...
To remove a contact from one or more Weddings, type "unassign-wedding", followed by the positional number of the person in the contact list and the name(s) of the wedding(s).
WEDDING_NAME is case-sensitive unlike other Wedding commands.PERSON_NUMBER must be a positive integer 1, 2, 3, ….unassign-wedding 2 w/Wedding 2 or uw 2 w/Wedding 2
will unassign the wedding from person 2 and unassign-wedding 2 w/wedding 2 or uw 2 w/wedding 2 will not.Examples:
Wedding 1, enter the command:
unassign-wedding 2 w/Wedding 1You can delete a Wedding from WedLinker by using the delete-wedding command.
Format: delete-wedding w/WEDDING_NAME [f/] or dw w/WEDDING_NAME [f/]
To delete a Wedding, type "delete-wedding", followed by the name of the wedding.
Wedding before it is deleted.Wedding, you can use f/ to force the deletion of the Wedding. This will un-assign all contacts from that Wedding. The Wedding will also be removed from all contacts who were previously assigned to it."Examples:
Wedding 1, enter the command:
delete-wedding w/Wedding 1Known issue: the unassign-wedding command is case-sensitive, so if person 2 is assigned to the wedding, Wedding 2, only entering the command unassign-wedding 2 w/Wedding 2 or uw 2 w/Wedding 2
will unassign the wedding from person 2 and unassign-wedding 2 w/wedding 2 or uw 2 w/wedding 2 will not.
You can create one or more Tasks by using the create-task command.
Format: create-task tk/TASK_DESCRIPTION [d/DATE] [d/DATE] ... or ctask tk/TASK_DESCRIPTION [d/DATE] [d/DATE] ...
To create a task, type create-task followed by the description of the task.
You can also include up to two dates if needed, with a single date indicating a deadline and two dates to define a start and end period.
TASK_DESCRIPTION is case-sensitive.d/YYYY-MM-DDExamples:
Buy cake and Book venue, enter the command:
create-task tk/Buy cake tk/Book venueFinalise itinerary with a specified deadline of 2024-12-22, enter the command:
create-task tk/Finalise itinerary d/2024-12-22You can assign one or more Tasks to a Person using the assign-task command.
Format: assign-task PERSON_NUMBER TASK_NUMBER... or atask PERSON_NUMBER TASK_NUMBER...
To assign Task(s) to a contact, enter the command list-tasks to identify the Task number in the Task list.
Following that, type "assign-task" followed by assigned person's positional number and the Task number(s) of Tasks you wish to assign to the person.
The PERSON_NUMBER and TASK_NUMBER must be positive integers 1, 2, 3, ….
The PERSON_NUMBER and TASK_NUMBER refer to the number of the Person in the person list and the number of the Task in the task list, respectively.

The TASK_NUMBER corresponds to each Task's position in the `Task` list
In this example, the TASK_NUMBER 2 refers to the Task with the description "Send invitations", and the command assign-task 1 2 will assign the "Send invitations" task to the contact with PERSON_NUMBER 1, which is "Alex Yeoh".
Examples:
Buy cake and Finalise itinerary:
list to see all Persons and list-task to see all Tasks.assign-task 1 2 3You can unassign one or more Task from a Person using the unassign-task command.
Format: unassign-task PERSON_NUMBER PERSON_TASK_NUMBER... or unatask PERSON_NUMBER PERSON_TASK_NUMBER...
To remove a Task from a contact, type unassign-task followed by the positional number of the Person and the Person's Task number(s).
PERSON_TASK_NUMBER here refers to the Task's position within a Person's assigned tasks, not the TASK_NUMBER in list-task.PERSON_NUMBER and PERSON_TASK_NUMBER must be positive integers 1, 2, 3, ….
The PERSON_TASK_NUMBER corresponds to each Task's position within a Person's assigned tasks.
unassign-task 1 3 will remove the "Send invitations" Task from the Person with PERSON_NUMBER 1, which is "Alex Yeoh".Examples:
Buy cake and Finalise itinerary from the first person in the contact list:
unassign-task 1 2 3You can mark one or more Tasks as completed by using the mark-task command.
Format: mark-task TASK_NUMBER... or mtask TASK_NUMBER...
To mark a task to be completed, enter the command list-tasks to identify the Task number(s) of task(s) you wish to mark.
Following that, type mark-task followed by the Task number(s).
Task as completed.Examples:
Finalise itinerary as complete:
list-tasks.mark-task 1.You can mark one or more Tasks as not completed by using the unmark-task command.
Format: unmark-task TASK_NUMBER... or untask TASK_NUMBER...
To mark a task as not completed, enter the command list-tasks to identify the Task number(s) of task(s) you wish to mark.
Following that, type unmark-task followed by the Task number(s).
TASK_NUMBER must be a positive integer 1, 2, 3, ….Examples:
Finalise itinerary as incomplete:
list-tasks.unmark-task 1.You can delete a specific Task from WedLinker by using the delete-task command.
Format: delete-task TASK_NUMBER or dtask TASK_NUMBER
To delete a task, enter the command list-tasks to identify the Task number in the task list.
Following that, type "delete-task" and the Task number of the task that you wish to delete.
TASK_NUMBER must be a positive integer 1, 2, 3, ….Examples:
Buy cake:
list-tasks.delete-task 1.You can use the assign-vendor command to designate a contact to be a Vendor.
Format: assign-vendor PERSON_NUMBER or asv PERSON_NUMBER
To designate a contact as a Vendor, type assign-vendor followed by the positional number of the person in the contact list.
PERSON_NUMBER must be a positive integer 1, 2, 3, ….Vendor can now have Tasks assigned to them.Examples:
assign-vendor 1.
You can use the unassign-vendor command to remove a Vendor designation from a contact, making them a regular non-vendor contact in WedLinker.
Format: unassign-vendor PERSON_NUMBER [f/] or uv PERSON_NUMBER [f/]
To remove a Vendor designation from a contact, type unassign-vendor followed by the positional number of the person in the contact list.
PERSON_NUMBER must be a positive integer 1, 2, 3, ….Vendor at the specified PERSON_NUMBER such that the Person is no longer a Vendor. Tasks can no longer be assigned to this Person.Vendor before they are unassigned.Vendor has tasks assigned to them, you can use the label f/ to force the removal of the vendor designation and remove all tasks currently assigned to that Vendor.Examples:
unassign-vendor 1.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. The remedy is to delete the preferences.json file created by the application before running the application again.
If you minimize the Help Window and then run the 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.
The commands untag and unassign-wedding are case-sensitive. So, if a person, person 2, is assigned to a wedding, Wedding 2, entering the command unassign-wedding 2 w/wedding 2 will not remove Wedding 2 from person 2.
When you use the assign-wedding function with both p1/ and p2/, WedLinker will default to assigning the person as the first partner for the specified wedding.
| Action | Format, Examples |
|---|---|
| Add | add n/NAME [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG_NAME]… [w/WEDDING_NAME]… e.g., add n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 t/florist |
| Assign Task | assign-task PERSON_NUMBER TASK_NUMBER… or atask PERSON_NUMBER TASK_NUMBER… e.g., assign-task 2 1 3 |
| Assign Vendor | assign-vendor PERSON_NUMBER or asv PERSON_NUMBER e.g., asv 2 |
| Assign Wedding | assign-wedding PERSON_NUMBER w/WEDDING_NAME… [p1/] [p2/] [f/] or asw PERSON_NUMBER w/WEDDING_NAME… [p1/] [p2/] [f/] e.g., asw 2 w/Casey's Wedding p1/ w/Wedding August 29th |
| Clear | clear |
| Create Tag | create-tag t/TAG_NAME or ctag t/TAG_NAME e.g., create-tag t/photographer |
| Create Task | create-task tk/TASK_DESCRIPTION [d/DATE] [d/DATE]… or ctask tk/TASK_DESCRIPTION [d/DATE] [d/DATE]… e.g., create-task tk/Order Wedding Cake ctask tk/Book Venue d/2025-02-01 create-task tk/Meet Caterer d/2024-11-19 d/2024-11-20 |
| Create Wedding | create-wedding w/WEDDING_NAME or cw w/WEDDING_NAME e.g., cw w/JJ's Wedding |
| Delete | delete PERSON_NUMBERe.g., delete 3 |
| Delete Tag | delete-tag t/TAG_NAME [f/] or dtag t/TAG_NAME [f/] e.g., delete-tag t/photographer |
| Delete Task | delete-task TASK_NUMBER or dtask TASK_NUMBER e.g., dtask 6 |
| Delete Wedding | delete-wedding w/WEDDING_NAME [f/] or dw w/WEDDING_NAME [f/] e.g., delete-wedding w/Lav's Wedding |
| Edit | edit PERSON_NUMBER [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS]e.g., edit 2 n/James Lee e/jameslee@example.com |
| Edit Wedding | edit-wedding WEDDING_NUMBER [a/ADDRESS] [d/DATE]or ew WEDDING_NUMBER [a/ADDRESS] [d/DATE] e.g., edit-wedding 2 a/Jurong Christian Church |
| Exit | exit |
| Find | find n/NAME… or find p/PHONE… or find e/EMAIL… or find a/ADDRESS… or find t/TAG_NAME… or find w/WEDDING_NAME… or find tk/TASK_NAME… e.g., find n/James Jake find a/Serangoon a/Blk 13 |
| Help | help |
| List | list |
| List Weddings | list-weddings or lw |
| List Tags | list-tags or ltags |
| List Tasks | list-tasks or ltasks |
| Mark Task | mark-task TASK_NUMBER… or mtask TASK_NUMBER… e.g., mark-task 1 mtask 1 2 3 |
| Tag | tag PERSON_NUMBER t/TAG_NAME… [f/] e.g., tag 2 t/florist t/photographer |
| Unassign Task | unassign-task PERSON_NUMBER PERSON_TASK_NUMBER… or unatask PERSON_NUMBER PERSON_TASK_NUMBER… e.g., unatask 2 1 3 |
| Unassign Vendor | unassign-vendor PERSON_NUMBER [f/] or uw PERSON_NUMBER [f/] e.g., unassign-vendor 3 |
| Unassign Wedding | unassign-wedding PERSON_NUMBER w/WEDDING_NAME… or uw PERSON_NUMBER w/WEDDING_NAME… e.g., uw 2 w/John's Wedding |
| Unmark Task | unmark-task TASK_NUMBER… or untask TASK_NUMBER… e.g., untask 1 unmark-task 1 2 3 |
| Untag | untag TASK_NUMBER t/TAG_NAME… e.g., untag 4 t/available t/chef |
To transfer your data to another computer, follow these steps:
Once this is done, you should have all your data transferred successfully to the new computer.