Planning
Batch text to calendar (.ics)
“A list of dates and deadlines in a chat or note — how do I get them into my calendar?” Paste one schedule per line, check the editable table, download a real .ics file that imports into Apple Calendar, Google Calendar or Outlook. Everything runs in this page: your text is never uploaded or saved.
Export summary
Valid events
0
Needs fixing
0
Time zone
—
iCalendar preview
Parsed events will appear here as an editable table — fix anything before exporting; the original line is kept beside each row.
How to use this page
One line per event. Write time | title | location | note. A timed line is YYYY-MM-DD HH:MM -> HH:MM (end on the same day) or a full -> YYYY-MM-DD HH:MM. A date alone — or the marker all-day — makes an all-day event, and date -> date makes a multi-day one ending on the second date.
Check, then edit. Every parsed line becomes a row you can fix: title, start/end, all-day, location and note, with the original text kept beside it. Lines that cannot be parsed are listed with their line numbers — correct them in the box and parse again, or remove them. Export only unlocks when everything left is valid.
Time zones and daylight saving. Timed events are stored as UTC inside the file, converted from the zone you pick (your browser's by default). If a local time does not exist — clocks sprang forward — or happens twice — clocks fell back — the page asks you to adjust or choose rather than guess.
Questions people ask
Which calendar apps can import the exported .ics file?
The file follows the iCalendar (RFC 5545) standard: double-click to open in Apple Calendar, upload it in Google Calendar under Settings → Import, or add it in Outlook as a calendar file. Timed events are stored in UTC, so each app shows them correctly in your device's current time zone.
How are time zones and daylight saving handled?
The page reads your browser's time zone (e.g. Asia/Shanghai) and lets you switch it. Timed events are converted to UTC using that zone, with daylight saving applied per date. If a local time does not exist (spring forward) or occurs twice (fall back), the page asks you to adjust or pick the right occurrence instead of guessing.
What kinds of lines count as invalid?
Nonexistent dates (like 2026-02-30), relative wording (tomorrow, next Monday), a timed event without an end, an end earlier than the start, or a missing title are all flagged by line number. Fix them and parse again, or remove the line — export unlocks only when everything left is valid.
How does the end date work for multi-day all-day events?
“2026-11-05 -> 2026-11-07” means the three days Nov 5–7. The file writes DTEND as Nov 8 because the iCalendar end date is exclusive (the day after the last one), so every calendar shows exactly three days.
Is my pasted text uploaded or saved anywhere?
No. Parsing, editing and export all run inside this page in your browser — no network requests, no localStorage, nothing in the URL, and nothing goes to analytics. Closing the page discards everything.