How to post calendar event to participant's specific calendar - google-calendar-api

I am working Calendar API (Java).
My specific requirement is I want to add participant to event and at the same time want to specify the participants calendar.
Let us say I have 2 users. User-A and User-B
User-A is creating calendar event and adding User-B as participant
User-A's calendar is Cal-A and User-B's calendar is Cal-B.
Now when User-A adds User-B as participant, an event is created in User-B's calendar but is created in his/her static calendar. Is there is a way, how I can specify (using java api) that the invitation/ event created by User-B should go into User-B's Calendar-B?
Note: in the applicaiton program, I have access to both User-A' calendar and User-B's calendar.
Thanks in advance.

I believe the short answer is no...
Google Calendar, regardless of the API or the language you use, is based on the iCalendar standard, which, from my readings of it, does not have the concept of "Invite a participant and post event invitation on this specific calendar of that participant." If I'm wrong, the quickest way to get your answer and prove me wrong is to find evidence of such a feature in the iCalendar documentation.
I thought I had a workaround, which is "Hey, if you have access to person-B's calendar, why not just create the event on their calendar and add person-A as an attendee?" I did this by sharing one of my sub-calendars of one of my Google Calendar accounts with another. But sure enough, you get the same problem in reverse. Now person-B has the event in the right place, but person-A has it on their default calendar.
So depending on which is your "primary" account, you may want to go that route, but I'm guessing you find that about as appealing as what you're dealing with already.
The only other workaround I found (which was not all that great), is you can access Person-B's calendar and copy the invite to another calendar (the one you want), and then delete it from the main calendar. This will work (I tried it), but obviously it's not as graceful as what you had in mind. If you need specifics on how to copy/delete or how to access a specific non-default calendar, let me know and I'll post some examples.

It is possible (even if the solution isn't nice). If the person knows the ID of your other calendar (which is a valid email address), he can send the invitation to the email address. The ID can be found in the settings of the calendar and has the form ...#group.calendar.google.com.
Have a look at my other answer at a similar question for a list of drawbacks of this solution.

Related

Sending custom event data to Google Analytics

I need to track events in Google Analytics from a server through the Measurement Protocol. I can do this just fine, but my problem is that I want to send additional/custom data along with the event. Specifically, I want to send a UUID along with the event so that it is possible for me to fetch data from the Google Analytics API in the future and correlate events with rows in a relational database.
Is there any decent way to send custom data along with events? I looked at using the event value, but it must be an integer, and it is not intended for things like this. The event category, action, and label are reserved for other purposes.
I am not that proficient in Google Analytics, so the solutions off the top of my head would be:
Send an additional event containing the UUID in the event label or something like that. Seems like a bit of a hack/workaround to send two events, with one being used exclusively behind the scenes.
Perhaps using a custom dimension or metric. I am not 100% sure about the implications of this and if that's a decent approach or not.
So basically my question is: what would be the best way for me to send a UUID along with a Google Analytics event from a server, taking into consideration that I cannot use the event category, action, and label for the current event? Is there any other way in which I could link events retrieved from the Google Analytics API to rows in a database?
So let's say I trigger a "Completed Order" event to GA, and I also have orders in a MySQL database. So what I want to do, is to link an event to an order row in the database.
There are several things that you can do and it pretty much depends on what you want to do with the information you are storing. For starters, all your requests should include the uid field with the value being the user ID within your system. This way all Google Analytics data will be calculated on the same user. Note: this is an internal value used within Google Analytics and you won't be able to see it.
Second, I would create a custom dimension of the name user_id and store the user information in that. You will then be able to use this information within your reports to see what each user is doing. Note: it's against TOS to send user name, email, or any other PII (personally identifiable information) to Google Analytics. But you can send your internal user ID.
I have done both of these in the past and found it to work quite well.
More info on User-ID.

How to delete an Analytics Event from Firebase

How can I delete an Analytics Event from Firebase?
While I am testing I wrote some events in Firebase Analytics. Firebase by default orders all events alphabetically. So these testing events interrupts with original events.
I could arrange them by count to push all the testing events to last. But it makes difficult to find the main events since those are not alphabetically sorted.
I didn't find any options in Firebase dashboard to delete a event. Is there a way to delete the old events from firebase?
There is currently no way to delete events once they are logged into Firebase Analytics that I am aware of. However, the events will drift out of the default view (which is set to "last 30 days") as time goes on, or you can switch the time period to a shorter time. As you mentioned, you can also click a column header to sort by some other value or "add filter" to filter by an audience or user property.
You can create a new Firebase project if you want to start from scratch. It's also a fairly common practice to use one project for experimentation and validation of your analytics implementation and then to switch to your production Firebase project when everything looks good.
It is not possible to delete analytics events AFAIK, but on some views you can set up the time interval with the filter at the right-top corner to limit the listed events. In the audience set up you need to rely on typing, I am afraid.
As of 31 May 2018, there is an API for this. Doesn't delete individual events, but you should be able to use it to delete all the events collected by a particular app instance:
User Deletion API v3 (UserDeletion.userDeletionRequest)
It was introduced in this blog post and the intended purpose (user privacy) is described here (last paragraph).
Unfortunately, based on my own question, no one seems to have figured out how to get it to work :(
EDIT
Turns out that, according to Google, this API does delete events (which technically is what the OP was asking), but since the aggregate total remains visible on the Firebase console, it won't help with the OP's specific use case.
As Steve Ganem suggested the simplest thing you can do to reset the Firebase Analytics data is to register new Firebase project and that in your app. You can also keep the old project around for debugging/development.

Multiple Google Calendars, script to change calendars based on event name

I am trying to create a work around for Google not allowing anyone to add to a global calendar, so I started doing research and found eventbot, which allows me to add a meeting based on an email that I send.
Here is what I imagine, but I don't know how to work it.
I have two different global calendars
Using a QR Code and that email address eventbot gave me, the code is scanned, the type in the needed subject line, and the event is created on my personal calendar.
Here comes where I am in need of advice:
Each event will have a phrase (Sisters/Brothers), if my calendar sees the word "Sisters", it will change the default calendar from my personal to the "Sisters" Calendar, or "Brothers" same thing.
It seems like a simple enough task, I am just not familiar enough with Google to know where to start, or to put my script in my google account. I also don't know if there is an API I could use.
Has anyone else thought of this? Any ideas on where to begin?
I found something that works better for me and is a better approch, but doesn't answer my original question:
http://librariansonthefly.blogspot.com/2013/12/creating-google-calendar-appointments.html

Copy Event from One Calendar to another

I am creating an app in asp.net for Google calendar integration. When we insert a particular event to the calendar then at the same point i want to copy the same calendar event in to another calendar and i want to do the same process in a single request. So may any one please guide me for this problem. I am using google calendar version 3 for this. Thanks in advance
Is it necessary that they be two separate Calendar events? If not, you should be adding the second calendar as an attendee of the event rather than creating a copy of the event. See the events reference and look for the attendees list attribute. This can be achieved in a single API call.
If it is indeed necessary that the events are entirely separate and independent of each other, it will require two events.insert() operations, one on each calendar. However, as long as the user you are authenticating as has access to both calendars, it should be possible to batch the two operations into a single HTTP call.

can google analytics tell me http referrer for each specific goal conversion?

I have a website that allows people to create an account (that is the conversion I wish to track).
I wish to know where a specific person is coming from. I have google analytics installed and have set up the registration page as a goal, but the reporting tells me traffic sources as an aggregated pie chart. It doesn't report down to the user account level to say that 'person with email xyz' came from 'facebook' for example.
What custom variables or mark up would I need to add to GA to report at that detailed level, if that is at all possible?
Otherwise, I will just have to record the first http_referer in a cookie and stick it in a database during the registration process.
Any advice?
Firstly I must ask you, how actionable do you think it is to look at data at that granular of a level? Finding out what % of people who registered came from facebook or some other place is actionable, because it helps you do things like determine where to focus marketing efforts. But individual users? How is this actionable to you? (hint: it's not)
However, if you are still determined to know this, you should first note that it is against Google's ToS to record personally identifiable data both directly (recording the actual value in GA) or indirectly (e.g. - recording a unique id that you can use to tie to personal info stored within your own system). If this is something you don't want to risk, I suggest moving to another analytics tool that does not have this sort of thing in their ToS (e.g. Adobe SiteCatalyst, which costs money, or perhaps you may instead prefer to choose an "in-house" approach, like Piwik)
If you are still determined to follow through with this and hope not to get caught or whatever, Google Analytics doesn't record data like what info a visitor filled out in a form (like their email address) unless you populate that data in a custom field/dimension/metric/event to be sent along with the request. Usually you would populate this on the form "thank you" page (which is usually the same page you use as your goal url or goal event if you're popping and using an event for your goal). So you would populate the email address in one of those custom variables and then have it as a dimension to break down the http referrer by.

Resources