[Android Apps and Games] faku1810:
Good to hear :highfive: I never used the Drive app so i didn't know that, maybe the option is there, hidden somewhere lol but I'm glad you could work it out.

[MENTION=5284566]abledan[/MENTION] So, i came back to this, and damn it was dangerous (because of my own sillyness.. I deleted the sqlite libraries from the phone and rebooted, getting a nice soft-brick, and had to go through hell and back just to push back the files and set the right permissions). However it's kinda offtopic so I'll leave it between hidden tags. So I decided to use Utter's plugin to do this, so it's no longer so Offtopic.. lol :p Explanation hidden, the tasker profile + task is at the bottom. I still have to test with more than one event on the same day and to see how I would go with sending an e-mail instead if the number isn't available but the e-mail is. As far as my testing goes, CALTITLE will take only the first event on that day, and ignore anything else, I'll now try to add two events on the same day and reboot to see if the app sends two notifications, triggering the task for each, though i doubt it. Added some info on how to go with the e-mail, and i've done all the testing i could, it will only work with the first event on the list.

As far as I could tell, there's no way to use the %CALTITLE variable as trigger in a Profile using Status/Variable Value (I'd appreciate someone could explain me why is that), so that leaves with the Notification trigger, though i don't like it that way. Nevermind, i did find that Calendar entry was in State/App.

Then in the task, you can easily use Split Variable to get the Name and the Event. And use a Say action to say the message as I said before, however I have yet to test how it behaves if there's more than one event in the same day, or if it reads the events on all the calendars (birthdays may repeat in google calendar and the Birthdays of Contacts calendar); So for example, if the event shows as "Contact. Birthday" You can split with the "." as separator, and get %CALTITLE1 (Name) and %CALTITLE2 (Event).

However the hardest part, as I thought, was composing the SMS (there's a Send SMS action too, which you would prefer, however i'm using Compose for testing purposes, I'll asume they both work the same way) and it requires the number to be added, not the name. Therefore it would be necessary to use sqlite3 or some other kind of database managing to get the number using the name variable, and then saving it to another variable to use in the SMS action.

As I stated at the beginning, I tried doing this with no result for some reason and in my inquiries i accidently soft-bricked my phone, so i'll try again later now that i know what i MUSTN'T delete lol. It would be really useful to have such a tasker profile, so i'll try my best to figure it out :fingers-crossed:

Update: I copied this Sqlite3 (for JB and above) to my xbin folder, and so the console command now works as a charm. This is how i have it setup on Tasker.

Update 2: You can add a couple more of actions if you want to send an email, just use the same console command with "SELECT data email FROM view_v1_contact_methods .... AND type=1 LIMIT 1;" to send an email to the home adress. You could skip that last AND bit, if you want to send an e-mail to each account. However, i've only seen a Compose E-mail, so you'd still have to send it on your own, perhaps? haven't tried it though.

Profile = State / App / Calendar Entry (Everything blank, using My Calendar [Since it stores the birthdays as "Contact. Birthday"])

Task=Event Handler

A1 = Split Variable (%CALTITLE, ".", Delete base = No)

A2 = Utter plugin ("It's %CALTITLE1's %CALTITLE2. Wish them a Happy %CALTITLE2", Speak, Start listening = No*)

A3 = Run Console (sqlite3 /data/data/com.android.providers.contacts/contacts2.db "SELECT number FROM view_v1_phones WHERE name='%CALTITLE1' AND type=2 LIMIT 1;", Root = Yes, Save output = %number)

A4 = IF = %number is set

A5 = Send SMS (%number, Happy birthday to you!! Hope you have a great day, my best wishes to you.)

A6 = ELSE

A7 = Wait 3 seconds [This is done so it can end the first message before saying this]

A7 = Utter plugin ("You don't have their number on your contact list, contact them on your own", Speak, Start listening = No**)

And that's it. * You can make it start listening if you want to issue something else, ** Here it would be possible to make it listen so you can post to Facebook or something.

Now, my ideas to implement this for now (I do hope Ben can make it so we can modify the settings through tasker) allow us to automate things to a certain degree...

Task A - To enable recognition everytime you turn the Screen on. I'd rather use "On screen Unlock",otherwise it gets irritating.

Profile Event Screen On (Highest priority)

Task = Utter Salutes

A1 ) Utter Plugin ("Can I help you?", Start listening = Yes)

[Optional - Because i don't use Google Recognition which plays a beep]

A2) Wait 2 seconds

A3) Play Sound (Ringer, Beep Once)

Task B - To enable permanent recognition without moving a finger, only at certain times (Can be annoying as well)

Profile Event Alarm triggered / Status Hardware Dock

Task = Utter Perm recognition

A1 ) Utter Plugin ("Good morning", Start listening = Yes) // If it's in the dock, maybe something like "Hey there" would be better.

A2 ) Wait 2 seconds

A3 ) Say ("I'm Ready to go", default:default, System stream, Volume: 10, Speed: 5) // Yeah, i know it's funny to make your phone talk to itself, but at least i tried to make it a single sentence splitted. This implies to replace the phrase for Start listening in Utter, so feel free to choose anything that works*. I've only tested this on Spanish (for some reason the plugin wouldn't recognize anything else) and it worked.

*Remember to use something that you wouldn't use in any other context like texting.

To disable the permanent recognition would be tricky, as it's possible to just use Task B with a different set of words (Example "I'm sleepy now", "Goodnight"), the main difficult would be to choose all the Profiles that should trigger it, so for now, I'd suggest you live with the fact you need to tell them to go to sleep.

Or , if you want to try something...

Task C & D - To disable permanent recognition after a while, in this case is neccesary to use Say instead of Utter because (i think) it can't listen and talk at the same time. You can combine Tasks D and B if you add a Profile E - Notification Utter! -> Task Perm Active A1) Set Variable %UtterUP to 1 if %NTITLE ~ utter! Wake-up active [Case is important here] ; then you can use if %UtterUP is Set do Task D, else to Task B, and add a Clean variable to Task D. In theory it works, i'm still trying to figure how and when the Notification triggers the tasks..

Profile C - Notification Utter! (Title= I'm listening)

Task = Last Utter-ing

A1) Set Variable %UTSLEEP to %TIMES + 900, Calculate = Yes // This is an example, it will set the turn off time to 15 minutes after the last time you called Utter, I use time in seconds because it's easier.

Profile D - Status Variable Value %UTSLEEP ~ %TIMES

Task = Utter Sleep

A1 ) Say ("Wake Up", default:default, System stream, Volume: 10, Speed: 5))

A2 ) Wait 2 seconds

A3 ) Say ("Goodnight then", default:default, System stream, Volume: 10, Speed: 5) // Again, choose what suits you better and replace it on Utter!, just try not to use something too common.

A4 ) Clean variable %UtterUP [Optional, if you used it]