IcalCalendar
The IcalCalendar gives Homey flow cards to trigger on your calendar events
Test tool
A separate test tool is created for you to test IcalCalendar behavior in your own console
Setup
For how to setup this app, check out the readme on the GitHub repo
Sync
- Events are fetched automatically every 15th minute and 15th second (xx:00:15, xx:15:15, xx:30:15, xx:45:15) (default, can be changed)
- The “Sync calendars” action flow card can also be used to trigger a sync (must be used to sync calendars if automatic sync is disabled)
- The following events will be fetched in to the app:
- Events not started yet where start date is within the timeframe given in the setup
- Recurring events where start date is within the timeframe given in the setup
- Events started but not finished
See a list of which events exists in the app
To see a list of synced in events, create a new flow and use the condition card Specific event is ongoing
in a flow like this:
- Create a new flow, or use an existing one (your choice)
- Choose the
Flow
→This flow has started
as the trigger in theWHEN
section - In the
AND
section, add theSpecific event is ongoing
card from IcalCalendar- Click
Select event...
in the condition card - This will present you with a list of all the events synced in
- Click
Local events
A local event is just local. They will never interact with your calendar externally!
Create local event
You can use the action card Create local event
to add a local event to one of your calendars in Homey. This local event will live and behave just as a normal event would.
When the event is finished, it will automatically be removed, just as any other event.
If you set Apply your timezone
to True, this will treat the datetimes given as UTC and your timezone difference will be added!
Delete local event by title
You can use the action card Delete local event by title
to remove any local events containing the title given.
Flow cards
Triggers
- Event starts - will trigger when any event starts
- Event starts in - will trigger when any event starts in when specified
- Event starts from calendar - will trigger when any event in specified calender starts
- Event ends - will trigger when any event ends
- Event ends in - will trigger when any event ends in when specified
- Event ends from calendar - will trigger when any event in specified calender ends
- Event changed - will trigger when any of the previously synchronized events have been changed (after sync)
- Event added - will trigger when a new event is created in one of your synced calendars
- Will trigger when these requirements are met:
- The event has the
CREATED
property - The created events start time is inside the current datetime frame beeing synced in
- The created event is created within the last 24 hours
- The event has the
- Will trigger when these requirements are met:
- Synchronization error occurred - will trigger when a synchronization error occurs with one of your calendars
Conditions
- Specific event is ongoing - will check if specified event is|isn’t ongoing
- Specific event starts within - will check if specified event starts|doesn’t start within when specified
- Specific event ends within - will check if specified event ends|doesn’t end within when specified
- Any event is ongoing - will check if any event is|isn’t ongoing
- Any event starts within - will check if any event starts|doesn’t start within when specified
- Any event ends within - will check if any event ends|doesn’t ends within when specified
- Any event ongoing in calendar - will check if any event is|isn’t ongoing in specified calendar
- Event containing … in calendar … starts within - Event containing search value in chosen calendar starts within selected time range (will fill up global tags (containing))
- Event containing … in calendar … ends within - Event containing search value in chosen calendar ends within selected time range (will fill up global tags (containing))
- Any event starts within from calendar - will check if any event starts|doesn’t start within when specified from specified calendar
- Event containing … in calendar … is ongoing - will check if an event containing value in calendar is|isn’t ongoing
- Calendar has event where property matches given value and optionally starts within … - will check if specified calendar has one or more events where given property matches|doesn’t match given value, and if amount and type is given, also check if event starts within …
Actions
- Sync calendars - will download new .ics files to update current events (events are fetched automatically, this card can be used to force a sync when you want OR if you have disabled automatic synchronization, use this card)
- Create local event - will allow you to create a local event that behaves just as a normal event, but only lives on your Homey (
event is automatically deleted when it's finished
) - Delete local event by title - will remove any local events with this title (
if several local events with this title is found, all of them will be removed!
) - Get calendars metadata - Will return a JSON representation of your calendar metadata (
advanced flow action card
) - Get calendar event - Returns tokens for given event in a given calendar (
advanced flow action card
)
HomeyScripts
Troubleshooting
IcalCalendar
requires the calendar url to be publicly available!
If you’re having trouble with an Apple iCloud calendar, check this first:
The first 2 standard Apple iCloud calendars (Home and Work) are not available to be shared by a public link but only by personal invite (via email). Only new and non-default calendars from Apple iCloud are working through the public link.
Thanks to @DoctorBazinga for finding this out ([APP][Pro] IcalCalendar - #16 by DoctorBazinga)
Problem in the synchronization of your calendars
Create a new flow:
- Choose
Synchronization error occurred
as the trigger - For the action, add a push notification or something else that will get your attention.
- Fill the action card you chose with the
error message
from the trigger card
Any other problems
If you have any other problems, feel free to open an issue on the GitHub repo
But before you do, please do the following:
- Make sure you have the lastest version of the app installed
- Make sure you have updated your Homey firmware to the latest
- Open the settings page for the app
- Scroll down to the bottom and enable
Log all events
(blue checkmark) - Click Save
- Restart the app
- Wait 5 minutes
- Click
Create diagnostics report
on the app gear icon. - Copy the report id given
- Post this report id along with the issue you open on GitHub