Task Reminders and Alarms

1. Reminder Implementations

There are very many apps available to manage events, tasks and reminders

As InfoQube does not have a mobile app nor does it natively manage reminders and alarms, how can it be configured to leverage other tools to achieve it ?

Let's first look at the current / probable integrations:

  1. Google Calendar Sync
  2. Google Tasks Sync
  3. Microsoft To Do Sync (planned)

The first choice "should" be using Google Tasks as it is a simple task app readily available. It however suffers from 3 major issues: (1) slow dev by Google, (2) poor repeat handling, and (3) no support for task time. Only the task date is accessible through the API

Microsoft To Do as an app is more advanced than Google Tasks and Microsoft seems more committed to improving it. However Due dates do not have a time component. One must add a separate Reminder to set a time. The API is complete and robust. InfoQube does not however currently sync with it

So we're left with Google Calendar. While at first glance, it seems like an overkill, it is quite possible to use its infrastructure to provide effective reminders.

Note that the term reminders is considered the same as notifications and as alarms. How reminders are handled, viewed, heard can vary, but the concept is something to bring your attention to.

2. Google Calendar for Reminders

Pros

  • Synchs with IQ
  • With and without a time setting
  • Extensive repeat patterns
  • Notifications: Multiple per event, both email and pop-up
  • Can receive a daily email with items on the agenda

Cons

  • Visually, the calendar is often not the best UI:

    • Tasks  (i.e. events) with a time have associated duration, which may not be pertinent
    • Tasks with no time are shown as all-day events
    • Overlapping tasks can be hard to view
    • Google calendar does however have a list view which is somewhat better
  • Repeat patterns are not perfectly suited to tasks (i.e. "water the plants" scenarios)
    Neither Google Tasks nor MS To Do have such repeat pattern for that matter. Outlook has it
  • No carry forward of uncompleted tasks

3. InfoQube Setup for Reminders

For this setup, we'll use a separate Reminder date field with an AdvanceWarning numeric field which will hold the reminder advance warning (in minutes).

Full setup has 4 steps:

  1. Google Calendar
  2. InfoQube Fields and Grid
  3. Phone Calendar (optional)
  4. Desktop Notifications

n.b.

If reminders are to be the same for all tasks, then a simpler setup is possible:

  1. Create a Google calendar (IQDueDate) and enable notifications
  2. In IQ, sync this calendar with the DueDate field

To implement this simpler setup, follow the detailed setup but omit all references to AdvanceWarning and all equations.

Google Calendar Setup

In Google Calendar:

  1. Create a new calendar, name it IQReminders
  2. In the calendar settings, add a notification of type Notification, 0 minutes before event
  3. Add a notification of type Email for all-day events for the day before, 6PM (or something suitable)
  4. If you want to receive daily email with the day's reminders, select that option (under Other notifications heading)
  5. Close settings and return to the calendar view. In the left pane, check the IQReminders calendar to show it in the calendar

Phone Calendar Setup

(Instruction are for a Samsung phone, others should be similar)  

  1. Open the Calendar app
  2. Click Synchronize Now
  3. Open the Google Calendar account and ensure that the IQReminders calendar is checked

InfoQube Setup

  1. In Tools > Manage Fields:

    1. Create a new date field named DateReminder. In General > Properties, check "in Calendar by default".
      Set the Format to Short Time (format dropdown)
    2. Create a new number field, named AdvanceWarning. In Equation > Auto-assign, enter:
      AM:[DateReminder] = CalcReminder([DueDate] , [AdvanceWarning])  

      E: [DateReminder]=.
      At the end of that section, uncheck "For row and ... treat No values as 0"

    3. Select field DueDate. In Equations > Auto-assign rules, enter:
      AME:[DateReminder] = CalcReminder([DueDate],[AdvanceWarning]).

  2. In Visual Basic Editor, select tab "This database". Add the following code:
Function CalcReminder(DueDate,Advance)

  dim d
  if isNull(Advance) or isNull(DueDate) then
    d = null
  else
    if DueDate=int(DueDate) then ' case no time
      d = DueDate - 6/24. ' if no time, set warning the previous day at 18h00
    else
      d = DueDate - (Advance / 60. / 24)
    end if
  end if
  CalcReminder = d

End Function
  1. Click Validate. If there is a typo, a warning message will point to where the issue is. Click Save and Close
  2. In Google Connect:
    • Connect to Google if not already connected. Details here
    • Click on the Refresh icon
    • Select the IQCalendar item in the list
    • Click the >> button to set the options for this calendar
    • Set the Sync type to "Full"
    • Set the date field to DateReminder
  3. Create a new grid, name it ToDo. It will automatically use field ToDo. Another grid name can be used, but then manually set the source to field ToDo
  4. In this grid, add columns Todo, DueDate, AdvanceWarning, DateReminder and Done

Desktop Notifications Setup

  • In your browser, enabled desktop notifications block exception for https://calendar.google.com/  (required browser setting if set to block notifications
  • In Windows 10 settings app > System > Notifications & actions:
    • Check "Allow notifications to play sound"
    • In app list, for your browser, allow notifications with sounds

4. Using Reminders

  • In the ToDo grid, enter items, one for each task to do
  • For each task, enter a DueDate (unless it has none)
  • For each task that needs a reminder, enter a number in the AdvancedWarning column, in minutes (i.e. 10 would give a 10 minute advance warning, 0=warning exactly at the task due date)
  • Unless AdvancedWarning is empty, the DateReminder will show the notification date / time
  • Open the Google Calendar web page and leave it open to get desktop notifications
  • If the phone setup was done, it will also receive notifications.
    On the phone, if new tasks are created under the IQReminder calendar, these will appear appear in InfoQube (if grid source includes DateReminder)
  • Desktop notifications can be delayed for 5 minutes at a time
  • Items / Tasks can be arranged in hierarchies

5. Options

  1. If you want to be able to enter tasks on your phone, change the grid source to ToDo OR DateReminder
  2. Grid can be fine-tuned to show done items for x days after done, or until done
  3. Grid allow sorting by DueDate, priority, Done, etc
  4. Grid support multiple displays, depending on the need. Details here