A Microsoft Excel-based pilot logbook with automatic update delivery via GitHub. Designed for Australian general aviation, it supports single-engine and multi-engine operations, instrument currency tracking, approach logging, and route mapping.
Download: For normal use, download the latest
Electronic_Logbook_Master.xlsmfrom the repository's GitHub Releases page rather than cloning the repository.
- Fixed route table rebuilds being blocked by workbook protection
- Hardened GitHub release protections and automated release checks
- Added release asset checksums and machine-readable integrity metadata
- Added automated VBA source-quality and workbook/source consistency checks
- Improved release preparation tooling and workbook maintainability
- Added an early external updater prototype that creates and validates a separate updated copy
- Added runtime workbook protection with development/release toggles
- Added automatic redacted diagnostics capture when starting a bug report
- Hardened update migration against protected-sheet failures and staging/backup validation gaps
- Improved Hours Over Time chart update resilience so entry saves are not blocked by chart wiring issues
- Added wizard-first update launch with legacy VBA fallback if the external updater is unavailable
- Added in-place updater handoff with timestamped
_Oldbackup retention and original filename preservation
- Added an anonymous bug report form that can be opened directly from the logbook
- Overhauled Currency + Recency section
- Added Single/Multi Engine distinction
- Added Flight Review tracking
- Fixed Passenger Carrying recency incorrectly calculating expiry date
- Added Currency Validity Check button, allowing users to disqualify entries that have incorrectly been recorded as a Flight Review, IPC, or OPC
- General UI updates/improvements
- Improved speed of sheet when entering data in new entries
- Updated public-repository GitHub requests to retry without authentication when an old workbook contains a stale private-repo token
- Added a fallback to the public
mainbranch when an old workbook still points update checks atdev - Refreshed the release workbook so future downloads include the token fallback in the embedded updater bootstrap
- Cleared the workbook privacy flag on files created by the update process so AutoSave stays available after updating
- Prepared the project for public repository release
- Added public security, contribution, and licensing information
- Added release checks to prevent publishing workbooks with private update tokens
- Fixed some Recency items that were calculating incorrectly
- Added currency/recency tracking for OPCs
- Fixed incorrect airports showing in route history
- New entries are now sorted into date order automatically
- Route map data is now kept during updates where possible
- The logbook will ask to rebuild route map data when it needs refreshing
- Improved the Hours by Year chart after adding entries or updating
- If date reset is set to "today", the New Entry date now resets when the file opens
- The "next day" date reset now moves to the day after the entry you just added
- Added Warning for Excel Trust Center not being enabled
- Added option to Reset day to one day after the last entry, on completion of export
- Rearranged New Entry page, for better readability and usage of space
- Ensured updated files would save inside the current folder, rather than in My Documents
- Added more diagnostic logs for crashes and errors
- Fixed issue where update process could download old/cached version
- Added ability to choose whether Date resets to Today, or remains as-is, after Export
- Added button to Suppress All Warnings for 24 hours
- Added Debug Logs in the event of an excel crash
- Added PDF Readme
- Ensured table formatting would stay the same after update
- Ensured most recent version of update process would always be used
- Back-end fixes
- Reformatted Admin page, added reminders to not modify values
- Fixed issue where macros would break on original copy of spreadsheet after update
- Added 'Help' page with Readme access to Spreadsheet
- Formatted Custom Logbook Entries
- Ensured most up-to-date process followed for updating Logbook
- Added automatic update access handling
Initial release.
- Structured flight data entry with hard and soft validation
- Automatic currency and recency calculations (passenger carrying, IFR, NVFR, IPC, OPC, and Flight Review)
- Cumulative and statistical analysis across the full logbook
- Charts: hours by year, hours by type, hours by registration, hours over time
- Airport visit tracking with visit counts and base flagging
- Route map export compatible with kepler.gl
- Route map rebuild prompts only when needed
- Automatic update system -- when a new version is published, users are prompted to update on next open
- Microsoft Excel for Windows
- Primary supported: Microsoft 365 on Windows 11
- Supported perpetual: Excel 2021 and newer
- Older versions are best-effort only
- Macros must be enabled
- For automatic updates: internet access on the machine running the logbook
Download Electronic_Logbook_Master.xlsm from the latest GitHub Release. This is your personal copy -- rename it if you wish (e.g. Electronic_Logbook_YourName.xlsm).
Note: You will receive a 'Build Routes Table' dialog when you open it. Press 'Yes'. You only need to do this the first time, or when a future update needs to refresh route map data.
When you first open the file, Excel will display a security warning at the top of the screen:
"SECURITY WARNING: Macros have been disabled."
Click Enable Content. The logbook will not function correctly without macros enabled.
This setting ensures the logbook can automatically update its own VBA code when a new version is released. Without it, formula and sheet updates will still be applied, but VBA module updates will not.
To enable:
- Go to File -> Options -> Trust Center -> Trust Center Settings
- Select Macro Settings
- Check "Trust access to the VBA project object model"
- Click OK
This is a one-time setting per machine.
Only enable macros and VBA project access for workbooks downloaded from this repository's GitHub Releases page. Do not run modified copies from untrusted sources.
The release workbook may run in protected mode to reduce accidental edits. Intended input areas remain editable, including New Entry (ne*) fields, supported override/settings cells, and editable Logbook table data.
For development workflows, protection can be toggled with macros:
DisableProtectionForDevelopmentEnableProtectionForRelease
Preparation scripts also attempt to call these macros automatically:
PrepareForTesting.ps1disables protection mode when available.PrepareForRelease.ps1enables protection mode when available.
On first open, you will be prompted to build the Routes table. This scans your logbook entries and constructs a table of all departure/arrival pairs, which is used for the route map export. Click Yes when prompted. This may take a few seconds depending on the size of your logbook.
This prompt will not appear again after the initial build unless a later update needs to refresh route map data. Routes are updated automatically each time a new logbook entry is added.
- Download
Electronic_Logbook_Master.xlsmfrom this repository - Rename it to something personal (e.g.
Electronic_Logbook_YourName.xlsm) - Open the file and enable macros when prompted
- If you store the file in OneDrive and Excel shows AUTOSAVE TURNED OFF with a warning about personal information, turn off the privacy flag for your personal copy:
- Navigate to File > Info > Inspect Workbook
- Click the button that says
Allow this information to be saved in your file
- On first open, click Yes when prompted to build the Routes table (it will be empty at this stage, which is fine -- it will populate as you add entries)
- Navigate to the New Entry sheet and begin entering your flights
Note: The logbook contains two placeholder entries by default. Do not delete these until you have added at least two of your own entries, as they are required to maintain the correct table and formula structure.
Always add entries using the New Entry sheet -- do not attempt to add rows manually to the Logbook table. Manual row insertion will bypass validation and may break formulas and table structure.
- Navigate to the New Entry sheet
- Fill in the date, aircraft details, crew, and flight time fields
- Click Add to Logbook
After an entry is added, the Logbook table is automatically sorted by Date. Depending on your date reset setting, the New Entry date can reset to today or to the day after the entry you just added.
The Details field is checked against the workbook's Keywords table to identify IPC, OPC, and Flight Review entries. Matching entries feed the relevant currency and recency calculations, and the logbook asks for confirmation before saving them. Keywords can be configured to match the terms you normally use.
Only use an OPC keyword for a qualifying operator proficiency check that covered IFR operations. Qualifying OPC entries feed the 61.870 3-month recency exemption and 61.880 proficiency-validity logic.
The entry form includes validation that will warn you of potential errors before saving, including:
- Invalid or future dates
- Zero total hours
- Landings recorded without corresponding hours (and vice versa)
- Approaches recorded without instrument hours
- IFR hours exceeding total hours
- OPC recorded without instrument hours or approaches
- Potential duplicate entries
Some checks will prevent saving (hard errors), while others prompt you to confirm before continuing (warnings).
You can edit existing entries directly in the Logbook sheet. The following rules apply:
- Do not edit the Date column. The Date column is calculated automatically and is read-only. To change a date, edit the Year, Month, and Day columns instead.
- All other data columns (Type, Reg, PIC, hours, landings, approaches etc.) can be edited directly.
To delete one or more logbook entries:
- In the Logbook sheet, click the row number(s) on the left to select the entire row(s)
- Right-click and select Delete
Important: Do not delete the placeholder entries until you have added at least two of your own entries. The placeholder rows are required to maintain the correct table and formula structure during the initial setup period.
There are 4 preset custom columns in the Logbook
Simply edit the Headers in the Logbook table to your desired category. For example:
When a new version is available, you will see a prompt when opening the file:
"A new version of the Electronic Logbook is available!"
Click Yes to update. The update process will:
- Launch the external updater wizard when available (or use legacy VBA update as fallback)
- Build and validate a staged updated workbook from the latest master
- Rebuild all charts and pivot tables
- Rename your previous file to
[YourFilename]_Old_<timestamp>.xlsm - Keep the updated logbook on your original filename
Once the update is complete, close the _Old file and reopen your logbook from the original filename.
Note: If your file is stored in a OneDrive folder that is synced via a cloud URL, the old and updated files may be saved to your Documents folder instead, under
Electronic Logbook\. You can move them back to your OneDrive folder afterwards.
The following data is carried across from your existing logbook to the updated version:
| Data | Preserved |
|---|---|
| All flight log entries (Year through Circling) | Yes |
| All other logbook columns (formulas, cumulative totals) | Rebuilt from master |
| Airport list | Rebuilt from master |
| IPC, OPC, and Flight Review Keywords | Preserved |
| Routes table | Preserved where possible; you will be prompted if it needs to be rebuilt |
| Charts and pivot tables | Rebuilt from master |
| VBA code | Updated from master |
You can check for updates at any time by running the CheckForUpdateManual macro from the Developer tab or by wiring it to a button on any sheet.
The workbook now includes user-triggered safety actions you can run from the Developer tab or wire to buttons:
BackupCurrentWorkbookcreates a timestamped backup copy beside your workbook.RestorePreviousVersionfinds the latest_Oldbackup, creates a restored copy, and opens it for review.RebuildRoutesTableNowrebuilds the Routes table on demand.ExportDiagnosticswrites a redacted diagnostics snapshot for support.
If you downloaded the file from the internet, Windows may have blocked it. Right-click the file in Explorer, select Properties, and check "Unblock" at the bottom of the General tab. Then re-open the file.
Press Ctrl+Alt+F5 to refresh all data connections and pivot tables. This will force all charts to recalculate from the current logbook data.
Check that you have an active internet connection. If the problem persists, note the error step and error number shown in the failure dialog and raise an issue on this repository.
You will be prompted to rebuild it on first open of the updated file. If you accidentally dismissed the prompt, you can rebuild manually by running the RebuildRoutesTableNow macro from the Developer tab.
This appears when your route map data may need refreshing. Choose Yes to rebuild the Routes table before exporting.
Open the ChartData sheet, locate the HoursByYear pivot table, and:
- Remove Date from the Rows field
- Press Ctrl+Alt+F5 to refresh all
- Re-add Date to the Rows field
Check that the Currency + Recency sheet is not using an overridden date. There is a manual override field for the IPC/IFR date -- if this has been set, clear it to return to automatic calculation.
| File | Purpose |
|---|---|
Electronic_Logbook_Master.xlsm |
Master template -- distributed to users and used as the update source |
modBoot.bas |
Bootstrap module that refreshes the updater code |
modUpdate.bas |
VBA module for the auto-update system |
version.txt |
Current version number -- checked on workbook open |
README.md |
This file |
This project is shared for personal, non-commercial use. See LICENSE.md.
If you believe you have found a security issue, please follow SECURITY.md rather than opening a public issue.

