I'm trying to write a Zap which will get events from a Google Calendar for the current week and generate a string describing when I'm in the office "Mon, Wed, Fri". The only thing that's stumping me is step 0. How do I auth for the Google Calendar API in a Zapier Code block? It appears that Google calendar only supports Oauth2.0 and only gives out short-lived tokens but I want this scheduled job to only run in the background and have no recourse for user-interaction. Is there any way to generate a long-lived access token?
David here, from the Zapier Platform team.
Unfortunately, that's not something that's easily doable. Part of what Zapier does for you is refresh the tokens and ensure everything is running as expected. Searching for a bunch of data (this week's events) isn't really in the zapier wheelhouse at this time.
If you're only concerned with new events, you could set up a "new event" trigger that adds the date of the event into Storage and a second zap that runs weekly, reads storage, figures out what dates are busy, and generates your string. That wouldn't hold up for recurring events though, so it may not be what you're looking for.
Alternatively, you could try and do the refresh loop in your code block, but that's really tough. You'd need somewhere to persist the token (while Storage technically works, it's open to the public so it's not a great place to store creds, even if they are hard to find). You could try your request, refresh if the token is stale, then send the eventually present value onto a later step.
Sorry I don't have better news. Let me know if you've got any other questions!