liuh886384 downloadsSync tasks to Google, Apple, and Outlook calendars via a standards-compliant iCalendar (ICS) feed with smart date inheritance.
Manage your tasks in Markdown and expose them to Google Calendar, Apple Calendar, and Outlook via standards-compliant iCalendar feeds.

The Professional Standard for Obsidian Calendar Sync.
- High-Fidelity: Strict RFC 5545 compliance (folding, CRLF, escaping).
- Zero Dependency: Works natively with Tasks and Day Planner syntax without requiring those plugins to be installed.
- Privacy First: Local-first architecture with optional GitHub Gist sync.
- Deep Logic: Intelligent
VEVENTvsVTODOsemantic splitting.
iCal Pro is built with a local-first philosophy.
VEVENT (timed) and VTODO (dated/floating).UID generation ensures no duplicates when tasks move between files.iCal Pro intelligently categorizes tasks based on the presence of Time.
| Feature | Syntax Example | Result (iCalendar) |
|---|---|---|
| Event (Timed) | - [ ] 2026-04-01 13:00-14:00 Task |
VEVENT (Visible in Grid) |
| Event (Timed) | - [ ] 13:00-14:00 Task |
VEVENT in Day Planner mode |
| To-Do (Dated) | - [ ] 2026-04-01 Task |
VTODO (Sidebar/Reminders) |
| Priority | ⏫ High / 🔼 Medium / 🔽 Low |
PRIORITY: 1 / 5 / 9 |
| Alarms | ⏰ 15 (15 minutes before) |
VALARM |
| Recurrence | 🔁 every weekday |
RRULE |
| Description | the description under the line - [ ] |
Visible in schedule description |
| Day Planner Mode | # 2026-04-01 (Any Heading) |
Inherited Date |
[!IMPORTANT] Google Calendar Compatibility: Google Calendar does not support
VTODO. To see date-only tasks in Google Calendar, enable "Show dated tasks as all-day events" in Scheduling settings, or add a time (e.g.,13:00) to each task.
⏫🔼🔽), Recurrence (🔁), and Alarms (⏰).DESCRIPTION.iCal Pro produces RFC 5545 .ics output intended to work with:
Client support for VTODO varies. Apple-oriented ecosystems usually handle VTODO better than Google Calendar.
Community Plugins (recommended):
Or install directly: Obsidian Community Plugins - iCal Pro
BRAT (beta):
liuh886/obsidian-ical-plugin-pro as a beta pluginiCal Pro settings tab.ics file there.https://gist.github.com/username/gist-id, the final segment is the Gist ID.gist scope selected. A classic PAT is recommended for this workflow.Validate.Sync Now.ics fileIf you encounter issues, you can enable verbose logging:
Ctrl+Shift+I on Windows/Linux or Cmd+Option+I on macOS).[info][ical] or iCal Pro:.You can also use the Copy Diagnostics button in the status card to generate a redacted summary of your configuration and recent sync history to include in bug reports.
Q: Why don't my To-Dos (VTODO) show up in Google Calendar?
A: Google Calendar natively only supports VEVENT. Enable "Show dated tasks as all-day events" in Scheduling settings to export date-only tasks as all-day events. Floating tasks (no date) will remain as VTODO and still won't appear. For full VTODO support, use Apple Calendar, Microsoft Outlook, or dedicated task managers.
Q: Is it safe to use GitHub Gist? A: Yes. Your Gist is yours. We recommend using a private Gist for maximum privacy. Your Personal Access Token never leaves your machine except to communicate with GitHub.
VTODO. By default, date-only tasks are exported as VTODO. Enable "Show dated tasks as all-day events" in Scheduling settings to export them as all-day VEVENT instead. This is optional and recommended for Google Calendar users. Floating tasks (no date) remain VTODO regardless of this setting..ics file lives in your Obsidian vault. Mobile calendar apps may not have direct access to vault storage. GitHub Gist sync is recommended for cross-device use.npm run buildnpm run typechecknpm run test:smokenpm run validateiCal Pro is a significantly enhanced and refactored version of the original obsidian-ical-plugin by Andrew Brereton.
This "Pro" edition maintains the original vision while introducing a completely re-engineered core for better performance, timezone reliability, and advanced task metadata support.
MIT
If you find this plugin useful and want to support its development, you can buy me a coffee!