Skip to main content

Notion Calendar smart home integration, free and open source

Notion Calendar integration for Gladys Assistant

Sync the Notion databases shown in Notion Calendar into the Gladys calendars.

Bring into Gladys the Notion databases you display in Notion Calendar: team planning, tasks with a due date, editorial calendar, trips… The events show up in the Gladys calendar view, fire the "An event is coming" reminder, feed the assistant and two dashboard widgets.

How it works​

Notion databases (date property) ──Notion API──> this integration ──> Gladys calendars

Notion Calendar has no public API: it displays the Notion databases that have a date property. The integration reads those same databases through the Notion API, then:

  • each database (data source) with a date property becomes a Gladys calendar, named after the database;
  • each dated page becomes an event: its title, its date (all day or timed), its Notion link and, when the database has a Location / Lieu text property, its location.

The sync goes from Notion to Gladys, every 15 minutes by default. A page deleted, or whose date is cleared, leaves Gladys at the next sync. Only the Add a Notion event scene action writes to Notion.

The Google or Outlook meetings Notion Calendar also displays do not go through Notion: use the Gladys CalDAV or Google integration for them.

Setup​

1. Create a Notion integration (once per person)​

  1. Open My Notion integrations and create an internal integration in your workspace.
  2. Capabilities: Read content is enough. Also tick Insert content to use the "Add a Notion event" scene action.
  3. Copy the integration secret (it starts with ntn_).
  4. On each database to sync, open the ••• menu → Connections and add your integration. A database that is not shared stays invisible.

2. Integration settings (administrator)​

In the Configuration tab:

SettingDefaultPurpose
Sync interval15 minHow often Notion is read (5 minutes minimum)
Days kept in the past30Older events are removed from Gladys
Days synced ahead90Horizon of the view, reminders and widgets

3. Enable "My calendars" (each user)​

Calendars are personal data: each Gladys user enables the integration for themselves, with their own Notion secret, in the My calendars block of the integration page.

  • Notion integration secret: the secret copied at step 1.
  • Databases (optional): links or ids of the databases to sync, separated by commas. Leave empty to sync every database shared with the integration.
  • Date property (optional): name of the property to use when a database has several (e.g. Due). Empty: the first date property of the database.

The Test the Notion accounts button of the Configuration tab tells, for each user, how many dated databases their secret can read.

4. Share the calendars that matter​

A synced calendar starts private: only its owner sees it. Share it with the household (Shared toggle) to show it on the dashboards, in the scenes and to the other members. The Synced toggle pauses a calendar without deleting it.

Scenes​

Triggers​

TriggerWhenVariables
Notion event addedA dated page appears in a shared Notion calendarcalendar, name, start, all_day, url
Notion sync failedAn account stops syncing (revoked token, unshared database)user, error

The "Notion event added" trigger can be filtered on the calendar name (the name of the Notion database). It does not fire on the very first sync of an account, nor for the events created by the scene action below.

The built-in Gladys trigger An event is coming works on the shared Notion calendars too.

Actions​

ActionFieldsOutputs
Sync Notion calendars—calendars, events, success
Add a Notion eventcalendar, name, start, end, locationcreated, url
Get the next Notion eventcalendar (empty: all)found, name, start, minutes_until, calendar, url
  • Start / end: a date (2026-10-12) for an all-day event, or a date-time with an offset (2026-10-12T09:00:00+02:00). Scene variables are accepted.
  • The actions only see the shared calendars.

Example: every morning at 7, "Get the next Notion event", then if found is true, have the assistant announce {{name}}.

Widgets​

WidgetContent
Notion agendaThe next events (1 to 8), filterable by calendar, with their Notion link
Notion summaryEvents within 24 h and 7 days, time to the next one, sync health

Both widgets offer a Sync now button and only show the shared calendars (a dashboard may hang on a public screen).

Troubleshooting​

  • "Notion refused the token": the secret was regenerated or the integration deleted. Paste the new secret in My calendars.
  • "A database is not shared": a database listed in "Databases" is not connected to the integration (••• → Connections), or the link is wrong.
  • A database does not show up: it has no date property, or it is not shared with the integration.
  • An event longer than 90 days overflowing into the period is not synced: only the pages starting at most 90 days before the period are read.
  • The integration logs (Supervision tab) detail every sync; the Notion secret never appears there.

Privacy​

Each user's Notion secret is kept by Gladys, never shown again in the interface, and only sent to api.notion.com. The integration only reads the databases you explicitly shared with your Notion integration.

Configuration settings​

These are the settings Notion Calendar asks for in its configuration screen in Gladys.

SettingTypeRequiredDescription
How it workssectionNoEach user enables the integration in "My calendars" below with their own Notion token. Every Notion database with a date property becomes a Gladys calendar, refreshed at the interval set here. Calendars start private: share them to show them on the dashboards and in the scenes.
Sync interval (minutes)numberNoHow often Notion is read, for every user (5 minutes minimum).
Days kept in the pastnumberNoOlder events are removed from Gladys.
Days synced aheadnumberNoHorizon of the calendar view, the reminders and the widgets.

How to install Notion Calendar in Gladys​

  1. In Gladys, open Integrations: Notion Calendar appears in the catalog, next to the native integrations, with a community badge.
  2. Click Install. Gladys pulls the Docker image (ghcr.io/quentinlegay/gladys-notion-calendar:1.0.0), starts it in a sandbox isolated from the core, and generates the integration's interface (devices, discovery and configuration).
  3. Open the Configuration screen of the integration, fill in the settings, and save.
  4. You can also install it directly from its repository URL: https://github.com/quentinlegay/gladys-notion-calendar.

Notion Calendar requires Gladys >=5.2.0. The catalog inside Gladys refreshes every hour, so a new version becomes available at most one hour after its release.

Not running Gladys yet? It is free and open source: follow the installation guide to get started.

About external integrations​

Notion Calendar is an external integration: a community integration packaged as a Docker container and published on GitHub, that Gladys installs in one click and runs in a sandbox isolated from its core. It is published and maintained by quentinlegay, not by the Gladys core team.

Subscribe to the Gladys Assistant newsletter

A few emails per month about new releases and project news. Sent by Pierre-Gilles Leymarie, founder of the project. Unsubscribe anytime 🙂