Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Alerts

Summary

An OVOS skill that manages alarms, timers, reminders, events, and todos, with optional sync to a CalDAV service.

Description

The skill creates alarms, timers, reminders, and todo lists. You can remove them by name, time, or type, and ask what is active. If you turn on sync with a DAV server, you can also reach your reminders and todo lists from other devices.

Alarms and reminders can recur daily or weekly. You can snooze an active alert for a set amount of time while it plays. Any alert you do not acknowledge goes on a list of missed alerts, which you can read and clear on request.

If you were away, or your device was off or napping, ask for a summary of what you missed. The number of missed notifications shows in the upper left corner of the home screen.

Distinction between reminder, event, and todo

Events Appointments, gigs, and other items that may (but do not have to) have a start and end time. The skill warns you if an event collides with another one. You can add a prenotification in advance.

Reminders Less formal dates with only a start time. (You can still set a repeating reminder with an endpoint, for example "remind me to take out the trash every day at 7pm until next saturday".)

Todos Items not tied to a time, for short-term memory of things to do. You can organize todos into lists, for example a shopping list.

Alert is the general term that covers all of the types above.


Scenarios

Keywords are underlined, alert names are italic. If you do not name an alert (like bread timer, tennis event), the name defaults to the time it is set for (for example 8 AM alarm, 2 minute timer).

Alarms, Timers, Reminders, Events

One time alarms, timers, reminders, or events:

  • "Set an alarm for 8 AM."
  • "Set a bread timer for 30 minutes."
  • "Schedule a tennis event for 2 PM on friday spanning 2 hours." ... (you can add a prenotification in advance for events)

HINT: A timer started without a time acts as a stop timer, counting up from now. To stop it and hear the elapsed time, say "Timer stop".

Recurring alarms, reminders, or events:

  • "Set a daily alarm for 8 AM."
  • "Set an alarm for 8 AM on saturdays."
  • "remind me to take out the trash every Thursday and Sunday at 7 PM."

OCP Alarm: (An alarm that triggers the media player; depends on the OCP capabilities of your device or serving instance)

  • "wake me up at 8 AM with music." (in general: "... with {media type}") -> the skill asks which media title to play, then looks it up in the media library
  • "wake me with music." (sets media on an already created alarm; the skill picks the next alarm)

Reschedule an existing alarm, timer, reminder, or event: (by duration or fixed time)

  • "Reschedule my 8 AM alarm at 9 AM."
  • "Push the tennis event by one hour."
  • "Move my next event one hour earlier."
  • "Extend the bread timer by 2 minutes." (or: Extend the bread timer until 10 am)
  • "Change the 8 AM alarm recurring only mondays and tuesdays."
  • "Change tennis event length to 3 hours."

HINT: If you reschedule the time of a recurring alarm, the skill asks whether the change applies to all occurrences or just the next one.

Query:

  • "When is my next alarm?"
  • "Which reminders are scheduled today?"
  • "Are there any events between friday and sunday?" (also: "between friday 10am and 3 pm") running timer
  • "How much time is left on my bread timer?"

Cancel:

  • specific type/name: "Cancel my 8 AM alarm." (in general: "cancel my {name} {type}")
  • all / of a type: "Cancel all alerts." / "Cancel all alarms."
  • on a specific day: "Cancel alerts on saturday."
  • in a time period: "Cancel alerts between Friday 8 AM and 10 AM."
  • next: "Cancel my next alarm."

CAUTION: Double check before you "cancel all", especially with DAV active, because it drops all reminders and events.

Active alert (expired and currently speaking or playing):

  • dismiss: "Stop alert."
  • snooze: "Snooze." (default snooze is 15 minutes)
  • duration: "Snooze for 1 minute." / "Snooze until 8 AM."

HINT: You can also snooze an active reminder or timer with "remind me again at 10 AM." or "extend by 2 minutes". Do not name the alert in this case. The skill always treats active alerts as directly editable.

Missed alerts (expired and not acknowledged):

  • "Which alert did i miss?"
  • "Missed any alerts?"

Todo

  • walk the dog
  • shopping
    • milk
    • toast

(If you use Nextcloud as the DAV server, turn on the "Tasks" plugin application.)

Create:

  • "Remind me to walk the dog"
  • "create a shopping list" (you can populate the list afterward)

Sublist:

  • "add items to the shopping list" -> set the items one by one: for example milk pling toast pling ... (silence stops recording) (the skill shows or voices the list in advance)

Complete todos:

  • "scratch milk entry from the shopping list"
  • Optionally remove one or more items; the skill shows or voices the list: "remove item(s) from the shopping list"
  • Remove all items on the shopping list
  • Remove shopping list the same commands work for non-list todos:
  • "remove walk the dog note"
  • "remove todo entr(y/ies)"
  • "remove all memos"

(with DAV active, the server marks the item as complete)

Query:

  • list names : "which lists are stored?" ... "shopping"
  • list items : "which items are on the shopping list?" ... "milk and toast"
  • todo items : "Anything todo?" ... "i should remind you to walk the dog"

DAV

Calendar names:

  • which calendars are available?

Sync: (runs automatically every x minutes by default; you can also trigger it manually)

  • synchronize calendars

Settings

(this is the default)

{
    "speak_alarm": false,                              # if the alarm should be spoken
    "speak_timer": true,                               # if the timer should be spoken
    "sound_alarm": "<path/to/soundfile>",              # default constant_beep.mp3
    "sound_timer": "<path/to/soundfile>",              # default beep4.mp3
    "snooze_mins": 15,                                 # default snooze time if duration/time is not specified
    "timeout_min": 1,                                  # the duration the user is notified, after which the alert is considered missed
                                                       # (doesn't apply to media -radio/video/..- alarms)
    "play_volume": 90,                                 # volume of the alert sound
    "escalate_volume": true,                           # alarms only - raise volume over time (10% steps, dependent on timeout_min;
                                                       #                                       half the time on max volume = `play_volume`)
    "priority_cutoff": 8
    ...
}

See DAV settings below.

Setting up a DAV connection

(tested with NextCloud)

For now, you must edit the credential file by hand; this will change in the future. When the skill starts, it creates a template file at ~/.local/share/mycroft/filesystem/skills/<skillname>/dav_credentials.json.

{
    "<service>": {
        "url": "https://<ip:port>/remote.php/dav",
        "username": "...",
        "password": "...",
        "ssl_verify_cert": "..."                       # if SSL is set up, otherwise delete this line
    },
    "<another service>": ...
}

First set up the credentials, then fill in the matching parts of the skill settings file settings.json. The skill reloads its settings and starts the repeating sync event (every frequency seconds).

{
    ...,
    "services": "<service>,<another service>",         # comma separated string of services
    "frequency": 15,                                   # the number of minutes between syncronisation; default 15
    "sync_ask": false                                  # If it should be asked if a generated reminder/todo element should be synchronized
}

The skill fetches DAV calendar dates one year in advance. You can set up multiple calendars on the server; the skill asks which one to sync to. Connection errors are voiced; check the skill log for details.

Only events, reminders, and todos sync. Alarms and timers do not sync. Check the timezone on your server and events, because the skill sometimes reads the timezone wrong and schedules the alert incorrectly.

Known Bugs / Troubleshooting

This skill targets ovos-core >= 0.0.8 and its dependencies. On an older version, you might run into major problems; please update. The skill is tested mainly in German and, to a lesser extent, English, and might miss some individual speech patterns. Other languages are autotranslated and need review. During the alpha phase, contributions are welcome to build a well balanced experience across languages.

  • The skill does not understand or misreads what I am saying. Check the logs for the intent that fired and the utterance that was transcribed. STT might have gotten the words wrong. Try a different service (a known issue especially with non-English speakers using Whisper).
  • The notification system does not work properly. Missed alerts do not show. Notifications sometimes get mixed up; this is a known issue and work is in progress. Use the latest ovos-gui-plugin-shell-companion (#) and remove the old ovos-PHAL-plugin-notification-widgets.
  • When you populate a list, the last item is followed by an "unknown" utterance. This is a known issue that a future release will fix. It comes from how the skill handles input in a response context. It is not critical and you can ignore it; the list still populates correctly most of the time.

Recommended Versions

These are not hard requirements, since preferences vary, but recommended. GUI: skill-ovos-homescreen >= 0.0.3a6 (see also this pending PR)

Incompatible Skills

This skill has known intent collisions with, and replaces:

Remove these skills before you install this one.

Contributing Translations

Most of the skill is autotranslated, except for English and German, and needs review. As the examples above show, the skill uses Adapt keywords to determine intent. The vocabulary keywords should include a variety of synonym nouns and verbs to cover a wide range of speech patterns.

The skill parses dates and names either as a leftover (a non-keyword word) or as the word that follows a keyword (for example until.voc in "until 6 AM"). noise_words.voc lists words to ignore when parsing a reminder name (for example "remind me to take out the trash" -> take out trash). Dialogs are mostly straightforward and should include the correct mustache tags from the start. Keep these patterns in mind.

To contribute a translation, check the vocab folder and add the files for your language. This needs a basic understanding of the intent structure and what it does.

require("query").one_of("alarm", "reminder", "event", "alert", "remind").optionally("and").optionally("stored")  # <- vocab

For questions, contact @sgee_ in Matrix chat.

Contact Support

Use this link (Matrix Chat) or submit an issue on GitHub.

Related Projects

License

BSD-3-Clause

Credits

NeonGeckoCom NeonDaniel

Category

Productivity Daily

Tags

#OVOS #OpenVoiceOS #alert #alarm #timer #reminder #schedule

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ovos_skill_alerts-0.3.0a1.tar.gz (716.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ovos_skill_alerts-0.3.0a1-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

Details for the file ovos_skill_alerts-0.3.0a1.tar.gz.

File metadata

  • Download URL: ovos_skill_alerts-0.3.0a1.tar.gz
  • Upload date:
  • Size: 716.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for ovos_skill_alerts-0.3.0a1.tar.gz
Algorithm Hash digest
SHA256 63c760a1f890940ba7eaf6f98e21d997f9853447e940337824ba1ba64f91c2fc
MD5 6fb3c7a8c3b61ddb7672aa17e99851fc
BLAKE2b-256 c057a78e3963122e6280eeaf2e3aba24f0abb16f1c6fdd09bad9c00c0e555f33

See more details on using hashes here.

File details

Details for the file ovos_skill_alerts-0.3.0a1-py3-none-any.whl.

File metadata

File hashes

Hashes for ovos_skill_alerts-0.3.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 fb35787dc9cf7fc6e4e1e4f981231ee51593c7e837c384b79a5090d45dc95914
MD5 814a371ea22908acc0e84f6f54682944
BLAKE2b-256 68b97296973b0ef264bb136c31d6fa2eb589365db60dca55b91966bc3ba70d88

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.3.0a1 This release

2 files

0.1.28

2 files

0.1.27

2 files

0.1.26

2 files

0.1.25

2 files

0.1.24

2 files

0.1.23

2 files

0.1.22

2 files

0.1.21

2 files

0.1.20

2 files

0.1.19

2 files

0.1.17

2 files

0.1.15

2 files

0.1.14

2 files

0.1.13

2 files

0.1.12

2 files

0.1.11

2 files

0.1.10

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.3

2 files

0.0.1

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page