Google calendars not displaying with Full Calendar - fullcalendar

I'm trying to display multiple Google calendars with Full Calendar, like so:
eventSources: [
{
googleCalendarId: 'a.calendar.google.com'
},
{
googleCalendarId: 'b#group.calendar.google.com'
},
{
googleCalendarId: 'c#group.calendar.google.com'
}
]
All three calendars have the same settings and when I view the calendar at https://www.google.com/calendar/embed… I can see events from the different calendars displayed, but when I view my Full Calendar implementation, I can only see events from one of the calendars.
If I comment out the source of the calendar with events, my calendar shows no events.
Do I need to set up different API keys for each calendar? I haven't done anything that specifically ties the calendar that is working to the API key I've set up so far.

Related

What is the purpose of the ecommerce property in GTM event?

GA4 currently provides two methods for tracking. They are gtag and GTM (dataLayer).
The gtag method does NOT require the ecommerce property but the dataLayer method does.
Example:
gtag("event", "add_payment_info", {
items: [
{
// item's properties
}
]
});
dataLayer.push({
event: "add_payment_info",
ecommerce: {
items: [
{
// item's properties
}
]
}
});
Is there any difference between the two methods?
I understand that gtag will call dataLayer.push under the hood. But is there any technical reason that the ecommerce property is required for GTM methods or is it just by design?
Use DataLayer as much as you can. Because it can be highly re-use in the Google Tag Mangaer.
The common marketing technology now is not only GA to implement. There are also like Facebook pixel and a lot of pixels that need to be installed.
Most of them has similar Ecommerce feature like view_item add_to_cart purchase.
If you use DataLayer. You can just use the items in it and re-assemble to another pixel need.
If you use gtag. This function will only apply on GA and Google Ads. In the future you still need to implement facebook pixel again from begining.
So the point here is once there is a accurate DataLayer on the website. It will save times in the future.

Events sent with Measurement Protocol do not set active users

I am trying to send events from a Telegram bot (Java backend) to Google Analytics using Measurement Protocol V4. The event currently looks like this:
{
"client_id": "<telegram_chat_id>",
"events": [
{
"name": "tg_bot_command",
"params": {
"command_type": "HELP"
}
}
]
}
After the event is sent, I see the event and its property on the real-time overview page in the "Event count by Event name" card, but the client_id property is nowhere to be seen. And the "Users in last 30 minutes" card remains empty.
I also tried adding the user_id parameter to the events, but it also had no effect.
How do I send those events so that they show that users are active?
G-Analytics page showing logged events, but no users
Solution: add engagement_time_msec to event properties

fullcalendar google event shown but no name

I'm using google calendar to display events using fullcalendar, however they all show
like this.
When I click on one of those lines they do redirect to the correct event in google calendar - So the events are recognised. I've used lots of different javascript examples but they all do the same, this is the basic one i've been using:
$(function() {
$('#calendar').fullCalendar({
googleCalendarApiKey: 'myAPI',
events: 'myCalendarID'
});
});
I also copy pasted one of the full calendar demos (and changed my API key) but it still displays the same as the image above.

In fullcalendar, event title from a google calendar feed isn't showing up

I've made a Google Calendar to display in fullcalendar. The events display, not the event titles do not. How can I get the event titles to show up, does anyone know?
I made a Google Calendar, went into the developers console and created a new project. Then I enabled the Google Calendar API for that project. Then I created an API key, a OAuth 2.0 client ID, and a Service account key for the project.
Here is my code:
$('#calendar').fullCalendar({
// put your options and callbacks here
header: {
right: 'prev,next today',
center: 'title',
left: 'month,agendaWeek,agendaDay'
},
eventLimit: true, // allow "more" link when too many events
googleCalendarApiKey: 'myapikey',
events: {
googleCalendarId: 'post-gazette.com_hsvt6hs1u9b5rhfhursjeq1skg#group.calendar.google.com'
},
eventClick: function(calEvent, jsEvent, view) {
alert();
}
});
I found the answer. Apologies but I lost the link with the instructions.
If you go to "manage this domain" from in gmail under settings -> apps -> google apps -> calendar -> share settings.
Then under "External sharing options for primary calendars" select option "Share all information and outsiders can change calendars" (other options might work but try this first, as only people using your app with the API key will be able to see you calendar anyway).
Also under "Internal sharing options for primary calendars" I have selected "Share all information" (not sure I changed this though).
Now if you go back to your calendar, then click on the drop down next to "My Calendars" -> "Settings" then edit share settings of your calendar. Make sure all the "Make this calendar public" is ticked and select "See all event details".
I think that does it...obvious really ;-)

having both gCal and individual built-in events in fullCalendar

i would like to have my own events displaying on the calendar - along side an imported gCal link with additional events.
is this possible? what would the syntax look like?
Thanks!
You can use multiple event sources like in the question Henrique recommended
$('#calendar').fullCalendar({
eventSources: [
'/gCalFeed',
'/feed2'
]
});
gCalFeed would be the URL from the gCAL feed and feed2 a feed you created that delivers your events, for instance as a JSON, to full calendar

Resources