Skip to content

ICalScheduler

Supported data types

This is a read only plugin. Events can only be read from this plugin and written to another one. Only the event name is read in by the plugin.

  • bool
  • int
  • double
  • string
Data typeBOOLINTFLOATSTRING
ICalScheduler::bool
ICalScheduler::int
ICalScheduler::float
ICalScheduler::string

A mapping (only from the icalscheduler plugin to another plugin) can have any datatype assigned to it. Each has a different meaning.

where

bool

On event start true is send, false on event end

int

On event start a 1 is sent, 0 on event end

float

On event start a 1.0 is sent, 0.0 on event end

string

The event name is passed through as the value of the message (Note that in this case the start and end trigger will have the same value)

In the mapping, the address name must match the event name in the calendar.
This must be a full match, but the address may contain regex.
e.g.: the address .*trigger.* will match the event description that triggers an event.
If you’re only interested in the start or end date & time, you can postfix with -start or -end respectively.

e.g.:

settings.yml
mappings:
- name: send a boolean event on both start and times of the event
from:
name: cal
type: bool
address: bool1
to:
name: websock
type: bool
address: event_bool1_active_state
- name: send the event string as value only on start
from:
name: cal
type: string
address: cue1-start
to:
name: websock
type: string
address: cue_trigger

Configuration options

The minimal device config when using the default options would be:

settings.yml
devices:
- type: icalscheduler
name: cal
options:
scan_rate: 60
url: https://calendar.google.com/calendar/ical/id/private-id/basic.ics
email: user@gmail.com

where

type

is always “icalscheduler” as this is the name of this plugin.

name

unique arbitrary name.

options/scan_rate

this is the scan rate for which the ical file / url is read and processed, in minutes and should be an integer. Default: 60, minimum 5

options/url

the url can be either a web url, or an absolute local file path

options/email

processing google calendar invitations requires that the email address associated with the calendar is set

NOTE

Events that are deleted from the calendar within the time window as set by the scan_rate will not be deleted from the scheduler and remain active and scheduled for execution.

NOTE

Events are only processed if they’re state is busy / accepted. Pending, free, out of office or declined / cancelled invitations will be ignored. For invitations to be processed correctly on Google calendars, the email option must be set. This is the email address associated with the calendar.