Sometime on November 30, Google broke public calendar sharing for apps users. This means that any calendars previously shared with the world (like, for example, my IT events calendar) are no longer visible. As is typical for Google, the change was made quietly and it was not immediately obvious how to fix it. But here’s what you should do if your calendar is no longer public.
Apparently, Google made a mistake when coding calendar sharing for Google Apps domains: The domain wide sharing controls only applied to primary calendars, not secondary calendars created by users. This meant that Google Apps administrators could not control public sharing of calendars. Google fixed this issue by making the Google Apps calendar sharing settings apply to both primary and secondary calendars, pushing this out live around November 30, 2011.
The problem with this fix is that it breaks all public shared calendars by default. Apparently, the grandfathered or default setting for calendar sharing was “only free/busy information”. But users could create their own calendars (what Google refers to as a secondary calendar) and set sharing to any value they liked. In fixing this, Google broke all sorts of public calendars this week.
Here’s how to fix Google’s broken fix:
- Log into the Google Apps Dashboard as the Apps administrator
- Under “Service Settings”, click “Calendar” (or point your browser to https://www.google.com/a/cpanel/YOURDOMAIN.COM/ServiceSettings#ServiceSettings/service=calendar)
- In the “Sharing options” section, you will see “set user ability” for outside your domain. By default, this will be set to “Only free/busy information (hide event details)”. Instead, set it to “Share all information, but outsiders cannot change calendars” or “Share all information, and outsiders can change calendars”. This does not appear to change the permissions of existing calendars, so it should be safe to change.
- If public sharing was previously enabled for a calendar, it should automatically be re-enabled now. If not, click the little triangle next to the calendar’s name in the Google calendar interface, select “Share this calendar”, then make sure “Make this calendar public” and “see all event details” are selected.
It is really frustrating that Google would make a change that affects existing sharing settings explicitly chosen by Apps users, and doubly so thanks to Google’s ridiculously opaque and difficult tech support mechanisms. I couldn’t locate an answer in Google’s own support pages, though (ironically) a Google search did reveal the answer on one of Google’s own pages.
Thank you! Hopefully Google let me find your article quickly.
Jim Siegl says
Thanks for the detailed write-up. I wish the fix was that simple for all of us. Many school districts use Google Apps for Education and this is disturbing on 2 levels. We lock down calendars for public sharing but It seems that as a result of this bug, Google may have been sharing the calendar details of students that created a 2ndary calendar, and for schools that accidentally found the bug and are using it to create public calendars the “FIX” would mean we would have to allow all users-including students to be able to make the details of their calendars public—not going to happen. At this point the best work around I can see is to create a 2nd google domain, not linked to the first domain and give any user that needs to create “public” content a 2nd account in that domain.
What a mess! You can’t fix Google’s public calendar breakage for large Apps domains without breaking other things. Thanks a lot!
I guess your “fix” is the best available option, though it’s completely ridiculous. Make a new Apps domain just for public calendars…
Mine is also not sending notifications when I try to share non-public calendars with people, and it used to work fine. Any idea how to fix this?!?
Thanks Stephen, fixed my calendar issue. The error that came up was a 403 error. Ross from http://www.rhanney.co.uk directed me here thankfully, wasted far too much time trying to figure this out!
Darren Anthony says
Only allows the primary calendar to be fully shared publicly. Any secondary calendars will only display BUSY for appointments.
Reginald the Designer says
Thanks for sharing this info.