Google CalDAV: access to shared calendars - google-calendar-api

Suppose I have been granted access to some other user's calendar. I can successfully view that calendar in the Google Calendar web UI under "Other Calendars".
Can that calendar be accessed via CalDAV? If so, how?
My CalDAV client starts looking at https://apidata.googleusercontent.com/caldav/v2 and authenticates via OAuth2. It follows the current-user-principal URL and from there to the calendar-home-set. In the calendar-home-set resource collection are the main calendar of the user and some virtual calendars (birthday/anniversaries of contacts, public holidays) but not the shared calendar.

You need to go to the syncselect page and choose the calendars you want synced through CalDAV: https://www.google.com/calendar/syncselect

It sounds like you have only read access to the calendar, and you should be able to access it directly via a GET with the URL found under "Other Calendars-> CALNAME -> Calendar Settings" click on the ICAL button (it contains the URL).
The URL will probably be something like: https://www.google.com/calendar/ical/foo.bar.com.calendar.google.com/public/basic.ics
If you are actually asking whether those calendars show up in the CalDAV "collection" of calendars, then I believe (without 100% certainty) that the answer is: No, they do not.

Related

Can I trigger google analytics events for a user from different environments?

We are trying to have a full view of user journeys through the web application we are developing. In the middle of the journey, there's no problem because it's more or less a traditional web application, but the beginnings and the end are not usual.
The journey begins with us sending email to the customers (don't worry, it's not spam). Is it possible to send events to Google Analytics about email being sent? I can include the UserID in those events. If I then implement user id in my web application, would I be able to correlate emails send to website visits?
At the other end of the journey, the conversions don't happen by the user that's being coverted but by a manager manually marking the user as converted in a sort-of admin-side to the web application. Can I then again inject the event that the user was converted with the appropriate UserID? Will Google Analytics then be able to map the whole journey? Do I need anything else?
The goal is for those events to end up mapped in the charts that look like this:
You'll need to do what you're asking in a CRM.
That said, I think what you CAN do is use campaign tracking and track the links in the email sent to the users. This way you'd know if they've acted on the emails or not.
Then you'd be able to track them on your site when they interact with the email. If there are CTAs on your site for the users to contact a manager to be converted, then you can track those as events, then set up goals around these events to see conversions.

Google Calendar: limit API access to a single calendar?

I'd like for my app to add/delete/update events on a user's Google Calendar. The app only needs to delete and update events that the app itself has added.
Have I understood it correctly, that in order for this to work, the users have to give the app full access to their Google Calendars, meaning that the app could potentially read and delete private events on any calendar?
Or, is there a way to limit the access that a user gives to the app, for example, allowing the app to create a single calendar and only giving it access to events on that one calendar?
I've read through the relevant Google Calendar API, and I'm not seeing that this is possible. However, giving full access seems crazy and unnecessary!
It seems that this isn't possible. Google, why!?
What I ended up doing was skipping the API and using a calendar subscription. Limited use since the user needs to be able to set up a subscription and, especially, because Google takes up to a day to update subscribed calendars.

allow everyone(public) to create event in google calendar

I am designing web application for society management,
where i am trying to give event creation functionality through google calendar.
Other members are not able to create event in the calendar. I searched a lot but I am getting only one solution i.e. to invite
through gmail or to manually add gmail accounts and give permission. But i want make this calendar public everyone can
create event through it. Is this possible? if yes How?

How to find ownership of a Google Calendar

Some time ago, I created a Google Calendar at calendar.google.com using Chrome Browser, and made it public. This was a calendar in addition to the default calendar provided with every Google identity - let's call it calendarX. I then sync'd calendarX with my Thunderbird (Lightning) client, and am still using it today with Thunderbird, to create & view events.
I now need to know the address of calendarX, so that I can share the link with others. So I logged into calendar.google.com with (what I thought were) the credentials of the calendar owner - but calendarX is missing, no reference to it at all.
So maybe I used some other Google identity to create the calendar?
The only clue I have is the calendar properties in Thunderbird (Lightning). It shows:
googleapi://MYEMAIL#MYDOMAIN/?calendar=MYDOMAIN_dq0l2urbXXXXlj9gcn5o2en1bc%40group.calendar.google.com
Doesn't MYEMAIL#MYDOMAIN imply the ownership of calendarX? That's the Google identity I have checked, and calendarX does NOT appear when I log into calendar.google.com with that identity. The default calendar is there, but not calendarX.
So maybe it's owned by some other identity? How can I find out?
Or how can I find the address of calendarX?
Google Calendars can be found by simply logging in your CORRECT email address which was used to create it. There's no tricky process in that. Just make sure it's your email address and not a service account that was used.
As an Admin of the GSuite system, you can add any calendar to your own account. If you can find the calendar ID from a user who has access to the calendar by going into the calendar settings is the way I did it, you can just add the calendar to your account using the calendar ID URL, once it is in your account as a super admin you can see who created the calendar and you can change who has access and the rights. Very simple but not documented anywhere I could find.

Google Apps Calendar shows "Busy" instead of sharing full, more details

We're building a multi-user platform where each registered user has a Google App account with their e-mail and calendar.
People can add to the events to the calendar, but the entry always show "Busy" instead of displaying the full event details.
How do I get the calendar to share and show more than just "Busy" and list the event name?
First log into your Google Apps domain admin account. The organization admin url is https://google.com/a/yourdomainname.com
Go to Apps > Calendar > Sharing Settings or here (substitute your domain):
https://admin.google.com/yourdomainname.com/AdminHome?fral=1#AppDetails:service=Calendar
Choose Share all information, but outsiders cannot change calendars
Then log into the user account with the calendar.
The new setting took 5 minutes before it took affect on the user accounts. I logged out and back in a couple times, refreshed, etc. Eventually the Calendar share settings on the user accounts will allow you to change the default "See only free/busy (hide details)" choice to "See all event details" and you're done.
Here's an updated link that sets the Calendar sharing option.
This must be done at the organization-wide level by an administrator.
Options are
Only free/busy information (hide event details): Users can allow people outside your domain to know when they are busy or available, but event details are hidden. Private addresses are hidden from users' calendars.
Share all information, but outsiders cannot change calendar: Users can share their calendar information with people outside your domain. This includes guest list, location, and description. Private addresses are hidden from users' calendars.
Share all information, and outsiders can change calendars: Users can fully share their calendar information with people outside your domain. This includes guest list, location, and description. Private addresses are displayed.
Share all information, and allow managing of calendar: Users can fully share their calendar information with people outside your domain, and they can grant outsiders permission to manage their calendars. Private addresses are displayed.
http://support.google.com/a/bin/answer.py?hl=en&answer=60765
Unfortunately the "Only free/busy information" option DOES NOT WORK in Google Apps :( When this option is selected at the domain and calendar level events are still not shown in the calendar. Very frustrating.

Resources