Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
NOTION_CALENDAR_TOKENNoYour session JWT or Bearer token. The server will construct the Authorization header. Alternative to NOTION_CALENDAR_AUTHORIZATION.
NOTION_CALENDAR_BASE_URLNoOptional base URL for the Notion Calendar API. Defaults to https://calendar-api.notion.so if not provided.
NOTION_CALENDAR_AUTHORIZATIONNoThe full Authorization header value, e.g. 'Bearer YOUR_SESSION_JWT'. Alternative to NOTION_CALENDAR_TOKEN.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_userA

Call first to learn who is signed in and which calendar accounts exist. POST /v2/getUser {}. Returns profile + linked accounts (title/email first). Use before get_calendar_lists / get_events. Session JWT required.

get_holdsA

List scheduling Holds (booking pages) for the signed-in user. POST /v2/getHolds {}. Call when you need hold aliases/ids before get_hold / create_hold. Name/alias first, never lead with id.

get_notion_session_usersA

List Notion session users tied to this Calendar session. POST /v2/getNotionSessionUsers {}. Call when bridging Calendar ↔ Notion identity. Display name/email first.

get_calendar_listsA

List calendars for one or more accounts (sidebar calendar list). Call after get_user when you need calendarId values. POST /v2/getCalendarLists {queries:[{provider, accountId}]}. queries_json: JSON array. Calendar summary/name first.

get_calendarsA

Fetch calendar metadata (colors, access role, timeZone) for accounts. POST /v2/getCalendars {queries:[{provider, accountId, query?}]}. queries_json: JSON array. Prefer get_calendar_lists for the sidebar list. Summary first.

get_eventsA

Fetch events in a time window for specific calendars. Call after you know provider/accountId/calendarId. POST /v2/getEvents {queries:[...]}. timeMin/timeMax are ms epoch. queries_json: JSON array; provider defaults to google. Return order: summary/title first, never lead with event id.

get_eventA

Fetch one event by id. Call when you already have provider/accountId/calendarId/eventId. POST /v2/getEvent {query:{...}}. Optional userTimeZone. Summary first in any presentation.

search_eventsA

Full-text search events across accounts/calendars in a time range. Call when the user asks to find meetings by keyword. POST /v2/searchEvents. time_min/time_max are ms epoch. accounts_json: [{accountId, calendarIds:[]}]. Title/summary first.

create_eventA

Create a calendar event. Call after confirming calendar + time with the user. POST /v2/createEvent. eventData must include id (uuid hex ok), summary, start, end, status, provider, accountId, calendarId, reminders:{useDefault:true}. Use start/end only (never startTime/endTime). start_json/end_json: {dateTime,timeZone} or {date}. send_updates: all|none|externalOnly. Summary first.

update_eventsA

Update one or more existing events. Call when changing time/title/details. POST /v2/updateEvents {mutations:[{provider, accountId, eventId, calendarId, eventData, userTimeZone?, sendUpdates?}]}. mutations_json: JSON array. Patch eventData with fields to change; keep summary visible. sendUpdates: all|none|externalOnly.

delete_eventsA

Delete one or more events. Call only after confirming which event(s). POST /v2/deleteEvents {mutations:[{provider, accountId, calendarId, eventId, sendUpdates?}]}. mutations_json: JSON array. Destructive. sendUpdates: all|none|externalOnly.

rsvp_eventA

RSVP to an event invite (accepted|declined|tentative). Call when the user wants to respond to an invitation. POST /v2/rsvpEvent. response_status must NOT be needsAction. Optional comment and counter_proposal_json {start,end}.

get_calendar_free_busyA

Get free/busy blocks for calendars in a time range. Call when checking availability before scheduling. POST /v2/getCalendarFreeBusy. time_min/time_max ms epoch. calendars_json: [{accountId, calendarId}].

get_user_preferencesA

Read Calendar user preferences (working hours, defaults, etag). Call before update_user_preferences (etag required for force check). POST /v2/getUserPreferences {}.

update_user_preferencesA

Update Calendar user preferences. Call only with an etag from get_user_preferences (412 if stale). POST /v2/updateUserPreferences {userPreferences:{...}}. user_preferences_json: full/partial prefs object including etag.

get_contactsA

Fetch contacts via POST /v2/getContacts (Spectral-proven; may be alias). Call for quick contact lookup; prefer get_people for paginated directory. Optional body_json object. Display name/email first.

get_peopleA

List people/contacts from connected accounts (paginated). POST /v2/getPeople {accountIds?, cursor?, limit?}. Call when searching attendees by directory. Display name/email first.

export_eventsA

Normalize/export partial event objects (ICS-oriented shape). POST /v2/exportEvents {events:[...]}. events_json: array of partial events with id/start/end/summary/…. Call when packaging events for export.

incremental_syncA

Drive incremental calendar sync with sync tokens. POST /v2/incrementalSync {syncTokens, metadata:{caller}}. Often 400 without valid tokens from a prior sync — expose for advanced use; prefer get_events for normal reads. sync_tokens_json + optional metadata_json.

get_colorsA

Fetch calendar color palette. Call when rendering/assigning calendar colors. POST /v2/getColors {}.

get_synchronized_calendarsA

List synchronized/mirrored calendars. Call when inspecting Calendar sync links between accounts. POST /v2/getSynchronizedCalendars {}. Name first.

get_calendar_resourcesA

List room/resource calendars for accounts. POST /v2/getCalendarResources {accounts:[accountId,...]}. accounts_json: JSON string array. Call when booking rooms.

get_group_membersA

Resolve Google group members for attendee expansion. POST /v2/getGroupMembers {accountId, emails:[...]}. emails_json: JSON array. Call when an invitee is a group address.

get_holdA

Fetch one Hold (scheduling page) by username, alias, or holdShortId. POST /v2/getHold. Optional time_min/time_max (ms). Call after get_holds when inspecting availability slots. Alias/name first.

create_holdA

Create a Hold scheduling page. POST /v2/createHold. hold_json must include id, timeRanges, userPrimaryTimeZone (and usual Hold fields). Call when the user wants a new booking link. Alias/title first.

update_holdA

Update an existing Hold. POST /v2/updateHold. hold_json should include id plus fields to change (alias, timeRanges, …). Call after get_hold / get_holds.

delete_holdA

Delete a Hold by holdId. POST /v2/deleteHold {holdId}. Destructive — confirm with the user first.

update_calendarsA

Patch calendar metadata (summary, color, selected, …). POST /v2/updateCalendars {mutations:[{provider, accountId, calendarId, calendarData, colorRgbFormat?, variant?}]}. mutations_json: JSON array. Call when renaming/recoloring calendars. Summary first.

insert_calendar_listA

Subscribe/add a calendar to the user's calendar list. POST /v2/insertCalendarList {mutation:{provider, accountId, calendarId, calendarData?}}. mutation_json: JSON object. Call when adding a shared calendar.

delete_calendar_listA

Unsubscribe/remove a calendar from the calendar list. POST /v2/deleteCalendarList {mutation:{provider, accountId, calendarId}}. mutation_json: JSON object. Destructive for the sidebar entry (not the calendar itself).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/felipeorlando/notion-calendar-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server