Skip to content
3 Death Saves

Troubleshooting

  1. Open Settings > Module Settings > Calendaria > Calendaria Settings
  2. Verify the Active Calendar dropdown on the Home tab shows your calendar
  3. Set Logging Level to Verbose in the 3DS:ATLAS module settings, then reload
  4. Open the browser console (F12), turn on its Verbose filter, and look for Calendaria | entries
  5. 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.


”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 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
  • 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
  • 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
  1. Refresh the page (F5)
  2. Check the console for errors
  3. Disable other calendar modules
  1. Open Settings > Module Settings > Calendaria > Calendaria Settings > MiniCal
  2. Enable Show MiniCal on Load
  3. Click Reset Position
  4. 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.


  1. Verify you have the Change Date/Time permission
  2. Check the Primary GM setting in 3DS:ATLAS
  3. In multi-GM sessions, only the primary GM advances world time
  1. Verify the clock is started
  2. Check that the increment and multiplier are not set to zero
  3. 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

  • 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
  • Duplicate acts on a saved calendar
  • Solution: Load or save a calendar before duplicating it

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.

ErrorSolution
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
  • Solution: Choose an import source before loading data

Some features have no direct equivalent between systems. Review the imported calendar in the Calendar Editor and configure the missing pieces by hand.


  1. Enable Auto-Generate Weather on the Settings Panel Weather tab. While it is off, weather is only ever set by hand
  2. Verify a climate zone is configured in Calendar Editor > Weather tab
  3. Check that the calendar has seasons defined
  4. Confirm you are the primary GM. Auto-generation runs on that client only
  5. Set weather manually with the Weather Picker
  • The user lacks the Change Weather permission
  • Solution: Grant the permission on the Settings Panel Permissions tab
  • 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
  • The referenced preset ID does not exist
  • Solution: Select a preset from the Weather Picker
  • 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

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

  • 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

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.


  • The GM has enabled force display for this window
  • Solution: Ask the GM to disable force display in the Settings Panel

”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
  • Solution: Edit an existing trigger instead of adding a new one

  1. Open Settings > Module Settings > Calendaria > Calendaria Settings
  2. Open the tab for the window you want to move: BigCal, Chronicle, HUD, MiniCal, Stop Watch, Sun Dial, or Time Keeper
  3. Click Reset Position

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.

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.');
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.');

  1. Check existing issues on GitHub
  2. Build a diagnostics report with the 3DS:ATLAS Troubleshooter and attach it
  3. Include steps to reproduce and any console errors