A Google Workspace Add-on that automates event sign-ups by connecting Google Forms to Google Calendar events. When someone submits a form, they are automatically added as a guest to the specified calendar event.
You can install it from https://workspace.google.com/marketplace/app/event_signup/1094030587053.
- Automatic Guest Addition: Form respondents become calendar event guests
- Easy Configuration: Simple setup through sidebar interface
- Real-time Status: Monitor automation status and form acceptance
- Error Handling: Graceful handling of missing calendars/events
- Responsive UI: Optimized for Google Forms sidebar
- Backend: Google Apps Script with Form and Calendar API integration
- Frontend: HTML/CSS/JavaScript sidebar interface
- Storage: Document properties for configuration persistence
- Automation: Form submission triggers for guest management
- Node.js (v16 or higher)
- Google account with access to Google Apps Script
- Google Forms and Google Calendar access
git clone https://github.com/yourusername/forms-event-sign-up-addon.git
cd forms-event-sign-up-addonnpm installnpm install -g @google/claspnpm run loginThis will open a browser window for Google authentication. Follow the prompts to authorize clasp.
npm run createThis creates a new Google Apps Script project and updates the .clasp.json file with the project ID.
npm run pushThis pushes your local code to the Google Apps Script project.
- Edit Code: Make changes to files in the
src/directory - Test Locally: Use your preferred editor/IDE
- Commit Changes: Use Git for version control
- Push to Google Apps Script: Deploy changes
# Authentication and setup
npm run login # Login to Google Apps Script
npm run create # Create new Google Apps Script project
npm run setup # Login and create project
# Development
npm run push # Push local changes to Google Apps Script
npm run pull # Pull changes from Google Apps Script
npm run open # Open Google Apps Script project in browser
npm run watch # Watch for changes and auto-push
# Deployment
npm run deploy # Deploy new version
npm run versions # List deployed versions
npm run logs # View execution logs
# Sync
npm run sync # Bidirectional sync (pull then push)The project includes two deployment scripts in the scripts/ directory:
Full deployment workflow with version management.
# Full deployment with timestamp
./scripts/deploy.sh
# Deploy with custom description
./scripts/deploy.sh "v1.2.3 - Bug fixes"
# Pull changes only
./scripts/deploy.sh pull
# Show deployment status
./scripts/deploy.sh statusBidirectional synchronization between local and Google Apps Script.
# Bidirectional sync (default)
./scripts/sync.sh
# Pull from Google Apps Script
./scripts/sync.sh pull
# Push to Google Apps Script
./scripts/sync.sh push
# Force sync (overwrite remote with local)
./scripts/sync.sh force-local
# Show sync status
./scripts/sync.sh statusforms-event-sign-up-addon/
├── .clasp.json # Clasp configuration
├── .gitignore # Git ignore rules
├── package.json # Node.js dependencies and scripts
├── README.md # This file
├── src/ # Source files
│ ├── Code.js # Main Google Apps Script code
│ ├── Sidebar.html # Sidebar interface
│ └── appsscript.json # Apps Script manifest
└── scripts/ # Build and deployment scripts
├── deploy.sh # Deployment script
└── sync.sh # Sync script
The manifest file defines:
- OAuth Scopes: Required permissions for Forms, Calendar, UI and Script APIs
- Runtime: V8 JavaScript runtime
- Timezone: Default timezone for the project
Links your local project to the Google Apps Script project:
- scriptId: Your Google Apps Script project ID
- rootDir: Source directory (
src/)
- Open Google Forms: Create or open a Google Form
- Install Add-on: Install the add-on from Google Workspace Marketplace
- Open Sidebar: Click "Add-ons" → "Event Sign-up" → "Manage"
- Configure Event: Select calendar and event in the sidebar
- Enable Automation: Toggle the master control to enable sign-ups
- Form Submission: When someone submits the form
- Trigger Activation: The add-on automatically runs
- Email Extraction: Respondent's email is extracted from the form
- Guest Addition: Email is added as guest to the configured calendar event
- Logging: Operation is logged for audit purposes
- Follow the cursor rules in
.cursor/rules/ - Use proper error handling and logging
- Implement comprehensive testing
- Follow Google Apps Script best practices
- Feature Branches: Create feature branches for new development
- Commit Messages: Use conventional commit format
- Pull Requests: Submit PRs for review before merging
- Version Tags: Tag releases with semantic versioning
- Test in Google Apps Script environment
- Validate form-calendar integration
- Test error scenarios and edge cases
- Verify UI behavior in different states
# If clasp login fails, try:
npm run logout
npm run login- Ensure you have edit access to the Google Apps Script project
- Check that OAuth scopes are properly configured
- Verify Google Calendar permissions
# If you have sync conflicts:
./scripts/sync.sh force-local # Overwrite remote with local
# OR
./scripts/sync.sh force-remote # Overwrite local with remote- Use
npm run logsto view execution logs - Check Google Apps Script execution logs in the browser
- Use
console.log()in frontend JavaScript for debugging - Monitor Google Apps Script quota usage
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
For issues and questions:
- Check the troubleshooting section
- Review Google Apps Script documentation
- Open an issue on GitHub
- Initial release
- Basic form-to-calendar automation
- Sidebar configuration interface
- Error handling and logging