Eventmeet
Seminar & internal meeting management for Frappe (v15/v16): registration, Stripe, Zoom and Google Meet, minutes and action items
- Author: lifegence
- Repository: https://github.com/lifegence/eventmeet
- GitHub stars: 0
- Forks: 0
- License: MIT
- Category: Integrations
- Maintenance: Actively Maintained
Install Eventmeet
bench get-app https://github.com/lifegence/eventmeet
Tags
- event-management
- frappe
- frappe-app
- google-meet
- meeting-minutes
- seminar
- stripe
- zoom
Add the Frappe Gems badge to your README
Maintain Eventmeet? Paste this into your README:
[](https://frappegems.com/gems/apps/lifegence/eventmeet)
About Eventmeet
EventMeet
Seminar and internal meeting management for Frappe (v15 / v16).
- Seminars (online, on-site or hybrid): planning, a public registration page, paid tickets with Stripe, Zoom meetings or webinars with a personal join link for each registrant, QR check-in, reminders, attendance import and a feedback survey.
- Internal meetings: agenda, internal and external attendees, invitations, minutes and action items synced with ToDo. Run them on Zoom or Google Meet; with Google Meet, the event lives in the organizer's Google Calendar and Gemini "Take notes for me" summaries are imported into the minutes.
> EventMeet is an independent open-source project and is not affiliated with Frappe Technologies. > Zoom, Google Meet and Stripe are trademarks of their respective owners.
Status
EventMeet 0.1.0 is the first public release. Every integration is covered by automated tests with mocked APIs, and the integrations below have been verified against the live services:
| Integration | Verified against the live service |
|---|---|
| Google Meet (internal meetings) | Yes: event and Meet link creation, Google Calendar invitations, attendance and Gemini notes import (Frappe 16.33) |
| Zoom (seminars) | Yes, with Zoom Pro: registration-based meetings created, updated and deleted, personal join links, Start as Host, end-of-meeting webhook, attendance import. Webinars not yet. See the Zoom guide |
| Stripe (paid tickets) | Not yet |
Reports from your own setup are welcome in the issues.
Features
| Area | What it does |
|---|---|
| Planning | Seminars (format, schedule, capacity, venue), program, speakers, preparation tasks assigned as ToDo |
| Registration | Public pages at /seminars, registration form with ticket types and per-ticket capacity, bot trap and rate limit |
| Payment | Stripe Checkout (cards and asynchronous methods such as konbini), Stripe invoices as receipts, refunds, reconciliation when a webhook is missed, manual confirmation (for example payment by invoice) |
| Online | Registration-based Zoom meetings or webinars created, updated and cancelled automatically; personal join link per registrant; "Start as Host" |
| On the day | QR check-in at /seminar-checkin (staff only), reminder emails |
| Afterwards | Zoom attendance import (attended, minutes watched), feedback survey at /seminar-feedback |
| Internal meetings | Agenda, attendees, external guests (no account needed, invited by email or Google Calendar), invitations, minutes, action items (two-way sync with ToDo); visible to the organizer and attendees only |
| Google Meet | Event with a Meet link in the organizer's Google Calendar, invitations / updates / cancellations sent by Google, attendance import, Gemini "Take notes for me" import |
| Zoom licenses | Hosts are allocated from a pool of licensed accounts, so you need as many licenses as concurrent sessions, not one per employee |
| Website design | Four built-in designs for the public pages, design tokens and custom CSS, header and footer HTML, and template overrides from your own app (guide) |
Conferencing tools sit behind the provider interface in eventmeet/conferencing/providers/, so another
tool (for example a self-hosted LiveKit or Jitsi) can be added the same way.
| Zoom | Google Meet | |
|---|---|---|
| Used for | Seminars (registration-based meetings / webinars), internal meetings | Internal meetings |
| Host | Allocated from the pool of licensed host accounts | The organizer (a Google Workspace user) |
| Invitations | Email with an .ics file, sent by EventMeet | Google Calendar invitation (sent when you press "Send Invitation") |
| Attendance | Zoom report API | Meet REST API (emails resolved with the People API, display names as a fallback) |
| AI summary | Zoom AI Companion meeting summary | Gemini "Take notes for me" document (optional) |
The user interface ships with a Japanese translation.
Requirements
| Frappe | v15 or v16 (ERPNext is not required) |
| Python | 3.10 or later |
| Zoom | A paid account with a Server-to-Server OAuth app and licensed host users (for seminars or Zoom meetings) |
| Google Workspace | A service account with domain-wide delegation (for Google Meet) |
| Stripe | An account, only if you sell paid tickets |
Installation
bench get-app https://github.com/lifegence/eventmeet
bench --site install-app eventmeet
bench --site migrate
Then open Conferencing Settings and Seminar Settings as a System Manager.
Setup
Zoom
The step-by-step guide, including a first-run checklist, is in docs/en/zoom-seminar-guide.md. In short:
- In the Zoom App Marketplace, create a Server-to-Server OAuth app and add the scopes listed in the
guide (also at the top of
eventmeet/conferencing/providers/zoom.py). - Enable Event Subscriptions with the endpoint
https:///api/method/eventmeet.api.webhooks.zoomand the eventsmeeting.ended,webinar.endedand (optional)meeting.summary_completed. Save the Secret Token in Frappe before you press "Validate". - In Conferencing Settings, enter the Account ID, Client ID, Client Secret and Webhook Secret Token.
- Add each licensed host user as a Zoom Host Account (set Webinar Capacity if the user has a webinar add-on).
- To import AI summaries of internal meetings, turn on the AI Companion meeting summary in Zoom.
Google Meet (internal meetings)
The step-by-step guide (which console to use, verification, troubleshooting) is in docs/en/google-meet-setup.md. In short:
- In the Google Cloud console, create a service account and a JSON key, and enable the Google Calendar API, the Google Meet REST API and the People API (and the Google Drive API to import Gemini notes).
- In the Google Admin console, under Security > Access and data control > API controls > Manage Domain
Wide Delegation, authorize the service account's client ID for:
https://www.googleapis.com/auth/calendar.eventshttps://www.googleapis.com/auth/meetings.space.readonlyhttps://www.googleapis.com/auth/directory.readonlyhttps://www.googleapis.com/auth/drive.readonly(only to import Gemini notes)
- In Conferencing Settings, enable Google Meet and enter the JSON key and your Workspace domains. Set Internal Meeting Provider to Google Meet to make it the default.
- Organizers' Frappe email addresses must match their Workspace accounts.
Stripe
- In Seminar Settings, enter the Secret Key and the Webhook Signing Secret.
- Add a webhook endpoint
https:///api/method/eventmeet.api.webhooks.stripewith the eventscheckout.session.completed,checkout.session.expired,checkout.session.async_payment_succeededandcheckout.session.async_payment_failed. - To issue invoices as receipts (for example Japanese qualified invoices), configure your registration number and invoice settings in Stripe.
Website design
Choose a design and add CSS or a header and footer in Seminar Settings > Website Design, or replace the page templates from your own app. See docs/en/website-design.md and the example app in examples/eventmeetthemeexample.
Roles
| Role | Can |
|---|---|
| System Manager / Seminar Manager | Change Conferencing Settings, Seminar Settings and Zoom Host Accounts; manage seminars and registrations; start a seminar as host |
| Seminar Staff | View seminars, view and update registrations, check people in on the day |
| Every desk user | Create internal meetings they organize |
Internal meetings are visible to the organizer, the attendees and managers only. Attendees who do not organize a meeting can edit its minutes and action items, but not its schedule, attendees or agenda, and cannot send invitations. Only a Seminar Manager can change a meeting's organizer.
Development
bench --site set-config allow_tests true
bench --site run-tests --app eventmeet
Zoom, Google and Stripe are mocked in the tests. See CONTRIBUTING.md for linting and pull requests.
Security
Please report vulnerabilities privately; see SECURITY.md. Authorization, input validation and rate limits of every guest-reachable endpoint are documented in docs/security/guest-endpoint-audit.md.
License
MIT © 2026 Lifegence Corporation
Related Integrations apps for Frappe & ERPNext
- Insights — Open Source Business Intelligence Tool
- Raven — Simple, open source team messaging platform
- Frappe Whatsapp — WhatsApp cloud integration for frappe
- Frappe Assistant Core — Infrastructure that connects LLMs to ERPNext. Frappe Assistant Core works with the Model Context Protocol (MCP) to expose ERPNext functionality to any compatible Language Model
- Biometric Attendance Sync Tool — A simple tool for syncing Biometric Attendance data with your ERPNext server
- Frappe React Sdk — React hooks for Frappe
- Frappe Js Sdk — TypeScript/JavaScript library for Frappe REST API
- Mcp — Frappe MCP allows Frappe apps to function as MCP servers