Google Calendars now lets you view a simple version of a calendar from external websites. This plugin allows you to do just that from within Confluence. It also makes it easy to have multiple calendars agregated into a single display.
To view the macro's documentation, click on its name below.
As indicated in the google-calendar usage section above, you can view multiple calendars in the same calendar view by putting one URL per line. Eg:
{google-calendar:controls=navigation}
// Public XML Link
http://www.google.com/calendar/feeds/[calendar id 1]/public/basic
// Private ICAL Link
http://www.google.com/calendar/feeds/[calendar id 2]/private-[private key]/basic.ics
// Public HTML Link
http://www.google.com/calendar/embed?src=[calendar id 3]
{google-calendar}
Unfortunately they will all be the same colour (blue) - Google doesn't let you customise that. But the events will all show up in the one calendar.
Well, the strange thing is that if I want to see more than one calendar (using more than one URL as explained) the calendar goes blank. Each link will work when on their own but as soon as I stick in more than one the calendar is blank.
Hmm...hard to say without the exact calendars you're trying to use. If you wish you could email them to me to test (david@randombits.org). My guess is, however, that you're using private calendars. I haven't actually done any serious testing with private calendars to determine if they actually work in multiple.
If you can send me the example, that will make it easier to tell what the problem is. If you want to see a real-life example with multiple calendars, have a look here for the page and here for the source code using the calendar macro.
This plugin doesn't have anything to do with when or how appointments are rendered - Google generates them itself. This plugin just puts an <iframe> pointing at Google's page.
But I haven't seen that behaviour myself before, personally.
You don't need a Google account to display someone else's public calendar, but if you want to add your own events, you will need one.
The calendar ID is something generated by Google - it will be provided in the URL you are given, either by Google or the person who's calendar it is. You just copy the URL from the calendar details.
If you get your own account, the instructions will become much clearer
Are there any plans to make it possible to colour individual calendars when displaying in Month mode? Also, a calendar legend would be good. Because we have so many distributed developers we want to have a calendar that shows holidays for each country in different colours.
Apparently Google has improved their calendar to let you do this now, so we'll have to update the plugin at some point to let you specify calendar colours. I believe there is a feature request already. I'd suggest watching that issue to be notified when it is resolved.
Does this plug in only allow people to view Google calendars, but not make edits or changes? Is there any way to set a new calendar item within the wiki, as opposed to doing it on the Google calendar site? Or your plug in only lets people LOOK AT existing calendar items, but not change them?
You are correct - this plugin only allows viewing of calendars. In fact, it doesn't even actually generate the calendar display itself - it just creates an <iframe> pointing at Google's own calendar display website.
I'm not aware of any way of adding a new item to a Google calendar from within Confluence itself. Hypothetically, it could be done as an extension to the Calendar Plugin, although it would not be an easy job, and that plugin has a few issues of its own already...
I was hoping that if i'm logged into my google account, since the plug-in iframe's in the calendar, it would be able to get the google cookie out of my browser and display the calendar. i wanted to use this URL because I don't want to use the 'private google URL' because once that's given out, it's no longer really private. That way my confluence user's must be logged into their google calendar via cookies and only then will they be able to see the calendar within confluence.
So, when using the URL as formatted as my example, maybe since it's different than the example above:
http://www.google.com/calendar/embed?src=[calendar id ]
To my knowledge, you can't embed a private calendar with and use the persons own Google ID login cookie. Google has restricted it that way - this macro just sticks an iframe into the Confluence page, essentially. As you say, once the private URL is out, it's not private any more, which is a definite risk. You can slightly obscure it further by putting your {google-calendar} value into a User Macro in Confluence, but they can still pull the private URL from the <iframe> anyway, so it's not much of a security improvement...
thanks for the quick reply. I tested embeding a "private" calendar with google's HTML link with two google accounts, an enterprise google account and a basic account:
Embedding google's HTML link from the "basic google account's" calendar definitely works in confluence... if i'm logged into that account at the same time, e.g. in another browser tab.
using the enterprise google account, that doesn't work. My guess is in the way the URL is formed
basic google account: http://www.google.com/calendar/embed?src=[calendar id ]
enterprise google account: http://www.google.com/calendar/hosted/my.company.com/embed?src=[calendar id]
so i'm wondering if the google-calendar plug-in isn't parsing the enterprise version of the URL correctly, or if google somehow further obscures that calendar even when logged into google in another browser tab?
Interesting. Its been a long time since I did anything with this plugin, so I'm a little rusty on how it pulls the IDs from the URLs, but you are quite possibly correct. Could you create a new bug report with the details above and we'll investigate it when we next do an update.
Is there a way to overlay or view multiple google calenders on one screen (calendar) at a time? With Google Calendars it is possible to do this.
We would like to view the calendars for all our departments on one calendar. The only workaround I have seen so far is to use the cards/decks macro.
Thanks!
Cheers
Brad
As indicated in the google-calendar usage section above, you can view multiple calendars in the same calendar view by putting one URL per line. Eg:
{google-calendar:controls=navigation} // Public XML Link http://www.google.com/calendar/feeds/[calendar id 1]/public/basic // Private ICAL Link http://www.google.com/calendar/feeds/[calendar id 2]/private-[private key]/basic.ics // Public HTML Link http://www.google.com/calendar/embed?src=[calendar id 3] {google-calendar}Unfortunately they will all be the same colour (blue) - Google doesn't let you customise that. But the events will all show up in the one calendar.
Well, the strange thing is that if I want to see more than one calendar (using more than one URL as explained) the calendar goes blank. Each link will work when on their own but as soon as I stick in more than one the calendar is blank.
Is there a possible solution to this?
Hmm...hard to say without the exact calendars you're trying to use. If you wish you could email them to me to test (david@randombits.org). My guess is, however, that you're using private calendars. I haven't actually done any serious testing with private calendars to determine if they actually work in multiple.
If you can send me the example, that will make it easier to tell what the problem is. If you want to see a real-life example with multiple calendars, have a look here for the page and here for the source code using the calendar macro.
Are there any known issues regarding time-zones? I have an appointment showing up an hour earlier when I embed the calendar using this plugin.
This plugin doesn't have anything to do with when or how appointments are rendered - Google generates them itself. This plugin just puts an <iframe> pointing at Google's page.
But I haven't seen that behaviour myself before, personally.
Hi David
I didn't realise you can set a timezone on a calendar, in addition to setting your own timezone, hence the hour difference!
do I need to have a google account to be able to use a calendar in my wiki ? the calender id is what exctly ?
thank you
You don't need a Google account to display someone else's public calendar, but if you want to add your own events, you will need one.
The calendar ID is something generated by Google - it will be provided in the URL you are given, either by Google or the person who's calendar it is. You just copy the URL from the calendar details.
If you get your own account, the instructions will become much clearer
The Overview and Details sections on this page are not displaying. They are showing the following error:
Error formatting macro: repository-plugin: java.lang.NullPointerException
Are there any plans to make it possible to colour individual calendars when displaying in Month mode? Also, a calendar legend would be good. Because we have so many distributed developers we want to have a calendar that shows holidays for each country in different colours.
Apparently Google has improved their calendar to let you do this now, so we'll have to update the plugin at some point to let you specify calendar colours. I believe there is a feature request already. I'd suggest watching that issue to be notified when it is resolved.
Does this plug in only allow people to view Google calendars, but not make edits or changes? Is there any way to set a new calendar item within the wiki, as opposed to doing it on the Google calendar site? Or your plug in only lets people LOOK AT existing calendar items, but not change them?
Thanks!
You are correct - this plugin only allows viewing of calendars. In fact, it doesn't even actually generate the calendar display itself - it just creates an <iframe> pointing at Google's own calendar display website.
I'm not aware of any way of adding a new item to a Google calendar from within Confluence itself. Hypothetically, it could be done as an extension to the Calendar Plugin, although it would not be an easy job, and that plugin has a few issues of its own already...
I would like to use a google enterprise calendar with it's private HTML page URL:
{google-calendar} http://www.google.com/calendar/hosted/my.company.com/embed?src=[calendar 1] {google-calendar}I was hoping that if i'm logged into my google account, since the plug-in iframe's in the calendar, it would be able to get the google cookie out of my browser and display the calendar. i wanted to use this URL because I don't want to use the 'private google URL' because once that's given out, it's no longer really private. That way my confluence user's must be logged into their google calendar via cookies and only then will they be able to see the calendar within confluence.
So, when using the URL as formatted as my example, maybe since it's different than the example above:
I'm seeing an error:
"Invalid Google Calendar URL:"
To my knowledge, you can't embed a private calendar with and use the persons own Google ID login cookie. Google has restricted it that way - this macro just sticks an iframe into the Confluence page, essentially. As you say, once the private URL is out, it's not private any more, which is a definite risk. You can slightly obscure it further by putting your {google-calendar} value into a User Macro in Confluence, but they can still pull the private URL from the <iframe> anyway, so it's not much of a security improvement...
Hello David,
thanks for the quick reply. I tested embeding a "private" calendar with google's HTML link with two google accounts, an enterprise google account and a basic account:
Embedding google's HTML link from the "basic google account's" calendar definitely works in confluence... if i'm logged into that account at the same time, e.g. in another browser tab.
using the enterprise google account, that doesn't work. My guess is in the way the URL is formed
so i'm wondering if the google-calendar plug-in isn't parsing the enterprise version of the URL correctly, or if google somehow further obscures that calendar even when logged into google in another browser tab?
Interesting. Its been a long time since I did anything with this plugin, so I'm a little rusty on how it pulls the IDs from the URLs, but you are quite possibly correct. Could you create a new bug report with the details above and we'll investigate it when we next do an update.