I found myself wanting to track time in my game, along with expiries of things like Wild Shape, Invisibility etc . I wrote the following script to solve my problem. I thought I'd share, in case any of you would find it useful. If someone else already wrote a script like this, my apologies :P Also, I'm by no means an expert coder, so apologies for the perhaps less-than-beautiful code. <a href="https://github.com/HappyTapir/TimeKeeper" rel="nofollow">https://github.com/HappyTapir/TimeKeeper</a> The readme contains info on the commands, as well as some suggested macros. The actual script is in the TimeKeeper.js file. Comments and feedback are welcome! Future plans are to add functionality for the players to get time info and expiry info as well, although possibly in more vague terms than exact time. Edit: Here's the readme for some more info: TimeKeeper Roll20 API script which tracks time and expiries. The time and expiries persist and are tracked between sessions. The GM advances the time; there is no automatic advancement of time. The script currently communicates only with the GM. Each expiry added will be listed with a button [x] that can be used to delete the expiry. Useful if a character's concentration fails, or if the expiry being tracked is no longer relevant. Example of TimeKeeper's output: Current commands (version 0.2.1): !tk - shows commands. !tk show - displays current time. !tk set X - sets current time to X minutes. !tk add X - adds X minutes to the current time. Use negative values to subtract time. !tk exp charactername|effect|duration - adds an expiry effect for charactername with a duration in minutes. Example: !tk exp Delgon the Dwarf|Battle Rage|10 will add and track the expiry of the Battle Rage for Delgon the Dwarf. The Battle Rage will expire in 10 minutes from the time it was added. !tk del charactername|effect|remaining - deletes the expiry effect expiring in remaining minutes for charactername. How do I...? How do I set the time to be 1 day, 2 hours and 4 minutes? The script stores the current time in minutes, so in order to set the time, or add time, you have to first calculate how many minutes to add. For example, setting the time to 1 day, 2 hours and 4 minutes would be done with the command !tk set 1564 , where the calculation would have been 1440 + 120 + 4 minutes = 1564. See the macros below for one that will help you easily do this calculation. Suggested Macros These are some convenient macros to utilize the script: Macro Text Purpose and Comments !tk show Displays the current time. !tk add 10 Adds 10 minutes to the current time. !tk exp ?{Character Name}|?{Ability, effect or spell}|?{Duration in minutes} Simple macro to quickly add an expiry. Of course, you could use it to add something like a time when goblins are going to arrive at the PCs' camp. !tk exp @{selected|token_name}|?{Ability, effect or spell}|?{Duration in minutes} This macro is meant to be used as a Token Action. Adds an expiry for the character whose token was selected. /w gm [[?{Days|0}*1440 + ?{Hours|0}*60 + ?{Minutes|0}]] A simple macro to convert times from days, hours and minutes into minutes. I use this to calculate larger time values for adding or setting. Version History 0.1.0 First post to Roll20 forums 0.1.1 Minor formatting changes. No changes in functionality. 0.1.2 Changed method of determining whether commands are sent by GM. 0.1.3 Added handling of incorrect inputs, with feedback in case an invalid time or expiry entry is attempted. 0.2.0 Recoded. Added formatting using the Roll20 default template. Overall output is less verbose and less spammy (hopefully). 0.2.1 Added output of buttons that when clicked delete a certain expiry. Added deletion of expiries before they expire.