name: discord description: Post, schedule Discord messages and reminders. Use when creating or managing channel announcements or reminders in Discord.
Discord skill
Allow you to post messages, schedule announcements, and set reminders in Discord channels. This skill is ideal for managing community engagement, coordinating team communications, and ensuring timely updates.
Roles and Permisions
- You are an admin of the guild (server) and have the necessary permissions to post messages in the target channels, and manage all aspects of guild (server).
- You have access to the channel IDs and guild ID for accurate message delivery. You need to use channel IDs for posting messages to ensure they are delivered to the correct channels, especially in cases where multiple channels may have similar names.
- You can always get the list of channels in the server and get thier IDs to ensure accurate message delivery.
- You can always get the guild ID from the
TOOLS.mdor ask the user for it if not available.
Triggers
- "remind #reflections to..."
- "post this in #general"
- "schedule a message for..."
- Something like you need to post or schedule in Discord.
Before Schedule
- Confirm the target channel and message content before scheduling.
- For reminders, if user uses "remind me of ..." it means its a single reminder, if user uses "remind me daily/weekly/monthly ..." it means its a recurring reminder. Be smart about parsing the frequency and timing for recurring reminders dont just look for the words "daily/weekly/monthly" but also consider variations like "every day", "each week", "monthly on the 1st", etc.
- Always post the message using channel IDs rather than channel names to avoid ambiguity and ensure the message is delivered to the correct channel.
Constraints
- DO NOT invoke a sub-agent for reminders or scheduled posts.
- Only use openclaw's built-in scheduling capabilities for scheduling messages or reminders.
- DO NOT use "wait" or "sleep" commands.
- Don't ask if I want to post to specific channels, just check if the channel exists and post to it. If the channel doesn't exist, ask for the correct channel name or ID.
- For recurring reminders, ensure that the scheduling is set up to repeat at the specified intervals without needing to reschedule manually after each occurrence.
- Always get frsh channel IDs from the server to ensure they are up-to-date, especially if channels may have been added or removed since the last time you checked.
Behavior and Safety
- Default behavior uses the scheduler's announce delivery (cron-only), not agent-turns, to ensure one authoritative sender.
- Use --stagger (e.g., 30s) and --best-effort-deliver to reduce collisions and noisy retries.
- Avoid mixing agentTurn + announce to prevent duplicates.
- Use channel IDs for --to; include --message text payload.
- For one-shot reminders use --at "
" or --at "+ ".
Important notes
- Use openclaw cron add with --session isolated and --announce (delivery to Discord).
- For scheduled tasks, ensure you use the sessionTarget as isolated.
- For scheduled tasks, use payload kind as agentTurn.
- check the guild ID from the
TOOLS.mdand use it in the payload message for scheduled tasks. If not available, you can ask the user for the guild ID.
Payload types
- Static message: cron --message "
". - Rotating: multiple cron jobs each with a different --message and stagger offsets.
- Scripted: cron triggers an isolated script that returns a message payload which the scheduler announces (advanced; keep announce as single sender).
Beautifying and formatting
- For better readability, you can use Markdown formatting in your messages (e.g., bold, italics,
code, etc.) when posting to Discord channels. - When scheduling messages, consider including emojis or other visual elements to make the announcements more engaging and attention-grabbing for the community.
- For reminders, you can use a friendly and conversational tone to make them more appealing and less robotic, which can help increase engagement and response rates.
- When posting updates or announcements, consider using bullet points or numbered lists to organize information clearly and make it easier for readers to digest the content.
- Use discord markdown formatting to enhance the visual appeal of your messages, such as using headers, bold text, or italics to highlight important information or make the message more engaging.
- Use discord UI elements, like polls, embeds, buttons etc. to make the messages more interactive and engaging for the community. For example, you can create a poll or use embeds to include images, links, or other rich content in your announcements.
Example scheduled task
{
"name": "<task_name>",
"schedule": {
"kind": "cron",
"expr": "/5 * * *",
"staggerMs": 30000
},
"sessionTarget": "isolated",
"wakeMode": "now",
"delivery": {
"mode": "announce",
"channel": "discord",
"to": "<CHANNEL_ID>",
"bestEffort": true
},
"payload": {
"kind": "agentTurn",
"message": "<text>"
}
}
CLI examples (copy/paste and adapt)
- Create single fixed-message job:
openclaw cron add --name "reminder-reflections-fixed" --cron "/5 * * " --announce --best-effort-deliver --stagger 30s --channel discord --to <CHANNEL_ID> --message "message here"
- Create rotating jobs (example for two variants; repeat for others with different --name, --stagger and --message):
openclaw cron add --name "reminder-1" --cron "/5 * * * " --announce --best-effort-deliver --stagger 0s --channel discord --to <CHANNEL_ID> --message "Reminder variant A"
openclaw cron add --name "reminder-2" --cron "/5 * * * *" --announce --best-effort-deliver --stagger 10s --channel discord --to <CHANNEL_ID> --message "Reminder variant B"
Manage jobs:
- openclaw cron list
- openclaw cron disable
- openclaw cron enable
- openclaw cron rm