The task is triggered by a time based profile, every day at 11:59 pm.
Set alarm (94)
A1: For [ Variable:%count Items:2:12 ] If [ %tit1 !~ shift ]
#a for-loop with up to 11 cycles, if condition to stop the loop, once an entry with the proper title is found. Since the "Test App" action checks at a certain point in time for an entry, we have to check every hour seperatly. 1st cycle will check for an calendar event starting at 2am, 2nd cycle will check at 3am and so forth. Last cycle will check for events starting at 2pm, because i expect myself to be woken up till then without an alarm clock.
A2: Variable Set [ Name:%times To:3600*%count+%TIMES Do Maths:eek:n Append:eek:ff ]
#the "Test App" action requires the time of when to check for an entry so we prepare a variable by adding one hour in seconds, multiplied by the cycle item (2-12), to the device time. If ur calendar event duration (start to end) is less than one hour u have to double the amount of cycle items (2-24) and multiply it by 1800 in order to check for an entry every 30min.
A3: Test App [ Type:Calendar Start (Seconds) Data:%times Store Result In:%res Continue Task After Error:eek:n ]
#if an calendar event is found at %times, it will write its starting time into the array %res
A4: Test App [ Type:Calendar Title Data:%times Store Result In:%tit ]
#this will write the events title into %tit.
A5: End For
#self expaining
A6: Stop [ With Error:eek:ff Task: ] If [ %tit1 !~ Schicht ]
#the task stops, if all cycles are executed and no calendar entry is found.
A7: Variable Convert [ Name:%res1 Function:Seconds to Medium Date Time Store Result In:%dat ]
#if u dont have overlapping calendar events, %res (still an array!) will have only one entry. So we convert it into a human readable format and save it inside %dat
A8: Variable Split [ Name:%dat Splitter: Delete Base:eek:ff ]
#we want only the time and not the whole date so we split at every whitespace
A9: Variable Split [ Name:%dat4 Splitter:: Delete Base:eek:ff ]
#now we have %dat4 in the format hh:mm but the "Set Alarm" action requires the providing of hours and minutes seperatly. So we split once again, this time ofc at the ":"
A10: Variable Subtract [ Name:%dat41 Value:2 Wrap Around:0 ]
#reducing the hours by 2 to have the alarm ring 2 hours before the event starts.
A11: Set Alarm [ Hours:%dat41 Minutes:%dat42 Message: Confirm:eek:ff ]
#self explaining
Iam going make this guide more fancy (screen shots and more explaination) later.
Best regards, Chillmann