deanishe / alfred-gcal Goto Github PK
View Code? Open in Web Editor NEWView Google Calendar events in Alfred
License: MIT License
View Google Calendar events in Alfred
License: MIT License
When running gcal
it says "No accounts configured. Action this item to add a Google account". So I do that, proceed past Google's warning, and after approving the application end up on a URL of http://127.0.0.1:61432/?state=....
that simply says "ok".
However, it seems that the accounts still are not configured. Trying gcal
again afterwards gives the same message/process. Trying gnew
gives "No active calendars. Press enter to activate calendars". After doing so, it then says "Fetching list of calendars", but a list is never fetched.
Tried quitting and restarting Alfred as well. Can't figure out how to resolve this, so any help is appreciated!
I'm using macOS 10.15.1 with Alfred 4.0.8.
First config facing this issue when authorised my account to alfred-gcal
Sign in with Google temporarily disabled for this app
This app has not been verified yet by Google in order to use Google Sign In.
gnew keyword is not returning any results.
I don`t see the keyword in the setup in alfred either.
I've granted access multiple times to my Google calendar, receiving an "ok" from the localhost process, yet I still see No Accounts Configured
when I execute the gcal
workflow in Aflred.
Are there any known problems associated with MFA? Just a guess.
I'm getting errors when trying to access and add calendars.
When trying to access (from gdate workflow:log
)
07:28:47 ------------------- 2.549289ms -------------------
07:28:47 [ERROR] retrieve calendar list: Get https://www.googleapis.com/calendar/v3/users/me/calendarList?alt=json&prettyPrint=false: oauth2: cannot fetch token: 401 Unauthorized
Response: {
"error": "deleted_client",
"error_description": "The OAuth client was deleted."
}
07:28:47 Get help at https://github.com/deanishe/alfred-gcal/issues
I've checked and seemingly nothing has changed with the access granted:
Please refer to the answer below if you are facing problems with events being added at the wrong time, thank you.
I have a calendar I am importing into google calendar that is using (GMT+00:00) Coordinated Universal Time for the timezone. Google knows to correct for this when displaying on my calendar.
When it gets pulled into alfred it is still displaying in GMT as there is not a setting to correct for the timezone.
What I think I want to see is every calendar event date/time translated into the timezone I am currently in if possible. If that is hard or less doable I would love to be able to set a default timezone to make sure things are displayed in.
Super useful workflow thanks for putting it together! One piece that's missing for me is to see location. For example on the attached image which shows after I've typed in gcal, adding location would give me a heading on where to go for my next meeting. I'm often needing to reference that when meetings are back-to-back.
Great workflow! Will you please add whole day events to the upcoming list?
Thanks for this workflow!
I can't add new events on a specified day using 'tomorrow', 'Tuesday', or 09/08/2021, apart from if I say 'every day' and specify the time. Have you encountered this before? All the other features of the workflow seem to be working!
I can press enter or select the calendar to add it to, then it moves to the upcoming events feature as it would every time you successfully add a new event. But obviously in this case it hasn't created the event, which upon searching can't be found anywhere. I have 3 different calendars set up on the same workflow, and it's not working on any of them.
Hi,
after downloaded the latest version 0.2.4 and installed .
I typed the keyword "gcal" in alfred input box ,
then it noticed "No accounts configed."
I followed the guide , step by step.
first, i choose the account (i have two account logined) , just like the pic1
second, i allow the permission.
after that ,the browser linked to a local address ,and display the result "ok"
but there's noting happened .
when i type "gcal ", it show "no accounts configed " again .
ps: I have the two-step verification open with my google account.
here's the log.
`Starting debug for 'Google Calendar View'
[2019-08-14 10:27:27][utility.debug] .
/---- ACTION IN ----
query=
variables={
"APPLE_MAPS" = 0;
"CALENDAR_APP" = "";
"EVENT_CACHE_MINS" = 15;
"SCHEDULE_DAYS" = 5;
action = date;
}
-------------------/
[2019-08-14 10:27:27][STDERR: input.scriptfilter] 🍺
10:27:27 workflow.go:304: ---- Google Calendar View/0.2.4 (AwGo/0.14.0) ----
10:27:27 config_bind.go:250: [bind] unbindable kind: struct
10:27:27 config_bind.go:250: [bind] unbindable kind: struct
10:27:27 main.go:176: [main] query="", startTime=2019-08-14 10:27:27.375086 +0800 CST, endTime=2019-08-15 10:27:27.375086 +0800 CST
10:27:27 feedback.go:453: Sent 1 result(s) to Alfred
10:27:27 workflow.go:382: ------------------ 45.403414ms -------------------`
Hi! First, this workflow is just awesome!
Unfortunately, I can't see events from two Google accounts at the same time.
This is what happens:
I basically have a personal and a work Google account and if I could see them at the same time this workflow would definitely be perfect! Thanks a lot :)
It would be great if it would be possible to configure multiple google calendar accounts. I have for example my private calendars in google one account and my work calendars in another account.
Most of my meetings are virtual, in a google meet call. Can we get an option to join the meeting directly when activating a calendar entry, rather than opening it in google calendar? This seems related to #90 and #92, but avoids your concerns of complexity parsing arbitrary url, since it would use google's structured data.
Hi! Big fan of your work and this workflow. Just wanted to let you know that I was experiencing issues after updating this morning. I get this message: "Sign in with Google temporarily disabled for this app" and then on a line below that, "This app has not been verified yet by Google in order to use Google Sign In."
Most probably related to this as it is the same issue I have there.
Here is the log I get when trying to run it:
[2017-11-30 15:29:47][input.keyword] Processing output of 'utility.argument' with arg ''
[2017-11-30 15:29:47][utility.argument] Processing output of 'output.callexternaltrigger' with arg ''
[2017-11-30 15:29:47][trigger.external] Processing output of 'utility.debug' with arg ''
[2017-11-30 15:29:47][utility.debug] .
/---- ACTION IN ----\
query=
variables={
"APPLE_MAPS" = 1;
"CALENDAR_APP" = "";
"EVENT_CACHE_MINS" = 15;
"SCHEDULE_DAYS" = 5;
action = date;
}
\-------------------/
[2017-11-30 15:29:47][utility.debug] Processing output of 'utility.filter' with arg ''
[2017-11-30 15:29:47][utility.debug] Processing output of 'utility.filter' with arg ''
[2017-11-30 15:29:47][utility.debug] Processing output of 'utility.filter' with arg ''
[2017-11-30 15:29:47][utility.debug] Processing output of 'utility.filter' with arg ''
[2017-11-30 15:29:47][utility.debug] Processing output of 'utility.filter' with arg ''
[2017-11-30 15:29:47][utility.filter] Processing output of 'utility.argument' with arg ''
[2017-11-30 15:29:47][utility.argument] Processing output of 'input.scriptfilter' with arg ''
[2017-11-30 15:29:47][input.scriptfilter] Queuing argument ''
Thank you for any help.
First - Thanks for sharing this workflow! is really cool 💪
I've got a work account and a personal account. In my personal account i'm subscribed to my work calendar so i can see all the events for the day in one place. The problem i'm getting with gcal is that it seems to be picking up the calendar ID which apparently is the same in both cases, so it end up showing the same calendar twice in the spotlight and can't seem to be able to disable just one of them. Example:
Account1:
-calendarA
-calendarB
Account2:
-calendarC
-calendarA-subscription
I'd like to have:
Account1:
-calendarA
-calendarB
Account2:
-calendarC
CalendarA and calendarA-subscription is showing up double. I can't just have one of them since when i activate/deactivate it it does for both. So i can't have just calendarA or calendarA-subscription.
Many thanks,
David
When using the gnew shortcut, active calendars are displayed in alphabetical order. I have several calendars active, but one that I add events to far more often than others. It is not first alphabetically, however.
Is there a way to set a default calendar, or rearrange the list of active calendars so that it is sufficient to just press enter to add an event, rather than scrolling the list or using ⌘+[n]? (i.e., without taking the other option of renaming the calendar so it appears first).
on macbook pro when I want to run it
I wanted to make a modification to the code. How do I run it after pulling the repo?
I tried this
❯ go run main.go
# command-line-arguments
./main.go:73:14: undefined: Account
./main.go:150:28: undefined: calendarMagic
./main.go:150:46: undefined: loginMagic
./main.go:207:21: undefined: LoadAccounts
./main.go:224:10: undefined: doUpdateCalendars
./main.go:226:10: undefined: doUpdateEvents
./main.go:228:10: undefined: doUpdateWorkflow
./main.go:231:9: undefined: doListCalendars
./main.go:233:9: undefined: doClear
./main.go:235:9: undefined: doConfig
./main.go:235:9: too many errors
Can't get the workflow to configure. It takes me through the process of connecting my google account, and allowing all the permissions, all the way to the empty page with 'ok' status. But when I go to open Alfred and 'gcal' it, it once again tells me that I have "No Accounts Configured"
Hi,
Thank you for this workflow. I am trying to use your workflow. However, I keep getting the warning 'No Accounts Configured' even after repeatedly giving explicit access to my google account.
Am stuck now. How do I get around?
I have a work GSuite account, and a personal Google Account with GMAIL and Calendar.
I have my work Calendar imported into my personal account - so if I'm on a personal only device I can see items from my work calendar in my personal calendar. This is for when I don't have access to my work account directly. (or don't want access directly)
Now - my work account is called (example) [email protected] and the calendar exposed in my personal account is [email protected] (once I'd imported it from the work account) - when configuring GCAL and activating both work and personal accounts: I find the following when picking which calendars are shown in the configuration:
Result: 'duplicate' entries shown in 'upcoming events'
Expected result: selecting or deselecting a calendar associated with a calendar in one account, shouldn't do the same for a calendar with the same name in a different account. I should be able to exclusively pick which calendars I want to show or hide based on the account they are associated with.
Hope this explanation helps.
First off, I love this and use it every day, thank you!
Would it be possible to add an option to display times in 12-hour format? (Or, is there a way I could tweak the workflow to do this?)
Can we add another option to Open Event Locations? Currently we only use Google/Apple maps to open event locations.
Lots of meetings are now hosted online, and I typically save Zoom links to event location (or at event description). It would be really nice if I can open these links directly from calendar events using Command + Return. Thanks.
In the readme it says this command is to quicklook events
⇧ / ⌘Y
⌘Y worked for that, but ⇧ Y (shift Y - right?) didn't work.
I tried removing com.apple.quarantine from the workflow file but it does not seem to resolve the problem. Does anyone have the same experience and solution? Thank you so much!
Love the idea of this workflow, wish I'd discovered it sooner!
I have discovered an issue though. A few years back Google used to add any calendar you viewed to your list of calendars, so I built up a list of somewhere around 300 calendars. Luckily it no longer does this, but it also means that I can't use this workflow.
I have a personal Google account that works fine, however when I attempt to connect my work one it limits the calendar selection to around 90 calendars, this wouldn't be an issue however my own calendar doesn't show in the list. I have started removing calendars from my sidebar, but it's pretty time consuming and would be much easier if this workflow was capable of viewing more.
I tried renaming mine to begin with a 0 as the results are sorted, but still have no luck. Please could this be fixed? If I get time I'll have a look at the code and see if I can spot what the problem is.
I'm having the exact same issue as #112. The strange thing is, after going through the Google authorization thing there's no mention of this workflow in Google's permissions page nor I receive any email from Google alerting me that an app has gained access to my account, which is usually how this goes.
Date: Feb 8, 2020
Browser: Chrome
I downloaded the Alfred workflow and tried to set up the workflow but I was greeted with following error messages:
Sign in with Google temporarily disabled for this app
This app has not been verified yet by Google in order to use Google Sign In.
Is this workflow retired or if it working, how to circumvent the error?
Thanks for this awesome workflow, hope there are some workarounds.
Right now the time is in a small, low-contrast font underneath the title/name of the event. IMO it would be a friendlier UX to put the time in front of the title/name of the event, perhaps something like:
[10:00 - 11:00] Weekly Retro
[email protected] / 1 University Avenue
Thanks for making this alfred workflow, very pleased with it.
I have multiple google accounts that I am using in my default browser.
My calendars urls
like
https://calendar.google.com/calendar/u/0/r
https://calendar.google.com/calendar/u/1/r (this one authenticated with gcal
)
https://calendar.google.com/calendar/u/*/r
I did authenticated the second acc with gcal
, the one that have this url
https://calendar.google.com/calendar/u/1/r so when I am navigating to the particular event from gcal
I am getting the event open in a browser that using the first url
as a base https://calendar.google.com/calendar/u/0/r that turning in to not found event like https://calendar.google.com/calendar/u/0/r?msg=Could+not+find+the+requested+event.&msgtok=6c0c9612719986994bcfe33cae9e1a5e7e1430ae&sf=true unless you change 0 to 1 in url.
I am wondering is there any way to get it fixed?
When trying to login first via workflow:login, Google OAuth screen is shown, when I choose my Google account the following message appears:
"This app is blocked. This app tried to access sensitive info in your Google Account. To keep your account safe, Google blocked this access."
I allowed less-secured apps in gsuite configurtion.
Any idea why?
The workflow doesn't work after upgrading to v0.2.0. Even when I fix the permissions for that file, events are not fetched from the calendars and I can't remove the accounts.
[2019-01-26 09:59:43][ERROR: input.scriptfilter] Code 126: /Users/johnnypea/Library/Caches/com.runningwithcrayons.Alfred-3/Workflow Scripts/82E438ED-C51C-402F-9D07-BDCDC1532615: line 1: ./gcal: Permission denied
It seems that every time I restart the laptop, the gcal lost all of the information and ask me to login and add the active calendars. Is it expected?
If authentication fails, the only indication is in the log file. Save error to file and show it to the user.
I think it started happening after I ran Clear Cached Calendars & Events
.
And this lasts for multiple minutes with no resolving.
Here is what Debugger shows during it:
[2018-06-22 18:49:17][input.scriptfilter] Queuing argument ''
[2018-06-22 18:49:17][input.scriptfilter] Script with argument '' finished
[2018-06-22 18:49:17][STDERR: input.scriptfilter] 18:49:17 gcal.go:301: [env] SCHEDULE_DAYS=5
18:49:17 gcal.go:301: [env] EVENT_CACHE_MINS=15
💜
18:49:17 workflow.go:614: ---- Google Calendar View/0.1.1 (AwGo/0.13.2) ----
18:49:17 gcal.go:233: command=events, calendarID=, query=, startTime=2018-06-22 00:00:00 +0200 CEST, endTime=2018-06-23 00:00:00 +0200 CEST, dateFormat=
18:49:17 cmd_events.go:43: 0 active calendar(s)
18:49:17 feedback.go:431: Sent 1 result(s) to Alfred
18:49:17 workflow.go:790: ---------------------- 6ms -----------------------
[2018-06-22 18:49:17][input.scriptfilter] {
"variables": {
"AW_SESSION_ID": "12ODY56BVP4PEAYJN27GMPAI"
},
"rerun": 0.3,
"items": [
{
"title": "Fetching List of Calendars…",
"subtitle": "List will reload shortly",
"valid": false,
"icon": {
"path": "icons/reload.png"
}
}
]
}
[2018-06-22 18:49:17][input.scriptfilter] Queuing argument ''
[2018-06-22 18:49:17][input.scriptfilter] Script with argument '' finished
[2018-06-22 18:49:17][STDERR: input.scriptfilter] 18:49:17 gcal.go:301: [env] SCHEDULE_DAYS=5
18:49:17 gcal.go:301: [env] EVENT_CACHE_MINS=15
💜
18:49:17 workflow.go:614: ---- Google Calendar View/0.1.1 (AwGo/0.13.2) ----
18:49:17 gcal.go:233: command=events, calendarID=, query=, startTime=2018-06-22 00:00:00 +0200 CEST, endTime=2018-06-23 00:00:00 +0200 CEST, dateFormat=
18:49:17 cmd_events.go:43: 0 active calendar(s)
18:49:17 feedback.go:431: Sent 1 result(s) to Alfred
18:49:17 workflow.go:790: ---------------------- 5ms -----------------------
[2018-06-22 18:49:17][input.scriptfilter] {
"variables": {
"AW_SESSION_ID": "12ODY56BVP4PEAYJN27GMPAI"
},
"rerun": 0.3,
"items": [
{
"title": "Fetching List of Calendars…",
"subtitle": "List will reload shortly",
"valid": false,
"icon": {
"path": "icons/reload.png"
}
}
]
}
[2018-06-22 18:49:18][input.scriptfilter] Queuing argument ''
[2018-06-22 18:49:18][input.scriptfilter] Script with argument '' finished
[2018-06-22 18:49:18][STDERR: input.scriptfilter] 18:49:18 gcal.go:301: [env] SCHEDULE_DAYS=5
18:49:18 gcal.go:301: [env] EVENT_CACHE_MINS=15
💜
18:49:18 workflow.go:614: ---- Google Calendar View/0.1.1 (AwGo/0.13.2) ----
18:49:18 gcal.go:233: command=events, calendarID=, query=, startTime=2018-06-22 00:00:00 +0200 CEST, endTime=2018-06-23 00:00:00 +0200 CEST, dateFormat=
18:49:18 cmd_events.go:43: 0 active calendar(s)
18:49:18 feedback.go:431: Sent 1 result(s) to Alfred
18:49:18 workflow.go:790: ---------------------- 5ms -----------------------
[2018-06-22 18:49:18][input.scriptfilter] {
"variables": {
"AW_SESSION_ID": "12ODY56BVP4PEAYJN27GMPAI"
},
"rerun": 0.3,
"items": [
{
"title": "Fetching List of Calendars…",
"subtitle": "List will reload shortly",
"valid": false,
"icon": {
"path": "icons/reload.png"
}
}
]
}
[2018-06-22 18:49:18][input.scriptfilter] Queuing argument ''
[2018-06-22 18:49:18][input.scriptfilter] Script with argument '' finished
[2018-06-22 18:49:18][STDERR: input.scriptfilter] 18:49:18 gcal.go:301: [env] SCHEDULE_DAYS=5
18:49:18 gcal.go:301: [env] EVENT_CACHE_MINS=15
💜
18:49:18 workflow.go:614: ---- Google Calendar View/0.1.1 (AwGo/0.13.2) ----
18:49:18 gcal.go:233: command=events, calendarID=, query=, startTime=2018-06-22 00:00:00 +0200 CEST, endTime=2018-06-23 00:00:00 +0200 CEST, dateFormat=
18:49:18 cmd_events.go:43: 0 active calendar(s)
18:49:18 feedback.go:431: Sent 1 result(s) to Alfred
18:49:18 workflow.go:790: ---------------------- 4ms -----------------------
[2018-06-22 18:49:18][input.scriptfilter] {
"variables": {
"AW_SESSION_ID": "12ODY56BVP4PEAYJN27GMPAI"
},
"rerun": 0.3,
"items": [
{
"title": "Fetching List of Calendars…",
"subtitle": "List will reload shortly",
"valid": false,
"icon": {
"path": "icons/reload.png"
}
}
]
}
[2018-06-22 18:49:18][input.scriptfilter] Queuing argument ''
[2018-06-22 18:49:18][input.scriptfilter] Script with argument '' finished
[2018-06-22 18:49:18][STDERR: input.scriptfilter] 18:49:18 gcal.go:301: [env] SCHEDULE_DAYS=5
18:49:18 gcal.go:301: [env] EVENT_CACHE_MINS=15
💜
18:49:18 workflow.go:614: ---- Google Calendar View/0.1.1 (AwGo/0.13.2) ----
18:49:18 gcal.go:233: command=events, calendarID=, query=, startTime=2018-06-22 00:00:00 +0200 CEST, endTime=2018-06-23 00:00:00 +0200 CEST, dateFormat=
18:49:18 cmd_events.go:43: 0 active calendar(s)
18:49:18 feedback.go:431: Sent 1 result(s) to Alfred
18:49:18 workflow.go:790: ---------------------- 4ms -----------------------
[2018-06-22 18:49:18][input.scriptfilter] {
"variables": {
"AW_SESSION_ID": "12ODY56BVP4PEAYJN27GMPAI"
},
"rerun": 0.3,
"items": [
{
"title": "Fetching List of Calendars…",
"subtitle": "List will reload shortly",
"valid": false,
"icon": {
"path": "icons/reload.png"
}
}
]
}
[2018-06-22 18:49:19][input.scriptfilter] Queuing argument ''
[2018-06-22 18:49:19][input.scriptfilter] Script with argument '' finished
[2018-06-22 18:49:19][STDERR: input.scriptfilter] 18:49:19 gcal.go:301: [env] SCHEDULE_DAYS=5
18:49:19 gcal.go:301: [env] EVENT_CACHE_MINS=15
💜
18:49:19 workflow.go:614: ---- Google Calendar View/0.1.1 (AwGo/0.13.2) ----
18:49:19 gcal.go:233: command=events, calendarID=, query=, startTime=2018-06-22 00:00:00 +0200 CEST, endTime=2018-06-23 00:00:00 +0200 CEST, dateFormat=
18:49:19 cmd_events.go:43: 0 active calendar(s)
18:49:19 feedback.go:431: Sent 1 result(s) to Alfred
18:49:19 workflow.go:790: ---------------------- 5ms -----------------------
[2018-06-22 18:49:19][input.scriptfilter] {
"variables": {
"AW_SESSION_ID": "12ODY56BVP4PEAYJN27GMPAI"
},
"rerun": 0.3,
"items": [
{
"title": "Fetching List of Calendars…",
"subtitle": "List will reload shortly",
"valid": false,
"icon": {
"path": "icons/reload.png"
}
}
]
}
I tried to uninstall Gcal and install it again thinking that may solve this but the issue is still there. I am not sure perhaps I have to reauthorise the workflow? But not sure how to do that either.
Thank you for any help.
Here's an error I get every time I click on the event in the upcoming or today's list: https://p194.p3.n0.cdn.getcloudapp.com/items/v1u40bnr/Image%202020-12-15%20at%2011.28.51%20AM.jpg?v=9fbda31110c3e0a0c669fcf798b334dd
Dependabot can't resolve your Go dependency files.
As a result, Dependabot couldn't update your dependencies.
The error Dependabot encountered was:
howett.net/[email protected]: unrecognized import path "howett.net/plist" (https fetch: Get https://howett.net/plist?go-get=1: EOF)
If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.
It would be great if it would be possible to configure the workflow to open the events in the Calendar application instead of opening the website. I've tried specifying the calendar app in the configuration (using CALENDAR_APP
workflow environment variable set to /Applications/Calendar.app
) but while the app is opened it prompts one to subscribe to the event instead of showing its details:
Is there a way to add support for showing the details instead?
Some fields (description, …?) can contain HTML.
<a>
tags should also be made clickable.Add an action to create a new calendar event via text entry.
https://www.alfredforum.com/topic/11016-google-calendar-view/?tab=comments#comment-58329
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.