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

Google Calendar Node #16

Open
hindessm opened this issue Sep 18, 2014 · 20 comments
Open

Google Calendar Node #16

hindessm opened this issue Sep 18, 2014 · 20 comments

Comments

@hindessm
Copy link
Contributor

Input Nodes

  • New events added to a calendar

Query Nodes

  • Get next event
    • node options
      • calendar - calendar to lookup events in
    • msg.options
      • calendar - calendar to lookup events in
      • payload - text search used to select relevant events (optional)
    • output msg properties
      • title - the summary string from the calendar entry
      • description - the description from the calendar entry
      • location.description - the location string from the calendar entry
      • data - the raw event from the google calendar query
      • payload object containing:
        • title - the summary string from the calendar entry
        • description - the description from the calendar entry
        • location.description - the location string from the calendar entry
        • start - Javascript Date of start time - midnight for all day event
        • end - Javascript Date of end time - midnight for all day event
        • allDayEvent - true if event is an all day event
        • creator - object containing name and email properties
        • attendees - list of objects containing name and email properties

Output Nodes

  • Add event to a calendar
    • node options
      • calendar - calender to add events to
    • msg.options
      • calendar - calendar to add events to
      • payload - string describing the event in quick add format

Calendars

The calendar option should be able to specified as the id string of the calendar, name of the calendar, or the string primary to use the users primary calendar. The default will be primary.

@ly685-zz
Copy link

@hindessm In the output node, will there also be an option to specify time of event etc? And am I right in assuming the initial pass would add an event to my calendar but not handle invitations to others? Just trying to understand initial scope

@hindessm
Copy link
Contributor Author

The syntax of the quick add text field supports "what", "when", "where" and "who". So you could set msg.payload = "coffee at 8am in hursley with person@example.com" and it should work as you'd expect. It doesn't send invitations by default but the api does support this.

In general, with the first pass at a node, we've tended to limit the scope to a minimum useful behaviour while, at the same time, giving some thought to extending functionality in future. In this case, my intention is to add a msg.sendNotifications option to match the sendNotications query parameter on the api and if the msg.payload is an object use that to populate the body of an insert request.

@hindessm
Copy link
Contributor Author

I'm happy with the initial implementation in #18. Items that I still intend to work on are:

  • Support rich insert requests
  • Support sendNotification - via. msg and node properties
  • Provide UI feature to re-authenticate if crediential refreshing fails

I'm still not sure how to handle the issue of extending the scope when other nodes - such as tasks, drive, etc. - are added using the same credentials but I'll worry about that when I/we come to write another Google node.

It turns out the quick add syntax doesn't support "with" so inviting other people will require the full insert functionality.

@hindessm
Copy link
Contributor Author

hindessm commented Nov 5, 2014

@knolleary, @hbeeken I've updated the description of the query node. I'm struggling to decide what should be in the payload. I'm also not sure what to do with the string location (but I wrote an intial guess.)

Comments/thoughts welcome.

@natcl
Copy link

natcl commented Feb 5, 2015

Would it be possible to modify the node so that we also get the current event ?
The way I would see it, it could have 2 outputs.
The first output would send the current event and the second one the next event. Seems like it would be quite useful...

@knolleary
Copy link
Member

@natcl it is worth pointing out, all of these web nodes are minimal implementations to get some basic functionality in place. There are lots of different queries that could be included - the challenge is working out how best to expose them to the user. Having multiple outputs for different events doesn't scale well... what if you want the next 5 events.. is that 5 outputs? It would be better offered as an option to emit the next n events from the single output, where n starts either with the current or next event.

@natcl
Copy link

natcl commented Feb 5, 2015

I agree.
I just updated to the latest version and noticed there is now an input node for Google calendar, that's actually exactly what I was looking for. I wasn't able to make it work yet though, is it working or still a work in progress ?

@knolleary
Copy link
Member

All of the nodes in this repo should be working - any questions on this node, @hindessm may be able to help.

@Gerw88
Copy link

Gerw88 commented Mar 22, 2016

@knolleary Hi Nick, any update on multiple event queries? We use a Google Calendar-based scheduler and I'd like to be able to get everything for the upcoming day for a display in our office... And/or the current event as it's happening, so I can show that with extra emphasis too - so both features would be fantastic if possible
Thanks!

@Hugobox
Copy link

Hugobox commented Nov 28, 2016

Hi @hindessm ! Any news on credentials re-authentication? Also wanted to mention that on every NR restart the Google calendar nodes complain that the google credentials are missing, even if the nodes are connecting fine... Thanks!

@Hugobox
Copy link

Hugobox commented Mar 3, 2017

@knolleary Can we hope for a google-cal credentials re-auth fix in the near future?

@dceejay
Copy link
Member

dceejay commented Mar 5, 2017

We would be very happy if anyone volunteered to help look after this/these nodes. PR would be kindly looked upon.

@Rider123456
Copy link

Can someone please provide an example flow that i can use to enter some strings in to google calendar?

@LacerdaPT
Copy link

LacerdaPT commented Jan 17, 2018

The following is the payload that enters the Google Calendar Out Node

msg.payload = { description: "Great picnic with friends", location: "hyde Park, London",
  start: {
    dateTime: startDateTime 
  },
  end: {
    dateTime: endDateTime 
  },
  attendees: [{email: "Jane@example.com", displayName: "Jane Doe"},{email: "John@example.com", displayName: "John Smith"}],
  summary: "Welcome 2018 Picninc"
};

startDateTime and endDateTime are in ISO Format (you can set a Date object and then use the "toISOString" method)

I hope this helps

@LacerdaPT
Copy link

LacerdaPT commented Jan 17, 2018

Hey

Basically I'm creating events on a calendar using the Google Calendar Out node.
The payload that goes on to that node is something like this:

msg.payload = { description: "Great picnic with friends", location: "hyde Park, London", start: { dateTime: startDateTime }, end: { dateTime: endDateTime }, attendees: [{email: "Jane@example.com", displayName: "Jane Doe"},{email: "John@example.com", displayName: "John Smith"}], summary: "Welcome 2018 Picninc" };

startDateTime and endDateTime are in ISO Format.

Now, I want the attendees to be notified, and therefore along with this msg.payload I make msg.sendNotifications = true; but it has no effect. I tried with false as well as and it is pretty much the same.

I tried this out here: https://developers.google.com/google-apps/calendar/v3/reference/events/insert with the sendNotifications sent to true and it worked.

Everything else works well.
Am I doing something wrong? Is is a known bug? Is there a workaround?

Cheers

@LacerdaPT
Copy link

Hello

Can you guys check the post just before this one? It's mine and about the msg.sendNotifications flag to the Google Calendar Out. I just updated the node-red-node-google package and still can't send notifications for the attendees.

Cheers

@dceejay
Copy link
Member

dceejay commented Mar 13, 2018

you may want to ask on the mailing list or slack channel as there are more users out there who may be able to help.

@LacerdaPT
Copy link

Ok. I'll give it a try.

Thanks!

@thucar
Copy link

thucar commented Jul 17, 2018

Is there any way to retrieve more than one event with Calendar Query? For instance if I would like to display my complete schedule for a full day or a week?

@rakgupta
Copy link

rakgupta commented Jun 4, 2021

The redirect uri in the Google credentials node is documented as "http://node-red.example.com:1880/google-credentials/auth/callback". Does this need to be changed to https? I got an email from Google saying that the project will be removed if the uri is not compliant.

I changed the uri on my Google developer site to https://. However, the authentication fails with "Error 400: redirect_uri_mismatch - The redirect URI in the request, http://node-red.example.com:1880/google-credentials/auth/callback, does not match the ones authorized for the OAuth client. ". Any chance that will be fixed or is there a workaround?

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

No branches or pull requests