Troubleshooting
Verifying module status
Section titled “Verifying module status”Check if the module is working
Section titled “Check if the module is working”- Open Settings > Module Settings > Calendaria > Calendaria Settings
- Verify the Active Calendar dropdown on the Home tab shows your calendar
- Set Logging Level to Verbose in the 3DS:ATLAS module settings, then reload
- Open the browser console (F12), turn on its Verbose filter, and look for
Calendaria |entries - If none appear, verify the module is enabled in Manage Modules
At the default logging level only errors and warnings print, so a session with nothing wrong can log nothing at all.
Permission errors
Section titled “Permission errors””Access to this feature is not permitted”
Section titled “”Access to this feature is not permitted””- The user’s role lacks the permission for the attempted action
- Solution: Grant the role the matching permission on the Settings Panel Permissions tab
See Permissions for the full permission list.
Calendar issues
Section titled “Calendar issues””Calendar not found” / “No active calendar”
Section titled “”Calendar not found” / “No active calendar””- The configured calendar ID does not exist in the registry
- Solution: Switch to a valid calendar with the active calendar dropdown on the Settings Panel Home tab
”Cannot remove the active calendar”
Section titled “”Cannot remove the active calendar””- Solution: Switch to a different calendar first, then delete
”Failed to save the calendar” / “Failed to add the calendar” / “Failed to update the calendar”
Section titled “”Failed to save the calendar” / “Failed to add the calendar” / “Failed to update the calendar””- The calendar could not be saved. The message carries the underlying error
- Solution: Check the console for the full error. It usually points at malformed calendar data
Calendar already exists
Section titled “Calendar already exists”- A new calendar’s ID matched an existing one, so Calendaria saved it under that ID with a numeric suffix and logged a console warning
- Solution: No action is needed. Edit the calendar’s ID in the Calendar Editor if you want a different one
Calendar stuck loading
Section titled “Calendar stuck loading”- Refresh the page (F5)
- Check the console for errors
- Disable other calendar modules
Calendar not appearing
Section titled “Calendar not appearing”- Open Settings > Module Settings > Calendaria > Calendaria Settings > MiniCal
- Enable Show MiniCal on Load
- Click Reset Position
- Resize the browser window in case the window sits off-screen
Golarion / Pact Standard dates shift by one day after Feb 28
Section titled “Golarion / Pact Standard dates shift by one day after Feb 28”Golarion (AR), Golarion (IC), and Pact Standard (AG) follow Gregorian leap rules, matching Luxon’s leap-year model on PF2E/SF2E World Clock syncs. In non-PF2E worlds using these calendars, saved worldTime values past Feb 28 of a leap year resolve one day later than under custom leap rules. If a campaign recorded dates under the older leap rule, adjust stored dates or re-derive worldTime from the intended in-game date.
Time control issues
Section titled “Time control issues”Time controls not working
Section titled “Time controls not working”- Verify you have the Change Date/Time permission
- Check the Primary GM setting in 3DS:ATLAS
- In multi-GM sessions, only the primary GM advances world time
Real-time clock not running
Section titled “Real-time clock not running”- Verify the clock is started
- Check that the increment and multiplier are not set to zero
- Confirm you are the primary GM set in 3DS:ATLAS
”Cannot control the clock without permission”
Section titled “”Cannot control the clock without permission””- The user lacks the Change Date/Time permission
- Solution: Grant the permission on the Settings Panel Permissions tab
”The clock is blocked while the game is paused or combat is active”
Section titled “”The clock is blocked while the game is paused or combat is active””- The clock refuses to start during combat, and refuses to start while the game is paused if Sync Clock with Game Pause is on
- Solution: End combat or unpause the game. To lift the block entirely, enable Run Clock During Combat or disable Sync Clock with Game Pause on the Settings Panel Time tab
Clock shows a lock icon / time will not advance
Section titled “Clock shows a lock icon / time will not advance”- The clock is locked. The notification reads “Clock Locked (Shift-click to unlock)” when the lock engages
- Solution: Shift-click the play/pause button on the HUD, MiniCal, Time Keeper, or Sun Dial
Calendar Editor issues
Section titled “Calendar Editor issues””Calendar must have a name”
Section titled “”Calendar must have a name””- Solution: Enter a name before saving
”Calendar must have at least one weekday”
Section titled “”Calendar must have at least one weekday””- The last remaining weekday cannot be removed
- Solution: Add a replacement weekday on the Weeks tab before removing the old one
”Save the calendar first to create festival notes”
Section titled “”Save the calendar first to create festival notes””- Festivals cannot be added to a calendar that has never been saved
- Solution: Save the calendar, then reopen the Festivals tab
”Select a calendar first”
Section titled “”Select a calendar first””- Duplicate acts on a saved calendar
- Solution: Load or save a calendar before duplicating it
Import issues
Section titled “Import issues”Import fails
Section titled “Import fails”Import failures are reported inline in the importer dialog rather than as a notification. A file that fails to parse is reported as Cannot parse the file: followed by the underlying message.
| Error | Solution |
|---|---|
The Calendarium export must contain a calendars array with static.months and static.weekdays. | Export the Calendarium plugin’s data.json again |
The file does not have the static_data and dynamic_data fields of a Fantasy-Calendar export. | Re-export from Fantasy-Calendar.com |
The Simple Calendar module is not installed or enabled. | Enable the Simple Calendar module first |
No calendars found in Simple Calendar module settings. | Configure a calendar in Simple Calendar before importing |
The Seasons & Stars module is not installed or enabled. | Enable the Seasons & Stars module first |
No active calendar found in Seasons & Stars module settings. | Configure a calendar in Seasons & Stars before importing |
The Mini Calendar module is not installed or enabled. | Enable the Mini Calendar module first |
This file is not a Simple Timekeeping export. | Use Copy Macro in the importer, run it in the Simple Timekeeping world, and upload the JSON it produces |
The calendar must have at least one month. | Fix the source file so it defines at least one month |
Cannot parse the file: | The file is not valid JSON, or does not match the selected import source |
”No data loaded. Upload a file or import from a module.”
Section titled “”No data loaded. Upload a file or import from a module.””- Solution: Upload a JSON file or click Import from Installed Module
”Select an import source first.”
Section titled “”Select an import source first.””- Solution: Choose an import source before loading data
Data missing after import
Section titled “Data missing after import”Some features have no direct equivalent between systems. Review the imported calendar in the Calendar Editor and configure the missing pieces by hand.
Weather issues
Section titled “Weather issues”Weather not generating
Section titled “Weather not generating”- Enable Auto-Generate Weather on the Settings Panel Weather tab. While it is off, weather is only ever set by hand
- Verify a climate zone is configured in Calendar Editor > Weather tab
- Check that the calendar has seasons defined
- Confirm you are the primary GM. Auto-generation runs on that client only
- Set weather manually with the Weather Picker
Weather changes rejected for a user
Section titled “Weather changes rejected for a user”- The user lacks the Change Weather permission
- Solution: Grant the permission on the Settings Panel Permissions tab
”Only the GM can set custom weather.”
Section titled “”Only the GM can set custom weather.””- Custom weather is GM-only, even for a user who holds the Change Weather permission
- Solution: Have the GM set it, or save it as a preset the user can select
”Weather preset not found”
Section titled “”Weather preset not found””- The referenced preset ID does not exist
- Solution: Select a preset from the Weather Picker
”The calendar has no climate zones.”
Section titled “”The calendar has no climate zones.””- Appears as the hint under Climate Zone Override in Scene Config > Calendaria
- Solution: Add a climate zone in Calendar Editor > Weather tab, then reopen the scene configuration
Note issues
Section titled “Note issues””Note not found.”
Section titled “”Note not found.””- The referenced note ID does not exist or was deleted
- Solution: Verify the note exists in the calendar journal
”Cannot delete the calendar Journal Entry”
Section titled “”Cannot delete the calendar Journal Entry””- The journal holds the calendar structure and all events
- Solution: Delete individual notes instead
”Cannot delete the Calendar Notes folder”
Section titled “”Cannot delete the Calendar Notes folder””- The folder holds every calendar journal
- Solution: Delete individual notes instead
”Cannot delete the calendar folder”
Section titled “”Cannot delete the calendar folder””- The folder holds all notes for one calendar
- Solution: Delete individual notes instead
Deleting a protected journal or folder anyway
Section titled “Deleting a protected journal or folder anyway”The three protections above are lifted while Developer Mode is on. Enable it on the Settings Panel Module tab, delete what you need, then turn it off. Deleting a calendar journal removes the calendar structure and every event stored in it.
Mirrored to-dos are not appearing
Section titled “Mirrored to-dos are not appearing”- The Save as To-Do checkbox is hidden when the Don’t Forget module is not active
- Mirrored to-dos are created when the reminder fires, not when you save the note
Missing or orphaned presets
Section titled “Missing or orphaned presets”Notes reference preset IDs that no longer exist in the saved preset list. Calendaria recovers orphaned presets on world load: the recoverOrphanedPresets pass scans notes for category references to missing presets and rebuilds stub definitions. Recovered presets appear in the Note Preset Editor labeled with the preset ID rather than the original display name. Rename them as needed.
Day-interval recurrence migration
Section titled “Day-interval recurrence migration”UI issues
Section titled “UI issues””This window cannot be closed”
Section titled “”This window cannot be closed””- The GM has enabled force display for this window
- Solution: Ask the GM to disable force display in the Settings Panel
Macro trigger issues
Section titled “Macro trigger issues””All moon/phase combinations already have triggers.”
Section titled “”All moon/phase combinations already have triggers.””- Solution: Edit an existing trigger instead of adding a new one
”All seasons already have triggers.”
Section titled “”All seasons already have triggers.””- Solution: Edit an existing trigger instead of adding a new one
Resetting settings
Section titled “Resetting settings”Reset UI positions
Section titled “Reset UI positions”- Open Settings > Module Settings > Calendaria > Calendaria Settings
- Open the tab for the window you want to move: BigCal, Chronicle, HUD, MiniCal, Stop Watch, Sun Dial, or Time Keeper
- Click Reset Position
Reset or reconfigure the theme
Section titled “Reset or reconfigure the theme”Calendaria’s theme is managed by 3DS:ATLAS. Open the Configure Themes menu in module settings to change, reset, or import and export a theme.
Reset weather data
Section titled “Reset weather data”The macro below clears weather history, forecast plans, and current weather for every calendar. Climate zone configuration is untouched.
To clear one calendar instead, run CALENDARIA.api.clearWeatherHistory({ all: true }) while that calendar is active. That clears its history and forecast plan. Current weather is stored per zone rather than per calendar, so drop it separately with CALENDARIA.api.clearWeather(), which clears the active scene’s zone.
if (!game.user.isGM) { ui.notifications.error('Only GMs can reset weather'); return;}
const confirm = await foundry.applications.api.DialogV2.confirm({ window: { title: 'Reset Weather Data' }, content: '<p>This will clear all current weather, weather history, and forecast plans. Climate zone settings will not be affected.</p><p>Are you sure?</p>', yes: { default: false }, no: { default: true }});
if (!confirm) return;await game.settings.set('calendaria', 'currentWeather', {});await game.settings.set('calendaria', 'weatherHistory', {});await game.settings.set('calendaria', 'weatherForecastPlan', {});ui.notifications.info('Weather data cleared. Refresh to regenerate.');Full settings reset
Section titled “Full settings reset”if (!game.user.isGM) { ui.notifications.error('Only GMs can reset Calendaria'); return;}
const confirm = await foundry.applications.api.DialogV2.confirm({ window: { title: 'Reset Calendaria' }, content: '<p>This will delete ALL Calendaria settings, custom calendars, and notes. This cannot be undone.</p><p>Are you sure?</p>', yes: { default: false }, no: { default: true }});
if (!confirm) return;await game.settings.set('calendaria', 'devMode', true);await CALENDARIA.api.deleteAllNotes();const folders = game.folders.filter((f) => f.flags?.calendaria && !f.folder?.flags?.calendaria);for (const folder of folders) await folder.delete({ deleteSubfolders: true, deleteContents: true });const settings = game.settings.storage.get('world').filter((s) => s.key.startsWith('calendaria.'));for (const setting of settings) await setting.delete();ui.notifications.info('Calendaria reset complete. Please refresh.');Reporting bugs
Section titled “Reporting bugs”- Check existing issues on GitHub
- Build a diagnostics report with the 3DS:ATLAS Troubleshooter and attach it
- Include steps to reproduce and any console errors