Integration Guide

Notion Calendar Integration

Automatically parse calendar invites from emails and create structured entries in your Notion database — with attendees, times, locations, and RSVP statuses.

Overview

The Notion Calendar integration detects iCal (.ics) data in incoming emails — meeting invites, event updates, cancellations — and creates database entries with all event details parsed and structured.

iCal Parsing

Native .ics file and calendar MIME type support

Attendee Tracking

Names, emails, and RSVP statuses preserved

Method Awareness

Distinguish invites, updates, and cancellations

Auto Properties

Database columns created automatically

How It Works

  1. 1
    Email arrives

    An email with a calendar invite (.ics attachment or inline calendar data) hits your Mailhooks address.

  2. 2
    iCal detection

    Mailhooks scans for text/calendar content, .ics attachments, or inline BEGIN:VCALENDAR blocks.

  3. 3
    Event parsing

    The iCal data is parsed to extract event details: summary, start/end times, location, organizer, attendees, status, and method.

  4. 4
    Notion page creation

    A new page is created in your Notion database with all event details as properties, plus rich page content showing attendees and description.

Create a Calendar Hook

Before creating a Calendar Hook, make sure you've connected your Notion workspace.

Step 1

Prepare a Database

Create a new Notion database for calendar events. You can start with an empty database — Mailhooks will add the required properties automatically.

Step 2

Create the Hook

  1. 1. Go to Dashboard → Hooks
  2. 2. Click Add Hook
  3. 3. Select Notion Calendar
  4. 4. Choose your connected Notion workspace
  5. 5. Select the target database
  6. 6. Configure property mapping (or use defaults)
  7. 7. (Optional) Set domain filtering
  8. 8. Click Create
Step 3

Test It

Click Send Test to create a sample calendar event in your database, or forward a real calendar invite to your Mailhooks address.

Database Schema

Mailhooks automatically creates these properties when you set up a Calendar Hook:

PropertyTypeDescription
Event
Title
Event summary/name (page title)
Start
Date
Event start date/time (with end time if available)
End
Date
Event end date/time
Location
Rich Text
Event location (physical or virtual)
Organizer
Email
Meeting organizer's email address
Attendees
Rich Text
List of attendees with RSVP status
Status
Select
Confirmed / Tentative / Cancelled
UID
Rich Text
Unique event identifier (for tracking updates)
Mailhooks
URL
Link back to the original email in Mailhooks

Calendar Methods

iCalendar events include a METHODthat indicates the type of notification. Mailhooks displays this in the page content:

📬

REQUEST

A new meeting invitation. You're being asked to attend.

CANCEL

The meeting has been cancelled. Status is set to "Cancelled".

↩️

REPLY

An attendee has responded (accepted/declined/tentative).

📢

PUBLISH

A published event (no response expected).

Also Process as Email

By default, Calendar Hooks only extract calendar data and don't trigger other hooks (webhooks, Discord, regular Notion, etc.).

Enable Also process as email to:

  • Send the calendar invite to your webhook
  • Post to Discord
  • Save the full email to another Notion database
  • Trigger any other hooks you have configured

Troubleshooting

No calendar data found

  • Ensure the email contains an .ics attachment or inline calendar data
  • Some calendar apps send plain-text invites without iCal — these won't parse
  • Check the Logs for the specific error

Attendees not showing

  • Some calendar invites don't include attendee data (especially forwarded invites)
  • Check that the Attendees property exists in your database
  • Attendees are limited to 20 per event in the page content

Times look wrong

  • Calendar times are stored in UTC in Notion
  • Your Notion view may need timezone adjustment
  • All-day events are detected and handled separately

Database properties missing

  • Make sure the database is shared with the Mailhooks integration
  • Try re-creating the hook — properties are created on hook creation
  • Manually add missing properties with the correct types

Get Started

© 2026 Mailhooks. All rights reserved.