Back to Overview

Slack Notifications

Receive instant Slack messages whenever a meeting is booked, cancelled, or rescheduled. Connect with one click via OAuth, or paste an Incoming Webhook URL for the quickest setup.

Luka Breitig — Technical Product Builder & AI Developer
Luka Breitig

Technical Product Builder & AI Developer

💬 Real-time booking notifications

Tymeslot posts formatted Slack messages the moment a meeting is booked, cancelled, or rescheduled — to any channel in your workspace, including private channels and DMs.

  • Two connection modes — OAuth (branded sender, channel switching, multi-channel) or a pasted Incoming Webhook URL (one channel, generic sender, no setup)
  • Three events supported: new meeting, cancellation, and reschedule — each independently togglable
  • Delivery is asynchronous with automatic retries — transient Slack API errors never block bookings

☁️ For Tymeslot Cloud users

On tymeslot.app, Slack is one click away:

  1. Open Dashboard → Automation → Slack.
  2. Click Add to Slack and confirm the workspace and permissions inside Slack.
  3. Pick the channel the bot should post to. Public channels are listed automatically; for a private channel, invite the bot first, then pick it from the dropdown.
  4. Choose which events should fire notifications, then save.

Pro plan required on tymeslot.app — free for self-hosters.

Slack notifications on tymeslot.app are available on the Pro plan. Self-hosted deployments have no such restriction — both modes are fully available out of the box.

1 Self-hosting — OAuth mode (recommended)

OAuth gives every user a one-click "Add to Slack" button, branded messages from your own Slack App, and the ability to switch channels without re-pasting URLs. It is the recommended mode for any team deployment.

Register a Slack App at api.slack.com/apps and configure it as follows:

  1. Click Create New App → From scratch and pick any workspace for development.
  2. Under OAuth & Permissions, add the redirect URL:
    https://your-domain/api/slack/oauth/callback
  3. Under the same page, add these bot token scopes:
    chat:write\nchat:write.public\nchannels:read\ngroups:read\nteam:read
  4. Under Manage Distribution, enable public distribution if you want any workspace to install the app. For an internal deployment, leave it private and install from your own workspace.
  5. Copy the Client ID and Client Secret from Basic Information → App Credentials.

Then set these environment variables on your Tymeslot deployment:

SLACK_CLIENT_ID=<your client id>\nSLACK_CLIENT_SECRET=<your client secret>

Setting SLACK_CLIENT_ID enables Slack notifications. With both variables set, OAuth mode is active and users see the "Add to Slack" button in the dashboard.

Why OAuth?

OAuth is future-proof — Slack is deprecating legacy Incoming Webhooks for new apps. You also get a branded sender (your app name and icon), per-user channel switching, and the option to post to private channels and DMs the bot has been invited to.

2 Self-hosting — Webhook URL mode (quickest setup)

If you do not want to register a Slack App, users can paste an Incoming Webhook URL directly. Set:

SLACK_ENABLED=true

With SLACK_ENABLED=true and no OAuth credentials, the dashboard shows a single field for an Incoming Webhook URL.

To generate a URL, in Slack:

  1. Open api.slack.com/apps and create a new app (or pick an existing one).
  2. Open Incoming Webhooks and toggle the feature on.
  3. Click Add New Webhook to Workspace, pick the channel, and approve.
  4. Copy the generated URL (it looks like https://hooks.slack.com/services/...) and paste it into Tymeslot.

Trade-offs vs OAuth

One URL maps to exactly one channel — switching channels means generating a new URL. The sender appears as a generic webhook bot rather than your branded app, and DMs are not supported. For a quick personal setup, this is the shortest path; for a team, prefer OAuth.

🔁 Switching channels

OAuth mode: open the integration, pick a new channel from the dropdown, and save. Public channels appear automatically. For private channels, invite the bot first (in Slack: /invite @YourApp) — only channels the bot belongs to are eligible for private posting.

Webhook URL mode: generate a new Incoming Webhook URL in Slack for the desired channel and paste it into Tymeslot — the previous URL is replaced.

🔧 Troubleshooting

  • channel_not_found — the bot is not a member of the target channel. In Slack, run /invite @YourApp in that channel and retry.
  • not_in_channel — same fix as above, or switch to a public channel that chat:write.public can reach without invitation.
  • token_revoked / account_inactive — the workspace revoked the install or deactivated the bot user. Re-install the app from the Tymeslot dashboard.
  • Webhook URL stopped working — a workspace admin can revoke Incoming Webhook URLs at any time. Generate a new one in Slack and paste it back into Tymeslot.
  • Rate limiting — Slack throttles aggressive senders. Tymeslot retries automatically with exponential backoff, so transient rate-limit errors heal on their own.

🔐 Privacy & permissions

Each notification contains only the data needed to identify the meeting: the attendee name, the meeting time, the email address used to book, the meeting type, and (where relevant) the video link or cancellation reason. No calendar contents or other meeting data are sent.

The scopes requested are the minimum needed to post messages and list channels the user picks from: chat:write, chat:write.public, channels:read, groups:read, and team:read. The app cannot read messages, browse files, or access user profiles.

To revoke access at any time, open Slack → Settings & administration → Manage apps, find the Tymeslot app, and remove it. Tokens are invalidated immediately and Tymeslot stops trying to post.

🔗 Related Articles

Read Telegram Notifications

Telegram Notifications

Instant Telegram notifications for every booking, cancellation, and reschedule. Supports a shared admin bot or per-user bot tokens — webhook-driven with automatic retries.