TL;DR: If you accumulate a lot of “Past and incomplete” Slack reminders, this will hang your client when you run the /remind list command. Right now there is no workaround for this but using the API. Here is a simple hack script you can run on bash to batch delete ALL your reminders on Slack.
$ curl https://slack.com/api/reminders.list?token=$SLACK_TOKEN | # Fetch reminders for all users in the account
sed $'s/,/,\\\n/g' | # Add new lines after each JSON property
grep -B2 ".*user.*$SLACK_USER" | # Find all reminders created by $SLACK_USER
grep '"id"' | # Find the lines with IDs of the reminders
grep -o 'R\w*' | # Get the pure reminder ID
xargs -tI REMINDER curl -w "\n" "https://slack.com/api/reminders.delete?token=$SLACK_TOKEN&reminder=REMINDER" > reminders
Not that long full post:
A few weeks ago I started to get serious about using Slack reminders at work, bad thing is that I spend a lot of time not being serious about it and I accumulated something like 300 overdue reminders. Whenever I ran the /remind list command the Slack client will hang for a quite a few seconds and bump on the fan on my MBP. This also happened every time I clicked on the delete option for each reminder.
I contacted Slack support that quickly answered me that:
- There is no alternative on the client apps.
- Take a look at the reminders.delete endpoint as an alternative.
- They will discuss this issue internally.
For sure they will eventually fix the bug, meanwhile, I took a look at the endpoint Gillian suggested:
I decided that despite I no longer code 😉 it should be a no brainer using the CLI to purge the offending reminders so I would not keep feeling guilty because of my procrastination.
The thing is that endpoint that returns the list of reminders on Slack returns ALL the reminders for the account, for all the members. So I needed to get this list, filter it, so only my reminders stay and then call the delete. I guess that I should not be able to delete other members reminders, but I wasn’t going to do that experiment on the company account.
Also, I didn’t feel like installing a JSON command for this, so the script uses the bare minimum required to fix this in Bash, it is quite hacky, so use it under your responsibility. But it worked for me.
You just need to set up the $SLACK_TOKEN and $SLACK_USER environment variables, before running the script on top. You can quickly get a test authentication token from https://api.slack.com/docs/oauth-test-tokens