Skip to content
Notis

Protect focus hours with a Cal schedule

When you share a recurring focus block in Slack, have Notis reflect that window in your Cal availability schedule.

Trigger

Channel Message Received

Triggered when a message is posted in a Slack channel (public, private, or multi-party IM). Does NOT match direct messages.

Action

Create user availability schedule

Creates a cal.com user availability schedule, defining its name, timezone, weekly recurring availability, and specific date overrides; if `isdefault` is true, this schedule replaces any existing default and applies to event types not linked to a specific schedule.

Why this helps

Focus time announced to a team can still be booked over if availability never gets updated.

  • Helps make focus boundaries visible to scheduling.
  • Reduces interruptions caused by bookable focus time.
  • Cuts down on re-entering a shared schedule change.

Setup

Build it in a few focused steps.

  • 1Connect Slack and Cal to Notis once through the portal.
  • 2Create an automation in the portal, or ask Notis to create a Cal schedule when a Slack channel message clearly states recurring focus hours.
  • 3Select Channel Message Received as the trigger and choose a channel for run reports.
  • 4Test with one real focus-hours announcement and review the resulting schedule.

Questions about this workflow

Should I use this for a temporary focus block?

This action is intended for availability schedules with weekly slots and date overrides. Specify how temporary periods should be handled.

Can it replace my default availability?

A schedule marked default may replace an existing default, so the instruction should reflect the intended behavior.

When this happens · Trigger

Do this · Action

Supported Triggers and Actions

Notis builds workflows that link Slack to Cal. A trigger fires from one place; an action lands in another.

Slack triggers

Cal actions

Recurring trigger

Notis starts this workflow on a schedule, such as daily, weekly, or during business hours.

TriggerScheduled

Add member to team

Adds a new member to a specified team within an organization by creating a team membership.

ActionInstant

Webhook trigger

Notis starts this workflow when an external tool or custom backend sends an HTTP request.

TriggerInstant

Add organization attribute option

Adds a new option to an organization's attribute, requiring a display `value` and a `slug` unique for that attribute.

ActionInstant

New Channel Created Trigger

Triggered when a new channel is created in Slack.

TriggerInstant

Delete oauth client webhook

Permanently deletes a specific webhook subscription of an oauth client in the cal application, stopping its notifications.

ActionInstant

Channel Message Received

Triggered when a message is posted in a Slack channel (public, private, or multi-party IM). Does NOT match direct messages.

TriggerInstant

Cancel booking via uid

Cancels an existing and active cal.com booking using its unique identifier (uid).

ActionInstant

Direct Message Received

Triggered when a new direct message (DM) is sent to a user in Slack. Catches all DMs across all DM channels.

TriggerInstant

Check calendar availability

Retrieves free/busy availability for a specified calendar to aid scheduling without revealing event details; requires an existing, accessible calendar, noting that data granularity can vary.

ActionInstant

Message Reaction Added

Triggered when a reaction is added to a message in Slack. Supports optional filtering by channel and emoji name.

TriggerInstant

Check gcal synchronization status

Call this read-only action to verify the connection and synchronization status of a user's google calendar integration with cal.

ActionInstant

Message Reaction Removed

Triggered when a reaction is removed from a message in Slack. Supports optional filtering by channel and emoji name.

TriggerInstant

Check ics feed calendar endpoint

Checks an ics feed url (expected as a query parameter) to verify its validity, accessibility, and icalendar data integrity.

ActionInstant

Reaction Added Trigger

DEPRECATED: use `SLACK_MESSAGE_REACTION_ADDED` instead. Triggered when a reaction is added to a message in Slack.

TriggerInstant

Check Stripe status

Verifies if stripe is correctly connected to the cal scheduling system and functional for processing payments, reporting only on the integration's status.

ActionInstant

Connect any two apps with Notis in the middle.

Slack and Cal, or any other combination from 1,000+ integrations.

When this happens · Trigger

Do this · Action

Save your first hour today.

7-day trial of any paid plan, with 20$ of usage included.
No card. Works with personal or business Cal.