Commands and Usage
All commands must have valid prefix or mention Niles, i.e. !command or @niles command.
Commands
| Command | Usage | Description |
|---|---|---|
| display | !display | Display the calendar |
| update | !update | Update the calendar |
| create | !create <event name at time on day> | Create new events |
| delete | !delete <event name> | Delete existing events |
| clean | !clean <number of messages to delete> | Delete Discord messages in channel |
| id | !id <calendar_id> | Set Google Calendar ID |
| tz | !tz <timezone> | Set timezone |
| setup | !setup | Get setup instructions |
| invite | !invite | Generate Niles bot invite link |
| prefix | !prefix <new_prefix> | Change the Niles bot prefix |
| displayoptions | !displayoptions <option> <setting> | Change the calendar display/formatting options |
| admin | !admin <restricted_admin_role> | Restrict the usage of Niles to a specific server role |
| help | !help | Get this list of commands in Discord |
| stats | !stats | Display Niles bot statistics |
| ping | !ping | Pong |
display
Use !display or @niles display to display your calendar. This commmand will only work after setup, i.e. after a valid calendar ID and timezone have been given.
You can only use display in one channel in any one server. Niles will attempt to continually update this one calendar every 5 minutes.
update
Use !update or @niles update to force update your calendar. This can force update after you have created new events, changed display options or other settings. After using update Niles will continue to update this calendar every 5 minutes.
create
Use !create or @niles create to add new events to your calendar. This command takes whatever input you give to it and uses the default Google Calendar interpreter. The form of use is !create <event for Google to parse>.
A reliable way of using this is !create <event name> on <event day> from <start time> to <end time>, i.e. create Among Us on Friday from 5pm to 11pm
Formatting
- Numerical date formats supported:
- MM DD YY
- M D YY
- YYYY MM DD
- Textual date formats are supported in English only e.g.
September 4 2020 - Multi-day events can be created with keywords “ - “ or “ to “ etc… e.g.
01/30/2020 - 05/30/2020
There is no way to change it and no plans to add middleware to convert it (Natural Language Processing is out of the scope of Niles)
Niles will automatically update the calendar, delete the creation messages and confirmation messages.
Important: The ‘native’ Google parser will read the event times in the timezone that your Google Calendar is set to. If you are having issues with incorrect times being registered with create, we recommend ensuring that your Google Calendar and Niles share the same timezone.

For complicated, recurring or multi-day events, these can be created using this parser, but we recommend just creating the events in the Google Calendar Web UI, where possible.
delete
Use !delete <event_name> or @niles delete <event name> to delete an event from your Calendar. The <event_name> should be exactly what it is named in your calendar. Note that when deleting events using this method, Niles does not currently handle events with the same name, and will delete the latest event.
We recommend deleting events in the Google Calendar Web UI, where possible.
next
Use !next or @niles next to display the next upcoming event within the set days to display.
clean
Use !clean <number of messages to clean> or @niles clean <number of messages to clean> to tidy up your calendar channel etc. prior to or after posting your calendar.
Due to Discord limitations, Niles cannot clean messages older than 14 days.

id
Use !id <google_calendar_id> or @niles id <google_calendar_id> to add or change the Google Calendar associated with your Discord Server. This must be a valid calendar ID, from the ‘Settings and Sharing’>’Integrate’ section of the Calendar you want to use.
Niles must have access to your calendar. You can only use one Google Calendar per server.
tz
Use !tz <timezone> or @niles tz <timezone> to add or change the timezone associated with your Discord Server.
This can be done using !tz i.e.
!tz America/New_York
!tz canada/eastern
!tz Montreal
!tz eastern
!tz UTC+5
!tz EST
Thanks to timezone-soft
Full list of TZ database names on Wikipedia
validate
Use !validate or @niles validate to check for any errors with the timezone, calendar ID, calendar fetching or permissions.
calname
Use !calname or @niles calname to rename the CALENDAR link name to something else
auth
Use !auth or @niles auth to set up authorization with OAuth2 or to switch back to service account
channel
Use !channel or @niles channel to set a channel to be the default channel for all calendar updates and postings with subcommands set and delete
setup
Use !setup or @niles setup to display a summary of the setup steps for getting started with Niles.
locale
Use !locale or @niles locale to set up your locale for date/ time and text.
Text Translation
You can see the supported languages and translation progress on Crowdin
If a language’s text is not fully supported, it will fall back to English, but the date formatting will be preserved.
Only ISO 3166-1 Alpha-2 Codes are supported. You can see a list here
If you would like to contribute to the text translations, please let blabdude#9793 know so they can add you to the translator channel on Discord. If you do not wish to be added, you can join the Crowdin project
If you would like to request a language to be translated, please fill out this Google Form
invite
Use !invite or @niles display to generate an invite link to add Niles to a server.
prefix
Use !prefix <new_prefix> or @niles prefix <new_prefix> to change the prefix for the server. i.e. @niles prefix ?!. Niles would then respond to ?!help etc.
You can also use @niles prefix to find out what the prefix has been changed to if you forget.
displayoptions
For details on display options, refer to Customization/Display Options.
admin
Use !admin <role> or @niles admin <role> to restrict the usage of Niles to people with the role. i.e. !admin scheduler or !admin captain. The <role> is case sensitive.
Important: Make sure you have the role that you are about to restrict the usage of Niles to. You can only restrict the usage to one role.
help
Use !help or @niles help to get a list of the available commands and a summary of what they do.
stats
!stats or @niles stats display a list of usage statistics about the Niles bot.
ping
!ping or @niles ping - pong!