Integration · Communication
Connect Claude & ChatGPT to Pencil Spaces
Ask your AI who attended yesterday's session, what was said in a recording, or to schedule next week's class in Pencil Spaces. It can create and update Spaces and events, invite users to your institution, and read programs, cohorts, session reports and user availability. Admin work for your sessions gets done from a chat.
Free plan, no credit card. Takes about a minute.
Try asking
“Who attended Tuesday's algebra session?”
The AI finds the event and reads its attendance information.
“Summarize the transcript of the latest recording in the Chemistry Space.”
It lists the Space's recordings and reads the transcription of the newest one.
“Schedule a session with Anna on Thursday 16:00-17:00 Copenhagen time in her Space.”
It creates the event with title, start, end, timezone, attendee and the linked Space.
What your AI can do
Spaces and users
Create, update and archive Spaces, add or remove users and change their roles, and invite, read and update users in your institution.
Events and scheduling
Schedule, update, cancel and delete events, record RSVPs, read attendance and check user availability.
Recordings and reports
List and download recordings, read transcriptions, and get session analytics and reports, plus programs and cohorts.
“Create a Space for the new Biology group and add the three tutors as hosts.”
It creates the Space with title and hosts. You decide whether invitees get an email.
“Invite [email protected] as a teacher.”
It invites the user to your institution with name, email and role. Pencil Spaces sends the invitation email.
“When is Jonas available next week?”
It reads the user's availability slots.
56 tools for Pencil Spaces
These tools are switched on when you connect. You can switch any of them off, or require your approval before it runs.
cancel_eventDeletesCancel an event by `event_id` with a `note` explaining why. Attendees are affected; this cannot be undone.create_attributeChanges dataCreate a new attribute.create_eventChanges dataSchedule a new event with `title`, `start`, `end`, `timezone`, attendees, organizers, optional linked `space_id`, location, description and recurrence.create_program_cancellationChanges dataCreate a new cancellation for a program. Required: name or start.create_program_cohortChanges dataCreate a new cohort for a program. Required: name or organizer ids. API summary: Create a cohort.create_spaceChanges dataCreate a new Space with a `title`, hosts, participants and visibility, or clone an existing one. Set `notify_invitees` to true to email invitees, false to stay silent.create_space_end_ongoing_sessionChanges dataCreate a new end ongoing session for a space. API summary: End an ongoing session in a Space.create_user_api_userChanges dataCreate a new user. Required: user role. Search users first to avoid duplicates. API summary: Create an API-managed user.create_webhookDeletesCreate a new webhook. Destructive action; may require approval. API summary: Create or update a webhook config.delete_eventDeletesPermanently delete an event by `event_id`. This cannot be undone.delete_program_cancellationDeletesPermanently delete a cancellation by cancellation id. Destructive action; may require approval.delete_program_cohortDeletesPermanently delete a cohort by cohort id. Destructive action; may require approval.delete_recordingDeletesPermanently delete a recording by recording id. Destructive action; may require approval. API summary: Delete a recording in a Space.delete_sessionDeletesPermanently delete a session by session id. Destructive action; may require approval.delete_spaceDeletesPermanently delete a space by space id. Destructive action; may require approval.delete_user_removesMoves moneyPermanently delete a remove by user id. Financial or irreversible action; may require approval. API summary: Remove user from your institution.delete_webhooksMoves moneyPermanently delete a webhook. Financial or irreversible action; may require approval. API summary: Delete the webhook config.download_recordingDownload a recording by `recording_id`.get_alertGet one alert by alert id. API summary: Get an alert by ID.get_auditGet one audit by document id. API summary: Get audit history for a document.get_eventGet one event by `event_id`, with time, attendees, organizers and linked Space.get_event_attendanceGet attendance information for a past event by `event_id`.get_programGet one program by `program_id`.get_program_cancellationGet one cancellation for a program by cancellation id. API summary: Get a specific cancellation by ID.get_program_cohortGet one cohort for a program by cohort id. API summary: Get a specific cohort by ID.get_sessionGet analytics details for one session in a Space by `session_id`.get_spaceGet details for one Space by `space_id`.get_transcriptionGet the transcription of a recording by `recording_id`.get_userGet one user's profile by `user_id`.get_user_availabilityGet a user's availability slots by `user_id`.invite_userVisible to othersInvite a new user to your institution by `name`, `email` and `user_role`. This sends an invitation email to the person.list_attributesList attributes. API summary: Retrieve all attributes.list_eventsList events in a date range. `filters` is required: a Base64-encoded JSON object with the filter fields (such as the date range). Supports `page` and `limit`.list_program_cancellationsList cancellations for a program. API summary: Get all cancellations for a program.list_program_cohortsList the cohorts of a program by `program_id`.list_programsList your programs, with `page` and `limit` for paging.list_recordingsList recordings across all your Spaces, with `page`, `limit`, `starting_after` and `ending_before` for paging.list_session_reportsGet the reports for a session by `session_id`.list_sitesList sites. API summary: Retrieve a list of all sites for the institution.list_space_recordingsList the recordings of one Space by `space_id`.list_spacesList Spaces, with `page` and `limit` for paging and an optional Base64-encoded JSON `filters` string.list_usersList the users in your institution, with `page` and `limit` for paging and an optional Base64-encoded JSON `filters` string.list_webhooksList webhooks. API summary: Get webhook config.rsvp_to_eventChanges dataRecord an RSVP for a user on an event: `event_id`, `user_id`, `status` and an optional note.update_attendance_updatesVisible to othersUpdate an existing update identified by event id. Only the fields you pass are changed. Has effects visible outside this system. API summary: Update attendance details for a user in a past event.update_attributeChanges dataUpdate an existing attribute identified by attribute id. Only the fields you pass are changed. API summary: Modify the attribute key.update_eventVisible to othersChange an event by `event_id`: title, attendees, organizers, location, Space or description. Only the fields you pass change; attendees may see the change.update_event_2Changes dataUpdate an existing event identified by event id.update_program_cancellationChanges dataUpdate an existing cancellation identified by cancellation id. Only the fields you pass are changed. API summary: Update a cancellation.update_program_cohortChanges dataUpdate an existing cohort identified by cohort id. Only the fields you pass are changed. API summary: Update a cohort.update_slotChanges dataUpdate an existing slot identified by user id. API summary: Create or update a user's availability slots.update_spaceChanges dataUpdate a Space by `space_id`: its title, visibility, or archive it via the `space` object.update_space_settingsVisible to othersUpdate an existing setting identified by space id. Only the fields you pass are changed. Has effects visible outside this system. API summary: Modify the space settings.update_space_usersChanges dataAdd, remove or change the roles of users in a Space by `space_id`. Set `notify_invitees` to email newly added people.update_update_attributeChanges dataUpdate an existing update attribute identified by update attribute id. Only the fields you pass are changed. API summary: Update an attribute.update_userChanges dataUpdate a user by `user_id`: name, language, external ID, sites or custom attributes. Only the fields you pass change.
Set up in three steps
- 1
Pick the app
Create a free HeyMyApps account and choose Pencil Spaces from the app list.
- 2
Paste your key
Paste your Pencil Spaces API key. You need a usage-based or Enterprise Pencil Spaces account and must be an Institution Admin. In Spaces Manager (my.pencilapp.com) open Settings > API Key > Generate and copy the key right away, since it is shown only once.
- 3
Add the link to your AI
You get a personal MCP link. Add it to Claude, ChatGPT or Cursor:
- Click your name, then Settings › Connectors › Add custom connector.
- Paste your link as the Remote MCP server URL.
- Switch it on from the + menu in a chat.
Questions
What can the AI do in Pencil Spaces?
The AI can list and read Spaces, users, events, programs, cohorts, recordings, transcriptions, session analytics and reports, attendance and user availability. It can create and update Spaces and events, change who is in a Space, record RSVPs, update users and invite new ones. It can also cancel or delete events if you switch those tools on.
Does the AI see my Pencil Spaces API key?
No. Your Pencil Spaces API key is encrypted at rest and never shown to the AI. After you save it, it is not shown again, not even to you. The AI only sees the results of the tools it calls.
Can I control what the AI is allowed to do?
Yes. You choose which tools are switched on, so you can start read-only. Cancelling or deleting an event cannot be undone, and inviting a user sends an email, so these can require your approval before they run. Every tool call is logged.
Does it work with ChatGPT?
Yes. In ChatGPT go to Settings › Apps & Connectors › Advanced and turn on Developer mode, then add your HeyMyApps link. Developer mode needs a paid ChatGPT plan: Plus, Pro, Business or Enterprise. The same link also works in Claude (Settings › Connectors › Add custom connector), Cursor and other MCP clients.
What does it cost?
HeyMyApps has a free plan with no credit card required. Paid plans bill per completed task. You also need your own Pencil Spaces account, and API access needs a usage-based or Enterprise Pencil Spaces account.
Will students get emails when the AI makes changes?
Only when an action sends one. Inviting a user sends an invitation email. When the AI creates a Space or adds people to it, the notify_invitees setting decides whether invitees are emailed. Attendees may see changes to an event. Setting those tools to require approval lets you check each one first.
Let your AI work in Pencil Spaces today.
Start free. Your key stays encrypted, and you decide what the AI may do.
Connect Pencil Spaces freeHeyMyApps is not affiliated with Pencil Spaces. Product names are trademarks of their owners.






