[APP][Pro] IcalCalendar

runely
Thu, 18 May 2023 14:29:43 +0000
Apps

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:

1. Create a new flow, or use an existing one (your choice)

2. Choose the Flow → This flow has started as the trigger in the WHEN section

3. In the AND section, add the Specific event is ongoing card from IcalCalendar

1. Click Select event... in the condition card

2. This will present you with a list of all the events synced in

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

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

get-all-events

HP19

HP23

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:

1. Choose Synchronization error occurred as the trigger

2. For the action, add a push notification or something else that will get your attention.

3. 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:

1. Make sure you have the lastest version of the app installed

2. Make sure you have updated your Homey firmware to the latest

3. Open the settings page for the app

4. Make sure the calendar URL’s you are using are working properly by copying and pasting them into a browser. They should download a .ics file

5. Scroll down to the bottom and enable Log all events (blue checkmark)

6. Click Save

7. Restart the app

8. Wait 5 minutes

9. Click Create diagnostics report on the app gear icon.

10. Copy the report id given

11. Post this report id along with the issue you open on GitHub

382 posts - 60 participants