Skip to content

Latest commit

 

History

History
913 lines (693 loc) · 33.6 KB

UserGuide.adoc

File metadata and controls

913 lines (693 loc) · 33.6 KB

iScheduler Xs Max - User Guide

1. Introduction

iScheduler Xs Max is for those who prefer to use a desktop app for scheduling personal events. More importantly, this version is optimized for those who prefer to work with a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, we can get your event scheduling tasks done faster than traditional GUI apps. Interested? Jump to the Section 2, “Quick Start” to get started.

This product is targetting at University students who have many tasks to handle such as homework deadlines, weekly lectures and tutorials, anniversaries with families and more.

The postfix 'Xs Max' indicates a great improvement from the previous version of the product as it now supports Google Calendar!

Enjoy!

2. Quick Start

  1. Ensure you have Java version 9 or later installed in your Computer.

  2. Download the latest iScheduler Xs Max.jar here.

  3. Copy the file to the folder you want to use as the home folder for your iScheduler Xs Max.

  4. Double-click the file to start the app. The GUI should appear in a few seconds.
    Below is an screenshot of the GUI after logging in the Google Calendar.

    Ui
  5. Type the command in the command box and press Enter to execute it.
    e.g. typing help and pressing Enter will open the help window.

  6. Some example commands you can try:

    • add: add n/Interview at Jane Street : adds an Event named Interview at Jane Street to the Event Scheduler.

    • list : lists all events

    • delete3 : deletes the 3rd event shown in the current event

    • exit : exits the app

  7. Refer to Section 3, “Features” for details of each command.

Warning
As a normal user (new user who does not understand the implementation of the app), you should not modify the data files or tokens manually, such edits would lead to various errors and exceptions.

3. Features

Command Format
 — Some commands have (an) alias(es), which you can also use to execute the command e.g. to add an event to the scheduler, you can type either add n/Interview at Jane Street or a n/Interview at Jane Street.
 — Words in UPPER_CASE are the parameters to be supplied by the user e.g. in add n/EVENT_NAME, EVENT_NAME is a parameter which can be used as add n/Interview at Jane Street.
 — Items in square brackets are optional e.g n/EVENT_NAME [t/TAG] can be used as n/Interview at Jane Street t/serious or as n/Interview at Jane Street.
 — 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/priority.low, t/fun t/serious etc.
 — Parameters can be in any order e.g. if the command specifies n/EVENT_NAME v/VENUE, v/VENUE n/EVENT_NAME is also acceptable.

3.1. Viewing help : help

Format: help
Aliases: hel OR he OR h
Coming in V2.0: Command format can be typed case-insensitive

3.2. Adding an event : add

Adds an event to the scheduler.
Format: add event n/EVENT_NAME [s/START_DATETIME] [e/END_DATETIME] [d/DESCRIPTION] [v/VENUE] [r/REMARK] [rt/REPEAT_TYPE] [ru/REPEAT_UNTIL_DATETIME] [t/TAG]…​ [re/REMINDER_TIME]… `
Aliases: `ad
OR a in place of add
Coming in V2.0: Command format can be typed case-insensitive

💡
An event can have any number of tags and reminders(including 0). If you want multiple tags and reminders, we need to use [t/] and [re/] for multiple times
Warning
Except for tags(t/) and reminders(re/), all other fields will take in the latest field that is being input.
  • DATETIME is the natural language of date and time in English.

  • REPEAT_TYPE should be left empty or chosen from either daily, weekly or monthly.

  • REMINDER_TIME (in xxHxxMxxS) represents the duration before the START_DATETIME that you want a pop-up alert.

  • Adding events with the exact values as another event is possible.

  • Only future reminders will be added. Please refer to [Pop Up Feature].

Examples:

  • add n/Study With Yoko s/tomorrow at 3pm d/Study again and again rt/MONTHLY ru/next friday 3pm t/adhoc re/30M

  • add n/CS2103 Lecture s/23 September 2018 6pm e/24 September 2018 rt/WEEKLY ru/next monday t/timetable re/1H30M

Below are the supported formats of date, time and reminder times:

Date and time formats

Explicit dates

Formal dates

Formal dates are expressed in integer values month, day and year separated by / or -.

Format
  • MM-DD-YYYY

  • MM/DD/YYYY

  • YYYY-MM-DD

  • YYYY/MM/DD

Examples

Input

Output

10-15-2018

October 15 2018

10/15/2018

October 15 2018

2018-10-15

October 15 2018

2018/10/15

October 15 2018

Relaxed dates

Relaxed dates are month, day and year expressed in a loose manner such as a combination of English and integers.

Examples

Input

Output

The 15th of October in the year 2018

October 15 2018

Mon, 15 Oct 2018

October 15 2018

Oct 15, 2018

October 15 2018

Oct 15th

October 15 of the current year

October fifteen

October 15 of the current year

Relative dates

Relative date are dates relative to the current date.

Examples

Input

Output

next thursday

The Thursday after command execution date

last wednesday

The Wednesday before command execution date

today

The day of command execution

tomorrow

The day after command execution date

yesterday

The day before command execution date

3 days from now

3 days after command execution date

three weeks ago

3 weeks before command execution date

Explicit times

Explicit times are expressed in integer values hours, minutes and seconds. If meridian is compulsory in 12-hour clock.

Format
  • HH[MM][SS][MERIDIAN]

Example

Input

Output

10

10:00:00am

191215

17:12:15pm

201311 pm

8:13:11pm

1900

7:00:00pm

7am

7:00:00am

10:30 am

10:30:00am

Relative times

Examples

Input

Output

10 seconds ago

10 seconds before command execution time

in 5 minutes

5 minutes after command execution time

4 minutes from now

4 minutes after command execution time

3 hours later

3 hours after command execution time

6 seconds from 1030

6 seconds after 1030

Reminder time format

Reminder times

Examples
  • xxHxxMxxS: xx must be non-negative integers.

Input

Output

30m or 30min

30 minutes before START_DATETIME

3h

3 hours before START_DATETIME

1h30m30s

1 hour 30 minutes 30 seconds before START_DATETIME

48h

2 days before START_DATETIME

3.3. [Partial Implementation] Adding a tag : addTag [by v2.0]

This is the command format for adding tags.

Note: This feature has NOT been fully implemented yet. However, do feel free to play around with it and to report any bugs/problems as well :)

It will be FULLY implemented by v2.0.

3.4. Listing all events : list

Shows a list of all events in the scheduler.
Format: list
Aliases: lis OR li OR l
Coming in V2.0: Command format can be typed case-insensitive

3.5. Editing an event : edit

Edits existing events in the scheduler.
Format: edit INDEX [n/EVENT_NAME] [s/START_DATETIME] [e/END_DATETIME] [d/DESCRIPTION] [v/VENUE] [rt/REPEAT_TYPE] [ru/REPEAT_UNTIL_DAETIME] [t/TAG]…​ [re/REMINDER_TIME]…​ [-a | -u]
Aliases: edi OR ed in place of edit
Coming in V2.0: Command format can be typed case-insensitive

💡
Only one option can exists at any one time. Either -a or -u.
  • Edits the event at the specified INDEX. The index refers to the index number shown in the displayed event 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.

  • When editing tags, the existing tags of the event will be removed i.e adding of tags is not cumulative.

  • You can remove all the event’s tags by typing t/ without specifying any tags after it.

  • The logic for editing reminder times is the same as tags

  • Only future reminders will be edited. Please refer to [Pop Up Feature].

  • Repeating events can be edited together using a valid option.

  • REPEAT_TYPE and REPEAT_UNTIL_DATETIME cannot be edited for single events and events without a valid option.

The supported formats of date, time and reminder times are identical to that of Adding an event.
Refer to Date and time formats and Reminder time format.

ℹ️

The current version does not auto-refresh the Google Calendar page on the right. Please right click and select 'Reload Page' to see the effects. Alternatively, you can select any Event using your keyboard (by using arrow keys) / mouse (by clicking on it), the page on the right will be refreshed.

Options

-a
Tell the command to select all the repeating events that are associated with the event selected.

-u
Tell the command to select the upcoming events that are associated with the event selected.

Examples:

  • edit 1 n/Study with John d/Study for Mathematics exam
    Edits the event name and description of the 1st event to be Study with John and Study for Mathematics exam respectively.

  • edit 2 n/Play t/ -a
    Edits all the repeating event’s name of the 2nd event to be Play and clears all existing tags.

  • edit 2 re/ -u
    Clear all the upcoming event’s reminder times.

Warning

If your repeating events have different fields, using -a | -u options will overwrite individuality.
i.e. different fields of other repeating events will be replaced by the fields of event identified by the index.
Below is a detailed example

add n/Event v/NUS …​:

1. Name: Event

Venue: NUS

…​

2. Name: Event

Venue: NUS

…​

3. Name: Event

Venue: NUS

…​

You added a set of 3 recurring events

edit 1 n/CHANGE:

1. Name: CHANGE

Venue: NUS

…​

2. Name: Event

Venue: NUS

…​

3. Name: Event

Venue: NUS

…​

You edited event 1 only. Now the set of recurring events have different fields.

edit 2 v/NTU -a:

1. Name: Event

Venue: NTU

…​

2. Name: Event

Venue: NTU

…​

3. Name: Event

Venue: NTU

…​

Different fields of first event will be overwritten by fields of the second event as identified by the INDEX used in the command .

3.6. Listing all events : list

Shows a list of all events in the scheduler.
Format: list
Aliases: lis OR li OR l
Coming in V1.4: Command format can be typed case-insensitive

3.7. Locating events by event name: find

Finds events whose event names contain any of the given keywords.
Format: find KEYWORD [MORE_KEYWORDS]
Aliases: fin OR fi OR f in place of find
Coming in V2.0: Command format can be typed case-insensitive

  • The search is case insensitive. e.g work will match Work

  • The order of the keywords does not matter. e.g. Work Hard will match Hard Work

  • Only the event name is searched.

  • Only full words will be matched e.g. Work will not match Works

  • Events matching at least one keyword will be returned (i.e. OR search). e.g. Hard Work will return Work Smart, Play Hard

Examples:

  • find Study
    Returns study and Study Hard

  • find Study Hard
    Returns any event having event names Study or Hard

3.8. Deleting an event : delete

Deletes the specified event from the scheduler.
Format: delete INDEX [-a | -u]
Aliases: delet OR dele OR del OR de or d in place of delete
Coming in V2.0: Command format can be typed case-insensitive

ℹ️

The current version does not auto-refresh the Google Calendar page on the right. Please right click and select 'Reload Page' to see the effects. Alternatively, you can select any Event using your keyboard/mouse, the page on the right will be refreshed.

💡
Only one option can exists at any one time. Either -a or -u.
  • Deletes the event at the specified INDEX.

  • The index refers to the index number shown in the displayed event list.

  • The index must be a positive integer 1, 2, 3, …​

  • Repeating events can be deleted together using a valid option.

Supported options are identical to those found in Editing an event.
Refer to Options.

Examples:

  • list
    delete 2
    Deletes the 2nd event in the scheduler.

  • find Study
    delete 1
    Deletes the 1st event in the results of the find command.

  • list
    delete 3 -a
    Deletes the 3rd event and its repeating events from the scheduler.

  • list
    delete 4 -u
    Deletes the 4th event and its upcoming events from the scheduler.

3.9. Select

Selects the event identified by the index number used in the displayed event list.
Format: select INDEX
Aliases: selec OR sele OR sel OR se OR s in place of select
Coming in V2.0: Command format can be typed case-insensitive

Note that Select command is partially depreciated in this version. Selecting an event will not have any useful result, but only refresh the right panel.

3.10. Reminder Operations: addReminder deleteReminder postponeReminder

Customised commands to add, delete reminders incrementally, and postpone all reminders for the event.

If you have set reminder for an event, a window will pop up at the specified duration before event start time.
You can find event name, venue, start and end time information in the pop up window.
Eg: If you set 30min for an event that starts at 11:00, a window will pop up at 10:30 (+-1min) if the app is open.

General Format:
addReminder/ deleteReminder INDEX [re/REMINDER_TIME]…​ [-a | -u].
postponeReminder INDEX [re/REMINDER_TIME] [-a | -u]. (multiple durations not allowed)
At most 1 option (either -a or -u) can exists at any one time.
For the correct format for time, please refer to Reminder time format.

You may choose to use add or edit command to set this field with prefix re.
Please refer to Section 3.2, “Adding an event : add and Section 3.5, “Editing an event : edit command.

  • If you have not set any reminder for the event, the event card will display as "No Reminder".

  • When you open the app, it will NOT pop up past reminders since the last time you close the app.
    Eg. If you open the app at 11am, the reminder at 10am will not pop up when you open the app.

  • When you add/edit reminder times, past reminders will be displayed on the event card but will not pop up.
    Eg. you add a reminder that is supposed to pop up an hour ago, the duration will still be displayed on the event card but will never pop up since the reminder time has already passed.

  • When the reminder pops up, the reminder time displayed will not be deleted.

Warning

The reminder commands follow the same logic as edit.
If your repeating events have different fields, using -a | -u options will overwrite individuality.
i.e. different fields of other repeating events will be replaced by the fields of event identified by the index.
For detailed explanations, refer to Section 3.5, “Editing an event : edit.

3.10.1. Add reminders to event: addReminder

Add new reminders to events incrementally
Format: addReminder INDEX [re/REMINDER_TIME]…​ [-a | -u]. At most 1 option (either -a or -u) can exists at any one time.

Examples:

  • addReminder 1 re/30M
    Add a reminder 30min before Event 1 start time

  • addReminder 1 re/30M -a
    Add a reminder 30min before start time for all repeating events of Event 1.

ℹ️
  • If Event 1 already has reminders at 30m, 1h before the start time, and you want to add another 2h reminder, the following commands are equivalent:
    edit 1 re/30m re/1h re/2h = addReminder 1 re/2h

  • If you add a duration that already exists in the event, it will have no effect.

3.10.2. Delete reminders from event: deleteReminder

Delete reminders of events if it exists
Format: deleteReminder INDEX [re/REMINDER_TIME]…​ [-a | -u]. At most 1 option (either -a or -u) can exists at any one time.

💡

To avoid unexpected behavior, please enter the exact duration displayed in the event card.

Examples:

  • deleteReminder 1 re/30M
    Delete a reminder 30min before Event 1 start time if the reminder exists.

  • addReminder 1 re/30M re/1H -a
    Delete reminders 30min and 1h before start time for all repeating events of Event 1 if the reminders exist.

ℹ️
  • If Event 1 already has reminders at 30m, 1h, 2h before the start time, and you want to delete the 1h reminder, the following commands are equivalent:
    edit 1 re/30m re/2h = deleteReminder 1 re/1h

  • If you delete a duration that does not exist in the event, it will have no effect.

3.10.3. Postpone all reminders for event: postponeReminder

Postpone all reminders for events. If the postpone duration is larger than the original duration, reminder duration will become 0S. Format: postponeReminder INDEX [re/REMINDER_TIME] [-a | -u]. At most 1 option (either -a or -u) can exists at any one time.

💡

Please enter only ONE duration to postpone here.

Examples:

  • Event 1 has reminders 30min, 1H before the start time.
    postponeReminder 1 re/5M
    Reminders displayed become: 25min, 55min.

  • Event 1 has reminders 30min, 1H before the start time.
    postponeReminder 1 re/2H
    Reminders displayed become: 0S. Reminders will pop up right at the start time.

ℹ️
  • If the identified event has no reminders, it will have no effect.

3.11. Tag Operation: add 'deleteTag'

Customised command to delete a tag from all events.

You may add any number of tags to an event by using 'add' command, or edit tags with 'edit' command.

Examples:

  • add n/SOC interview t/Interview t/School
    Add an event with two tags Interview and School.

  • edit 2 t/Work t/Deadline t/Important
    Edit the event with new tags Work, Deadline and Important.

Note: When editing tags, the current tags of the event will be removed, i.e. new tags from edit command will overwrite current tags. You remove all tags in an event by using 't/' without any specific tag.

3.11.1. Delete tag fromm all events in the schedular: deleteTag

Delete a specific tag from all events in the schedular
Format: deleteTag tagName.

Examples:

  • deleteTag work
    Delete tag work from all events in the shedular.

Note: Current implementation of deleteTag is case sensitive. Future implementation will make tag name case-insensitive.

3.12. Remark Operation: 'remark'

Customised command to add or edit remark for an event.

You may add remark to an event by using 'add' command at the beginning, but you cannot do so with 'edit' command. Instead 'remard' command is used to add or edit remark.

3.12.1. Add or edit remark for a event: remark

Add or edit remark for a event in the scheduler.
Format: remark INDEX r/[REMARK]

Examples:

  • remark 3 r/Dress code: Formal. Arrive half an hour earlier.
    Add remark to the event with index 3.

Note: An event can only has one remark. 'remark' command will overwrite any exiting remark of the event.

3.13. Listing entered commands : history

Lists all the commands that you have entered in reverse chronological order.
Format: history
Aliases: histor OR histo OR hist OR his OR hi
Coming in V2.0: Command format can be typed case-insensitive

ℹ️

Pressing the and arrows will display the previous and next input respectively in the command box.

3.14. Undoing previous command : undo

ℹ️

Current version only supports the local changes, Google Calendar is NOT undoable.

Restores the scheduler to the state before the previous undoable command was executed.
Format: undo
Aliases: und OR un OR u
Coming in V2.0: Command format can be typed case-insensitive

ℹ️

Undoable commands: those commands that modify the scheduler’s content (add, delete, edit and clear).

Examples:

  • delete 1
    list
    undo (reverses the delete 1 command)

  • select 1
    list
    undo
    The undo command fails as there are no undoable commands executed previously.

  • delete 1
    clear
    undo (reverses the clear command)
    undo (reverses the delete 1 command)

3.15. Redoing the previously undone command : redo

ℹ️

Current version only supports the local changes, Google Calendar is NOT redoable.

Reverses the most recent undo command.
Format: redo
Aliases: red OR re OR r
Coming in V2.0: Command format can be typed case-insensitive

Examples:

  • delete 1
    undo (reverses the delete 1 command)
    redo (reapplies the delete 1 command)

  • delete 1
    redo
    The redo command fails as there are no undo commands executed previously.

  • delete 1
    clear
    undo (reverses the clear command)
    undo (reverses the delete 1 command)
    redo (reapplies the delete 1 command)
    redo (reapplies the clear command)

3.16. Clearing all entries : clear

Clears all entries from the scheduler.
Format: clear
Aliases: clea OR cle OR cl OR c
Coming in V2.0: Command format can be typed case-insensitive

3.17. Exiting the program : exit

Exits the program.
Format: exit
Aliases: exi OR ex OR e
Coming in V2.0: Command format can be typed case-insensitive

3.18. Saving the data

Scheduler data are saved in the hard disk automatically after any command that changes the data.
There is no need to save manually.

3.19. EnterGoogleCalendarMode : EnterGoogleCalendarMode

Function of this command: This command initializes the app to enterGoogle Calendar mode. The followings are done: Pull events from your Google Calendar (login required), add them to local calendar and enable all feasures' real-time sycn feature with Google Calendar.

Format: EnterGoogleCalendarMode

Warning
Note that you shall NOT type any extra input after the command word EnterGoogleCalendarMode. Behaviour is not guaranteed.
ℹ️

For events downloaded from Google, commands on them only have local effects. No real-time effects on the original events on Google Calendar. They will be supported in v2.0.

By default, that is, before initialization (before a normal user enters the EnterGoogleCalendarMode), the app is in Offline Mode. All command effects are local.

When the user types the command EnterGoogleCalendarMode, then a pop-up windows will appear in your default browser for you to log in your google account and establish the link between app and Google Server.

ℹ️

This command will have to access your Google Calendar data, Google authentication is required.

3.19.1. Log-in Process Overview

ℹ️
Take note that you will be required to log in twice.
  • First login: Establishing the link between the app and google calendar. This is done at the webpage pop-up in your default browser. This log-in credential is stored locally. If the credential has not expired, you can continue to use it and no further log-in is required.

  • Second login: log-in for viewing the Google Calendar on the right panel. This is log-in from the webpage on the right panel. Note that the cookies are not stored. You will be required to log in again if you close the app.

ℹ️

Note for Log-In Process

After the pop-up window appears, you shall enter your account number and password.
You shall not close the login page.
If you have done so, the app is very like to become inactive and unable to accept any command.

Remedial action For any log-in problem:
- You should try to enter the command EnterGoogleCalendarMode again.

If the problem persists, try the following:

  • Close the app.

  • Delete the StoredCredential file in your token folder found in the app home folder.

  • Make sure the content of mode.txt file is 'Disabled'. Note that this file shall NOT be deleted at any time. If it is missing, the app is likely to have unexpected behaviour.

ℹ️

Note for two-factor authentication (2FA) of your Google Account

The app might able / not able to support your 2FA log in method, depends on the security level set by you. If the internet is not good, the login page might not appear.

3.19.2. Log-in Process Guide

Step 1: If you have not successfully logged into our application using EnterGoogleCalendarMode before, a pop-up login window will appear in your default browser.

Step 2: You will be required to log in your Google account, just like when you are using many other Google services. After successful authorization, the message
Received verification code. You may now close the window.
will appear.

Step 3: The application proceeds automatically after successful authorization. As instructed, you do not have to do anything else so please do feel free to close the browser tab.

Step 4: The application then proceeds with the pulling of Google Calendar events, and trying to add them to the local database. A success message appears after the completion of addition of supported events. If your google event is not supported, an error message is shown.

💡
Supported event types:
- Single events
- Repeated events with single weekly repeat day with a 'Repeat Until' date and with a Name. eg.Weekly On Monday Until 2018-12-12 (This is mainly to support for weekly lectures and tutorials)
Event(s) above refer to those generated in Google natively and NOT generated from the app previously (from your current computer or any other computer using any accounts.)
ℹ️
If Google service is not stable OR the limit of the IP address/account is reached OR there are too many events, the command might not able to retrieve any event. One of the third party libraries used in our app Natty has been noticed several times for unstable/incorrect behaviour in converting DateTimes. Repeated Events might not be able to fe fully downloaded.

3.19.3. Using the feature

Now you are in the Google Calendar mode, the supported commands will have real-time effects on your log-in Google Calendar. The supported commands are:
add / edit /delete/clear /addReminder / deleteReminder/ postponeReminder
For those events in local before initialization, this feature does NOT push them to Google Calendar. Editing those events only in local database will have an error.

Warning

No concurrent usage of the same account

Your Google Account used for this app should only be you. We do not support multiple people using the same account. Examples of possible problems:

  • If more than one person is using the account, more events might showed in the calendar panel compared to the left panel.

  • The real-time effect is only for local commands, commands entered from anywhere else (except the app you are using right now) are not captured in your app. However, they will affect your Google Calenar. When they type clear, the events on your Google Calendar will be cleared. Your local database is not affected.

Warning

No using of multiple accounts

This is not supported. Switching of account is also not supported. For the advanced user, if you do want to switch, please close the app and delete the StoredCredential file in the token folder. However, the behaviour is not guaranteed. A more user-friendly command will be supported in v2.0.

Warning

No Commands Shall be executed on Event(s) already passed (before current time)

Due to Google’s optimization, effect of commands on such events is not guaranteed. It may or may not be executed.

ℹ️

Possible different implementation of our app and Google

Note that this version is still v1.4 and we are not able to fully understand the implementation of Google Calendar on their side.
Some failure/exception caused by Google Calendar will cause the local command to fail as well. We can only guarantee the command sent from the app is the same as intended. However, we are not able to guarantee how Google interprets the command, and how they implement the behaviour of the command. It is expected to see different behaviours. That being said, we have tried as much as possible to ensure similar behaviour.

Below is an example of a different implementation.
- For interpretation on 'repeat until' date, various commands such as add and edit on repeated events might have different results on Google Calendar.

  • For an event across different days. Locally, it is shown as one item. Google’s way of showing it might seem like multiple items because the start time and end time is not shown.

Local Display:

localDisplay

Google Display:

googleDisplay
ℹ️

Disclaimer

  • Event Description feature is partially depreciated in this version. The description is not shown in the app.

  • Tag is not supported for syc with Google in this verion, will be supported in v2.0.

  • For auto-refreshing of the webpage on the right panel, its behaviour is not guaranteed because it much depends on your local set up. It may or may not auto-refresh. Also, When you do not see the expected outcome, please ensure your webpage is refreshed.

ℹ️

Poor internet condition

No effects are on Google Calendar, only local effects. Depends on your internet quality, the command might not work as intended. Special locations such as school, dormitory and hotel, its firewall might affect our app. However, due to the complex Internet environment, we might not able to capture all internet connection problem.

For captured error, it is reported as “Internet Error/Status File Does Not Exist.” OR `"Only local changes`" OR “no effects on your Google Calendar” OR "Unable to retrieve" OR their combinations.

Please try your command again when the quality improves. or use postGCEvents Command to post local effects to Google Calendar.

3.20. Post Events to Google Calendar : postGCEvents [coming in v2.0]

Posts the events from your local database and merge your local events with Google Calendar events (login is required).

This command is used to syc with Google Calendar, after your are offline and back online.
Note that when you are offline, commands will only have effects locally, no effect on Google Calendar online.

Format: postGCEvents

3.21. Auto-Completion of Commands

As you may have already noticed, our GUI supports auto-completion which suggests possible commands when you type certain (or certain combinations of) alphabetical characters.

Note: It even works for command aliases!

3.22. Command Aliasing

As you may have also already noticed, most commands support aliases

3.23. Case-Insensitive Invoking of Commands [coming in v2.0]

Commands can be invoked in case-insensitive format. For example, typing hElP can invoke the help command.
Only applicable to these commands: add, clear, delete, edit, exit, find, help, history, list, redo, select and undo

3.24. Encrypting data files [coming in v2.0]

{explain how the user can enable/disable data encryption}

4. FAQ

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 iScheduler folder.

5. Command Summary

  • Add event add event n/EVENT_NAME [s/EVENT_START_DATE_TIME] [e/EVENT_END_DATE_TIME] [d/DESCRIPTION] [v/VENUE] [rt/REPEAT_TYPE] [ru/REPEAT_UNTIL_DATETIME] [t/TAG]…
    e.g. add n/Study With Yoko s/tomorrow at 3pm d/Study again and again rt/monthly t/ad-hoc

  • Edit event edit INDEX [n/EVENT_NAME] [s/START_DATETIME] [e/END_DATETIME] [d/DESCRIPTION] [v/VENUE] [rt/REPEAT_TYPE] [ru/REPEAT_UNTIL_DAETIME] [t/TAG] [-a | -u]…​
    e.g. edit 1 n/Study with John d/Study for Mathematics exam

  • Find event add event KEYWORD [MORE_KEYWORDS]
    e.g. Find exam

  • List event list event [t/tag] or [d/date=today]
    e.g. list exam

  • Add tag add tag [TAG_NAME]
    e.g. addtag exam

  • Delete tag delete tag [TAG_NAME]
    e.g. deletetag exam

  • List tag list all tags stored in scheduler
    e.g. listtag

  • Clear : clear

  • Delete event : delete INDEX [-a | -u]
    e.g. delete 3 -a

  • Add reminders : addReminder INDEX [re/REMINDER_TIME]…​ [-a | -u]
    e.g. addReminder 1 re/30m re/1h -a

  • Delete reminders : deleteReminder INDEX [re/REMINDER_TIME]…​ [-a | -u]
    e.g. deleteReminder 2 re/30m re/1h

  • Postpone reminders : postponeReminder INDEX [re/REMINDER_TIME] [-a | -u]
    e.g. postponeReminder 3 re/30m -u

  • Help : help

  • Select : select INDEX
    e.g.select 2

  • History : history

  • Undo : undo

  • Redo : redo