Skip to content

Logvin/geotab-holiday-tool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Geotab Holiday Tool

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.

⚠️ Important Disclaimer

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

πŸ”‘ What is the problem?

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. image

🎯 What This Tool Does

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

✨ Key Features

  • 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")

πŸš€ Quick Start

Option 1: Use Online (Recommended)

Visit the live tool: https://logvin.github.io/geotab-holiday-tool/

Option 2: Run Locally

  1. Download or clone this repository
  2. Open index.html in any modern web browser
  3. No setup required!

πŸ“‹ How to Use

1. Connect to Your Database

  • Enter your MyGeotab database name (e.g., "my_company")
  • Enter your username and password
  • Click "Connect"
image

2. View Existing Holidays

  • 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
image

3. Add New Holidays

  • 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
image

4. Monitor Progress

  • Watch real-time progress in the output window
  • See success/skip/failure counts in the summary
  • API rate limiting is automatically handled
image

πŸ›οΈ Supported Federal Holidays

  • 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)

πŸŽƒ Other Holidays

  • 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)
image

πŸ› οΈ Technical Details

  • 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)

πŸ“ Project Structure

geotab-holiday-tool/
β”œβ”€β”€ index.html          # Complete single-file application
β”œβ”€β”€ README.md           # This documentation
└── LICENSE             # MIT License

⚑ Features in Detail

Smart Date Calculation

  • 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

Duplicate Prevention

  • Checks existing holidays before adding new ones
  • Flexible date matching handles timezone differences
  • Prevents accidental duplicates across bulk operations

Rate Limiting & Progress

  • Automatic API rate limit detection and waiting
  • Real-time progress updates with timestamps
  • Detailed success/failure reporting

Data Safety

  • Verification step confirms holidays were added successfully
  • Clear error reporting for any failures
  • Non-destructive operations (view before modify)

πŸ”’ Security & Privacy

  • 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

πŸ› Known Limitations

  • 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)

🀝 Contributing

This is a community project! Contributions are welcome:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/new-country-holidays)
  3. Commit your changes (git commit -m 'Add Canadian holidays')
  4. Push to the branch (git push origin feature/new-country-holidays)
  5. Open a Pull Request

Ideas for Contributions

  • Add holidays for other countries
  • Improve the UI/UX
  • Add more custom holiday patterns
  • Enhance error handling
  • Add data export features

πŸ“‹ Requirements

  • 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

❓ Troubleshooting

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

πŸ“„ License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Geotab Inc. for their comprehensive API
  • mg-api-js for the JavaScript wrapper
  • The Geotab developer community

πŸ“ž Support

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

⚠️ Remember: This is an unofficial tool. Always test in a safe environment first!

πŸ”— Useful Links:

About

Holiday Management Tool for Geotab

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages