Voice Calendar

Voice Calendar Notes:

Plug-ins required:
NONE

Plug-in Compatible:
AutoVoice
These tasks below will utilize %avcomm input as native default if used in AutoVoice contexts

  • Task - Calendar Voice Check (for creating calendar entries)
  • Task - Calendar Availability Check (for checking availability)
  • Task - Calendar Event Announcer (for event checks, display, and audio feedback)
  • Task - Display Settings Main (for user options and settings)
  • Task - Display Help Screen (for quick access to help screen)
  • Task - Test Voice Input (for visual display of event details without creating an event in a calendar)

Plug-in Compatible:
Tasker App Factory

A number of users have reported the exported app runs faster than the project version

Voice Calendar (download)

IF YOU USE THE PROJECT:
I ask users leave a Google Play store review here

Complete change logs detailing updates here

SETUP:
1) Import into Tasker
2) Add Shortcut to task 'Calendar' to homescreen
3) Select added Shortcut to task 'Calendar' and follow the prompts

VALID INPUT: (All Optional)
Month(s), by name spoken, "January, February, March…"
Date(s), by numeral, spoken, "first, second, third…", or 'tomorrow'
Day(s), by name spoken, "Monday, Tuesday, next Wednesday…" even, "third Thursday of May"
Year(s), by digit, spoken, "two-thousand fifteen.." or similar.
Time(s), by hour, minute, specified time of day, and general (noon/midnight)
In addition, "one twelve" is interpreted as January 12th or December 1st based on user preference
Stating, "one twelve fifteen" is interpreted as that preference plus year, 2015

SPECIFICS:
This is intended to be the most natural Voice Calendar input recognition process ever. If at some point, the process doesn't recognize event input properly… please let me know how you think it should work naturally for you.

USAGE NOTES:

If no date or time is specified - entry created today, single event, lasting from midnight morning to midnight that night.

If input matches regex 'all day'- then an all day Calendar event is entered for the day specified.

If beginning time is specified, but no end time - entry will begin at that time and end at midnight that day.

All Calendar events will end the same day they start, EXCEPT; events using hours and/or minutes to specify end time.

  • For example, instead of saying an event lasts from 4 p.m. to 4 a.m., a user would state the event begins at 4 p.m. for 12 hours. Otherwise, the entry made will not work exactly.

Stating an event by date, i.e. the 1st, 2nd, 3rd etc without specifying a month will insert an event in the same month for any days that exceed the current day and in the following month for days falling behind the current day.

  • For example, it is January 8th, and input is, "On the 12th and 4th…", an event will be created for January 12th and February 4th.

The exception, is when a month is specified. Then all requested event dates will apply to that month only.

  • In the same example, specifying January anywhere in the input would input an event for both days in January, regardless.

If no year date is specified, and the requested month falls behind the current month - then the event will start on that month and day for the following year, not the current one.

  • For example, it is December and the request is for January. The event would be added for January next year, not the current year in January, which would be in the past.

The exception to this, is if a year is specified. Then even if it happened in the past, the event will be entered for the year specified.

It is possible to have multiple dates specified for an event entry in a single Voice input. But, not when more than one month is specified.

BASIC FEATURES:

Use Set Default End Time
Set a desired default end time (in minutes) that an event entry will end, only applies if an event start time is set

Edit Calendar Titles
Set to automatically remove input date(s) & time(s) for a concise calendar entry

EXPERIMENTAL FEATURES:

Voice Input Timeout
Alters time the voice input prompt remains active until a word is recognized

Append Voice Edit Screen
Allows user preview and editing of recognized voice
The timeout setting applies only when idle and not while editing

The following actions are available:

  • Edit - manually via text input
  • Add - append additional voice recognition to the current recognition note: if recognition fails or process crashes user will return to input edit screen with last specified value
  • Test - run a simulation of app results for event entry creation note: functions; Add, Reset, Submit, and Exit are available after performing a test. Special note: an invalid event recognition will produce test results, but if submitted with errors will result in clearing and restarting voice recognition
  • Submit - process input through application
  • Exit - exit application note: when testing 'exit' returns to input edit screen

Calendar Manual Entry Screen
Allows user to add description and location to created event
The timeout default action is Submit and time is based on Append Voice Timeout if set. Else, the default time used is 5 seconds.

This is displayed after the resulting event calculations and the following actions are available:

  • Submit - create the entry with displayed values note: long-press 'Submit' to 'Share' an event
  • Reset - erase current voice input and completely start over
  • Obtain Current Address (icon in location field) - uses a devices GPS to determine location coordinates, which results in a determined street address for the user and auto-fills the field with the determined value note: GPS can be inaccurate indoors, as result a user notice appears next to the location field title indicating the current radius of accuracy Special note: long pressing the icon terminates the Obtain Current Address function if taking too long, the function will terminate itself if no location can be determined in 2 minutes. The user will be notified of any resulting errors in the location field.
  • Retry Event Entry Recognition - if for some reason the Event start or end is recognized correctly, but not calculated correctly (often by a fixed offset in minutes to the next hour) that means unfortunately the device did not return a value for the current time in minutes (android bug - reproducible on some devices in the first thirty seconds on the 27 minute mark of the hour) but if you should experience this at any time and notice the event start or end doesn't match what you want long press the header or footer and the app will retry event entry and end calculations for the current input.

Append Voice Edit Default Action
Run a desired action after a specified idle editing timeout is reached

Default Share Method

  • None Set/Disabled - User will be prompted for desired share method when function is accessed
  • SMS - Share method always SMS. User share method prompt disabled
  • email - Share method always email. User share method prompt disabled

RESULTS IN ERROR:

  • Multiple start times for an event in a day
  • Multiple months specified at input
  • End time in addition to a specification by hour and/or minute event ending

Any error resulting in unsuccessful completion and insertion of calendar event should notify the user of the specific error, and reset the entire project for next entry attempt.

SPECIAL CREDITS:

Pent
Developer of Tasker

Jeremy Harris
Dedicated Beta-tester
For your tireless testing efforts that have identified numerous issues within the project and discrepancies across various platforms. Thank you always for your time and communication.

Nooper Dad
For reminding me, "we colonials" in America recognize date and month backwards from a majority of the world
Thank you sir ;-)

Robert (Bob) Hanson
For providing an example use of an undocumented code character, that turned out to be essential to the apps time recognition feature

LIMITATIONS:
Specified minutes to start.

  • For example, it is 9:51am, an event starts at 11am. If you said the event starts in 1 hour and 9 minutes, the process will only recognize input of the hour timeframe, and not the minutes. Actually, the minutes would be recognized, but added to the end time for the event in error. It is the only limitation of the project. In this example, to start at 11am a user would say, "at eleven a.m.".

BASIS OF PROJECT:

Android translates all Calendar entries into a simple calculation of, "the event starts in 'x' minutes / for 'y' minutes".
Based on that, all input is translated to a calculation in minutes.

The project starts by defining the current date, and recognizing an input month. Based on if that value is specified, it is quantified. A task then calculates the bases for determining any days that fall between the current and specified date. That time is then calculated into minutes.

Next, the project calculates minutes after midnight for the current day; if a timeframe is specified in the input. This negative value is defaulted as event start for a baseline start at midnight.

The project continues to calculate minutes specified for start time, and this value is added to start. Calculations continue for determined end time, and the start time recently added is subtracted from this value (if a static timeframe is specified, otherwise there is no need to deduct from the start time value).

The end result, is a calendar event that starts in 'x' minutes, for 'y' minutes.

Voice Calendar (download)

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License