After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 663828 - Auto-add all Google calendars for GOA accounts
Auto-add all Google calendars for GOA accounts
Status: RESOLVED FIXED
Product: evolution-data-server
Classification: Platform
Component: Calendar
3.10.x (obsolete)
Other Linux
: Normal enhancement
: ---
Assigned To: evolution-calendar-maintainers
Evolution QA team
evolution[goa]
: 710840 721631 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2011-11-11 08:14 UTC by Hannes Ovrén
Modified: 2015-05-29 08:48 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
eds patch (97.83 KB, patch)
2015-03-18 13:12 UTC, Milan Crha
accepted-commit_after_freeze Details | Review
eds (additional) patch (2.33 KB, patch)
2015-03-18 13:22 UTC, Milan Crha
reviewed Details | Review
eds patch ][ (97.85 KB, patch)
2015-03-18 14:10 UTC, Milan Crha
reviewed Details | Review
eds patch ][ addition (1.38 KB, patch)
2015-03-18 17:59 UTC, Milan Crha
reviewed Details | Review
eds patch ][ correction (857 bytes, patch)
2015-03-19 18:17 UTC, Milan Crha
reviewed Details | Review

Description Hannes Ovrén 2011-11-11 08:14:29 UTC
Only my own calendars in Google Calendar seem to be imported/connected with gnome-online-accounts as only one calendar shows up in Evolution.

I have multiple shared calendars in Google Calendar, and I was a bit surprised they weren't imported as well.
Comment 1 David Zeuthen (not reading bugmail) 2011-11-11 18:12:48 UTC
Yeah, I agree this is annoying. But it's a problem with Evolution, all that GOA does is provide the credentials to access the various services. Reassigning.
Comment 2 Pierre-Antoine Roiron 2011-11-20 17:24:05 UTC
You can add other google shared or owned calendars using a right click on your google calendar in evolution then :
- create a new calendar
- google type
- enter you user name
- get the available calendars list
- select the wanted calendar

That works for me, and I can see the calendars, but Evolution seems lost each time I want to add/remove/modify an event : crashes, calendar or parameter corruption...
Comment 3 Milan Crha 2012-03-07 13:42:19 UTC
Hannes, Evolution adds only the default calendar, but offers a way to add other, as wrote Pierre-Antoine above. Is it sufficient for you? I'm asking because I'm not sure whether it's always expected to get all your calendars, especially when the GOA UI asks to access the "Calendar", not all configures/subscribed-to calendars. Note that with auto-added calendars you will not be able to remove them, you will be able to disable them only.
Comment 4 Matthew Barnes 2012-03-07 13:47:34 UTC
I plan to add all available Google Calendars when I rewrite Evolution's GOA module for 3.6.
Comment 5 Pierre-Antoine Roiron 2012-03-07 14:12:54 UTC
I tried again with the latest Evolution 3.2.3 (Fedora 16) to add google shared calendars other than the default one. Everything seems to work perfectly (two different accounts tried with read only calendars and full access calendars on both).

Milan and Matthew : I'm perfectly happy with the actual ability to add additional calendars. Adding all available calendars would be a good solution either, considering you can disable/hide the un-needed ones and that most of the time, if you want to access your google calendars using Evolution, you want all the available info.
Comment 6 Pierre-Antoine Roiron 2012-03-07 15:17:20 UTC
I forgot to add that, in order to get the "add calendar" working properly, you need to restart Evolution after adding the gmail account.
Comment 7 Hannes Ovrén 2012-11-02 11:31:14 UTC
I can of course not speak for everyone, but I guess my expectation of adding my Google account to gnome online accounts was that *all* my calendars in Google calendar would be synced, and not just the default personal calendar.

That is, I expect that the calendar view in Evolution should show everything my Google calendar page shows me.

Currently I use Evolution (or EDS, at least) to get the reminders and Gnome-Shell integration from my most important calendars, but still go to Google Calendar to schedule some other things, as I haven't mustered the effort to import all of them into Evolution manually.

Adding the calendars manually of course works, but seems to somewhat defeat the purpose of GOA in the first place :)
(I just want to make clear that I think GOA is brilliant, despite the minor issues!)

Also, bumping this bug to GNOME version 3.4.x as that is the GNOME version I am currently using.
Comment 8 Matthew Barnes 2013-10-28 18:28:35 UTC
*** Bug 710840 has been marked as a duplicate of this bug. ***
Comment 9 Matthew Barnes 2014-01-06 13:03:17 UTC
*** Bug 721631 has been marked as a duplicate of this bug. ***
Comment 10 Tassilo Horn 2015-03-05 08:50:38 UTC
I don't use Evolution at all, so is there a way to add my other non-default Google calendars, i.e., maybe from the command line with gsettings or something?

That's not really pressing to me as I only use the Web/Android interfaces of Google Calendar.  But still it's a nice feature that the Gnome Shell date/clock widget shows the agenda for the next two days but that's totally incomplete for me now as my default Google calendar is for personal stuff while I have others for work appointments, etc.  The latter are usually more important to me when sitting in front of the computer, i.e., working.
Comment 11 Milan Crha 2015-03-05 10:33:43 UTC
(In reply to Tassilo Horn from comment #10)
> I don't use Evolution at all, so is there a way to add my other non-default
> Google calendars, i.e., maybe from the command line with gsettings or
> something?

I'm not aware of any software which would let you list available Google calendars and add them for usage in evolution-data-server, thus also to any other evolution-data-server client.

There were some ideas to add this functionality to California or gnome-calendar, but, if I'm not mistaken, the change missed 3.16.0 feature deadline.
Comment 12 Milan Crha 2015-03-18 13:12:35 UTC
Created attachment 299705 [details] [review]
eds patch

for evolution-data-server;

This introduces new e-webdav-discover.h/.c, which helps in the available WebDAV collection discovery. It also tries with .well-known URIs, thus it's able to find out available CalDAV calendars (including tasks and memos) and CardDAV address books on Google, ownCloud, Zimbra, DAViCal and possibly any other servers supporting this functionality. Interesting might be that with the .well-known URI check it's enough to know the server host name and credentials to login (works with Google server).

The patch moves some files from libebackend to libedataserver, for better visibility, and the e-webdav-discover.c also contains new translatable strings, thus it's a material for 3.17.1. The discovery itself is heavily based on the current code in the CalDAV configuration module in Evolution itself.

File changes:
>	renamed:    libebackend/e-soup-auth-bearer.c -> libedataserver/e-soup-auth-bearer.c
>	renamed:    libebackend/e-soup-auth-bearer.h -> libedataserver/e-soup-auth-bearer.h
>	renamed:    libebackend/e-soup-ssl-trust.c -> libedataserver/e-soup-ssl-trust.c
>	renamed:    libebackend/e-soup-ssl-trust.h -> libedataserver/e-soup-ssl-trust.h
>	new file:   libedataserver/e-webdav-discover.c
>	new file:   libedataserver/e-webdav-discover.h
>	deleted:    modules/owncloud-backend/owncloud-utils.c
>	deleted:    modules/owncloud-backend/owncloud-utils.h
Comment 13 Milan Crha 2015-03-18 13:22:43 UTC
Created attachment 299706 [details] [review]
eds (additional) patch

for evolution-data-server;

This is an additional patch, to fix some nitpicks which do not belong to this bug report fully, thus I rather split them out of the main patch.

Changes:
a) memory leak fix in e_collection_backend_authenticate_children()
b) do not overwrite user name with empty value in ESourceWebdav
c) avoid possible (rare) crash in source_parse_dbus_data()
d) e_goa_password_based_lookup_sync() can be called for OAuth/2 based
   GOA accounts, thus count with it
Comment 14 Milan Crha 2015-03-18 14:10:14 UTC
Created attachment 299719 [details] [review]
eds patch ][

for evolution-data-server;

Just noticed that the async API (which is not used yet) didn't reference an ESource properly, which could lead to reference count imbalance.
Comment 15 Milan Crha 2015-03-18 17:59:50 UTC
Created attachment 299737 [details] [review]
eds patch ][ addition

for evolution-data-server;

Ehm, one more overlook. This is to be added on top of the eds patch ][.
Comment 16 Milan Crha 2015-03-19 18:17:57 UTC
Created attachment 299866 [details] [review]
eds patch ][ correction

for evolution-data-server;

This is getting embarrassing. The more I use it, the more bugs I find in the code. This is one more.
Comment 17 Milan Crha 2015-03-23 16:48:20 UTC
I committed the main change for 3.17.1 as commit 00b614fa9c5e in eds master, then also committed the other patches attached here.
Comment 18 Milan Crha 2015-05-29 08:48:08 UTC
Let's have this work for the stable branch as well:

Created commit 00f63d8 in eds gnome-3-16 (3.16.3+)