Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Syncronizing with Google calendar #29

Open
zhixwang opened this issue May 15, 2020 · 10 comments
Open

Syncronizing with Google calendar #29

zhixwang opened this issue May 15, 2020 · 10 comments

Comments

@zhixwang
Copy link

Hi, thanks for the tool. Is there any API or other approach to export the calendars in NEMO to Google Calendar automatically?

Thanks!

@rptmat57
Copy link
Contributor

Hi, there is no such feature at the moment. there is an API that allows you to extract Reservations and Usage Events but you would have to do something with it to have it send to a Google Calendar.
(There is however, a setting for users that allows them to receive a .ics calendar invite when they make/cancel reservations)

@demisjohn
Copy link

May I recommend a button to download a single .ICS file that contains all the current user's reservations. (otherwise individual emails require hitting "accept" on 5+ calendar invites per day).

In our custom signup system, our Search function has the ability to output the ICS file, which means the function is available to grab reservations for any user, or group (since sometimes multiple users share signups, since they're in the same company/research group)

(If we start working on NEMO source to use in our lab, we can contribute such code, but right now we're not coding yet.)

@rptmat57
Copy link
Contributor

rptmat57 commented Mar 2, 2021

I could see how the number of emails could start getting important, especially when moving reservations and cancelling some.
If I understand correctly, your idea would be to have a way for users to grab all of their current reservations in one big .ICS file? and that could be a manual process or potentially a daily automated email (if there are any changes).
I haven't looked at the ICS spec in a while, so I am not sure we could have all events including cancelled or updated ones all in the same file (otherwise the calendar wouldn't be in sync)

@demisjohn
Copy link

demisjohn commented Mar 2, 2021

Attached is an example ICS file generated by our custom (and rather old) signup system, showing multiple calendar events containing all current and future equipment reservations. (Ours is currently a Manual download, although we also have API access. This link explains more, from a user's perspective ).

A daily "digest" email is a great idea, as most smartphones, when they detect an ICS file, will display them in the calendar app (although as an "accept/decline" invitation – hopefully not 20 separate invitations though).

You're right that a limitation of this technique is that you can not propagate deleted reservations to the user's calendar. Without implementing a full CalDAV server, I think it may not be possible, and I get the sense that implementing CalDAV is not trivial nor robust.

ical-search.cgi-93.ics.zip

-- Demis

@rptmat57
Copy link
Contributor

rptmat57 commented Mar 2, 2021

Hi John,
Thank you for the example ICS. It looks like it would be doable to move or mark reservations as cancelled, but not remove them altogether.
The attached files seems to work in Apple & Google Calendars, but the cancelled part doesn't seem to work with outlook for some reason...

reservations.zip

@rptmat57
Copy link
Contributor

rptmat57 commented Nov 10, 2021

To keep the issue updated, some changes were made in May and more recently in September 2021 to improve the reservation invites in NEMO.
Calendar invites are now sent in UTC time, so each calendar can display it properly in the user's timezone, and new invites should now work properly (asking to confirm in calendar) as well as the cancellation (automatically removing it from the calendar). This has been tested with both Outlook and Google Calendar

@jat255
Copy link
Member

jat255 commented Jul 30, 2022

@rptmat57 I just stumbled upon this, but I wonder if an implementation could be to create a WebCal or other type feed for a user that they could then "subscribe" to in their calendar app of choice, and it would stay up to date. This would only work for NEMOs open to the internet, I suppose, but it might be a way to do it without too much back and forth about "which events have I downloaded already" etc.

@rptmat57
Copy link
Contributor

rptmat57 commented Aug 1, 2022

That's an interesting idea. But then each user's calendar would be publicly available which isn't great.

@jat255
Copy link
Member

jat255 commented Aug 2, 2022

Yeah I realize this is probably low priority, but just thinking how this could work...

I wonder if you could have a page that's only accessible when you're logged in that can generate a sufficiently long unique URL that would be the calendar subscription. It wouldn't be "protected" as such, but also wouldn't be able to be guessed.

It would be similar to when you create a "unique link" for a document in Google drive. The link itself is the password in that sense and it's on you whether you give it out or not. I think the Office365 version of Outlook has a feature like this to "subscribe to a calendar" as well.

@rptmat57
Copy link
Contributor

rptmat57 commented Aug 4, 2022

I think that could work.
Definitely low priority but would accept a PR if someone out there is willing to spend some time figuring this out

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants