2.6k
GitHub Stars
6
Bundled Files
2 months ago
Catalog Refreshed
3 months ago
First Indexed
Readme & install
Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.
Installation
Preview and clipboard use veilstrat where the catalogue uses aiagentskills.
npx veilstrat add skill openclaw/skills --skill ews-skill- _meta.json270 B
- ews-calendar-secure.sh1.8 KB
- ews-calendar-setup.sh3.6 KB
- ews-calendar.sh10.9 KB
- README.md5.4 KB
- SKILL.md5.9 KB
Overview
This skill fetches calendar events from Microsoft Exchange using the Exchange Web Services (EWS) API and returns them as structured JSON. It securely retrieves credentials from the OS keyring and supports date filters like today, tomorrow, or a specific YYYY-MM-DD date. The output includes subject, start/end times, location, organizer, body text, and embedded links.
How this skill works
On invocation the wrapper script pulls the stored password from the OS keyring, sets EWS_URL and EWS_USER in the environment, and calls the main script which issues SOAP requests to EWS. The skill uses SOAP templates to find and fetch calendar items, parses the responses, and emits a JSON array of events. Debug options let you save raw XML and enable verbose logs for troubleshooting.
When to use it
- User asks for their schedule (e.g., "What’s on my calendar today?")
- Building integrations that need meeting metadata (subject, times, organizer, location)
- Exporting or backing up calendar entries to JSON files
- Automated checks for upcoming meetings or links (video, docs)
- Debugging EWS integration with saved raw XML responses
Best practices
- Store credentials in the OS keyring (macOS Keychain or Linux libsecret/gnome-keyring) — do not keep passwords in plain .env files in production
- Set EWS_URL and EWS_USER in your OpenClaw config and use the setup script to register the password securely
- Use the --debug-xml option only for troubleshooting and remove any saved XML logs after resolving issues
- Validate date input as YYYY-MM-DD or use the keywords today/tomorrow to avoid format errors
- Limit verbose logging in production to avoid leaking sensitive headers or responses
Example use cases
- Get today’s meetings for a user: ./ews-calendar-secure.sh --date today
- Export tomorrow’s meetings to a file: ./ews-calendar-secure.sh --date tomorrow --output /tmp/tomorrow.json
- Fetch a specific date with raw XML saved for debugging: ./ews-calendar-secure.sh --date 2026-03-03 --verbose --debug-xml /tmp/debug.xml
- Integrate with automation to scan meeting bodies for external links and populate a link index
FAQ
The skill returns an empty JSON array [] when there are no matching events.
Where are credentials stored and how do I update them?
EWS passwords are stored in the OS keyring (Keychain on macOS, libsecret/gnome-keyring on Linux). Run the setup script with --user to add or update the password.
I get a 401 HTTP error — what should I check?
Verify EWS_USER and EWS_URL values, confirm the stored password is current, and re-run the setup script if the password changed. Also check account status on the Exchange server.