A free, public web-based tool for managing work holidays in Geotab databases. Connect to your MyGeotab instance to view, add, and remove work holidays with an intuitive interface.
This is an unofficial, community-created tool that uses Geotab's public API. It is not affiliated with or endorsed by Geotab Inc.
- Use at your own risk - This tool directly modifies your Geotab database
- No warranty or support - The tool is provided "as-is"
- Breaking changes - Geotab may update their API which could break this tool
- Test first - Always test in a non-production environment before using in production
The Geotab Holiday input lacks the ability to bulk import holidays. Holidays can be added individually one at a time, with an input text box that has no validation for the holiday name. Additionally, if you want to add floating holidays (like Thanksgiving which is the last Thursday of November), you have to know the exact date of each holiday. Each holiday has to be added manually each year.

The Geotab Holiday Tool provides a simple web interface to:
- Connect to your MyGeotab database using your credentials
- View existing work holidays in a sortable table
- Add federal holidays (US) for multiple years at once
- Add other common holidays (Halloween, Black Friday, etc.)
- Create custom holidays with fixed or variable dates
- Remove individual holidays from your database
- Bulk process holidays with progress tracking and rate limiting
- No Installation Required - Runs entirely in your web browser
- Secure - Credentials are only used for direct API connection (not stored)
- Smart Duplicate Detection - Prevents adding holidays that already exist
- Rate Limiting - Automatically manages API call limits
- Progress Tracking - Real-time feedback during bulk operations
- Responsive Design - Works on desktop and mobile devices
- Federal Holiday Support - Pre-configured US federal holidays with correct calculation logic
- Custom Holiday Builder - Create holidays with variable dates (e.g., "3rd Monday in February")
Visit the live tool: https://logvin.github.io/geotab-holiday-tool/
- Download or clone this repository
- Open
index.htmlin any modern web browser - No setup required!
- Enter your MyGeotab database name (e.g., "my_company")
- Enter your username and password
- Click "Connect"
- Click "Load Holidays" to see current work holidays
- Sort by name, date, or year by clicking column headers
- Remove individual holidays using the "Remove" button
- Select from pre-configured federal holidays
- Choose other common holidays
- Create custom holidays with the "Add New" button
- Set the year range (start and end year)
- Click "Add Selected Holidays" to process
- Watch real-time progress in the output window
- See success/skip/failure counts in the summary
- API rate limiting is automatically handled
- New Year's Day (January 1)
- Martin Luther King Jr. Day (3rd Monday in January)
- Presidents' Day (3rd Monday in February)
- Memorial Day (Last Monday in May)
- Juneteenth (June 19)
- Independence Day (July 4)
- Labor Day (1st Monday in September)
- Columbus Day (2nd Monday in October)
- Veterans Day (November 11)
- Thanksgiving Day (4th Thursday in November)
- Christmas Day (December 25)
- Halloween (October 31)
- Black Friday (Day after Thanksgiving)
- Christmas Eve (December 24)
- New Year's Eve (December 31)
- Customer Holidays by fixed date or variable (like Thanksgiving)
- Built with: Pure HTML, CSS, and JavaScript (ES6+)
- API Integration: Uses mg-api-js wrapper
- Geotab SDK: Based on official MyGeotab API documentation
- No Dependencies: Runs entirely in the browser with CDN resources
- Rate Limiting: Respects Geotab's API rate limits (90 calls per minute)
geotab-holiday-tool/
βββ index.html # Complete single-file application
βββ README.md # This documentation
βββ LICENSE # MIT License
- Federal holidays are calculated correctly for any year
- Variable dates (like "3rd Monday") are computed automatically
- Custom holidays support both fixed dates and variable patterns
- Checks existing holidays before adding new ones
- Flexible date matching handles timezone differences
- Prevents accidental duplicates across bulk operations
- Automatic API rate limit detection and waiting
- Real-time progress updates with timestamps
- Detailed success/failure reporting
- Verification step confirms holidays were added successfully
- Clear error reporting for any failures
- Non-destructive operations (view before modify)
- No data storage - All processing happens in your browser
- Direct API connection - Your credentials go directly to Geotab
- Open source - Full code is available for review
- No external dependencies - Only uses Geotab's official API wrapper
- Only supports US federal holidays (contributions welcome for other countries)
- Requires manual credential entry each session
- Limited to work holidays (doesn't handle other Geotab calendar types)
This is a community project! Contributions are welcome:
- Fork the repository
- Create a feature branch (
git checkout -b feature/new-country-holidays) - Commit your changes (
git commit -m 'Add Canadian holidays') - Push to the branch (
git push origin feature/new-country-holidays) - Open a Pull Request
- Add holidays for other countries
- Improve the UI/UX
- Add more custom holiday patterns
- Enhance error handling
- Add data export features
- Modern web browser (Chrome 70+, Firefox 65+, Safari 12+, Edge 79+)
- Internet connection
- Valid MyGeotab account with appropriate permissions
- Work holiday management permissions in your Geotab database
Connection Issues:
- Verify your database name, username, and password
- Ensure you have API access permissions
- Check that your account has work holiday management rights
Rate Limiting:
- The tool automatically handles rate limits
- Wait for the countdown timer if you see rate limit warnings
Duplicate Holidays:
- The tool checks for existing holidays before adding
- "Skipped" results indicate the holiday already exists
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
- Geotab Inc. for their comprehensive API
- mg-api-js for the JavaScript wrapper
- The Geotab developer community
For questions, issues, or feature requests:
- Create an Issue on GitHub
- This is a community project with no official support
- Check existing issues before creating new ones
π Useful Links: