FIRST CH TOOLS / Misc / 50 ICS GENERATOR
ICS Calendar Event Generator
Build the “add to calendar” file (.ics) that goes with a webinar or meeting invitation, right here. Pick a time zone and the daylight-saving rules travel inside the file, so the event opens at the same local time in Google Calendar, Apple Calendar and Outlook. All-day events, recurrence and reminders are covered, and ready-made add-to-calendar links are generated alongside the file.
1 — What the event says
2 — When and where in time
3 — Reminders and details
The ORGANIZER property is only written when an e-mail address is filled in. No invitation is sent — this file only carries the contents of the event.
4 — Output (.ics)
Attach the downloaded file to an e-mail, or host it and link to it. When the recipient opens it, their calendar app offers to import the event.
5 — Checks
6 — Add-to-calendar links
Use these as the target of an “add to calendar” button in an e-mail or on a landing page. The link opens in whichever account the recipient is signed in to, so they can look the event over in the browser before saving it. Reminders do not travel in a link (the calendar’s own default is used), so hand out the .ics file when the notification timing matters.
Nothing you type leaves the browser — the file is assembled entirely on this page. Initial values can be passed in the URL: /en/ics/?title=Kickoff&start=2026-10-01T14:00&end=2026-10-01T15:00&tz=Europe/London / /en/ics/?title=Standup&start=2026-10-05T10:00&repeat=weekly&count=12&alarm=15
How to Use
- Describe the eventFill in the title, location and description, then set the start and pick a length. For something that runs all day, tick “all-day event” and the clock times disappear from the file.
- Check the time zoneIt defaults to the one your device is in. For a webinar with overseas attendees, choose the time zone the event is held in and leave the format on “TZID + VTIMEZONE”. Read the checks panel and fix anything it flags, such as an end before the start or a recurrence that never ends.
- Hand it outClick “Download .ics” and attach the file to the invitation, or host it and link to it. If you would rather people add the event in the browser, put the Google or Outlook link below behind a button.
About This Tool
An .ics file is one event written out as plain text. The format is iCalendar (RFC 5545): a run of lines from BEGIN:VCALENDAR to END:VCALENDAR. Calendar apps treat it as their common language, so a single file imports into Google Calendar, Apple Calendar on iPhone and Mac, Outlook and Thunderbird alike. Attach it to an e-mail or host it and link to it — both work.
There are three ways to write the time, and the choice decides which mistakes you can make. UTC with a trailing Z, a local time tagged with TZID, or a date with no time at all (VALUE=DATE) for all-day events. UTC is dependable for a one-off, but a recurring event written in UTC drifts by an hour when daylight saving starts or ends. The default here, TZID plus VTIMEZONE, ships the time-zone definition — the rules for when daylight saving begins — inside the file, so the event lands on the right local time even if the recipient’s calendar carries outdated time-zone data.
The UID is the name tag that says which event this is. Import a file with a UID that is already in the calendar and the existing event is updated rather than duplicated. That is useful for sending out a corrected time, and unhelpful when you want the same file to create separate events. “New UID” issues a fresh tag. (SEQUENCE stays at 0 here; to publish a revision that overwrites an earlier one, keep the original UID and raise that number.)
Other tools that go with invitation e-mails and landing pages: QR Code Generator for a sign-up URL people scan at the venue, URL Parameters & UTM Builder for campaign tagging, and the OGP Meta Tag Wizard for how the page looks when it is shared.
Common .ics pitfalls
Writing the last day as the end of an all-day event
DTSTART;VALUE=DATE:20261001 DTEND;VALUE=DATE:20261002 <- a single day on 1 Oct (the end is exclusive)
For all-day events iCalendar excludes the end date. An event on 1 October ends on 2 October. Put 1 October there and most calendars show a day less, or drop the event entirely. Ticking the all-day box here writes the following day for you.
Writing a recurring event in UTC
DTSTART:20261001T090000Z <- meant to be 10:00 in London RRULE:FREQ=WEEKLY;BYDAY=TH <- slips by an hour once the clocks change
UTC pins an absolute instant, so in a region that observes daylight saving the local time moves by an hour on the changeover date. A weekly 10:00 meeting quietly becomes 11:00. Write recurring events with TZID and ship the VTIMEZONE definition with them; attendees in other regions then still see the correct converted time.
Leaving the line breaks as LF
BEGIN:VCALENDAR\r\n <- the spec requires CRLF
RFC 5545 defines the line separator as CRLF. Plenty of apps cope with LF alone, but some fail the import silently, which is a hard kind of bug to trace. Watch the line endings whenever you hand-edit a file or re-save it from an editor. Output from this tool is always CRLF.
Leaving a long description on one line
DESCRIPTION:The join link and the slides go out the day before the session (continuation lines start with a single space)
A line may be 75 octets long at most; anything longer continues on the next line, which must start with one space. Octets, not characters — Japanese text is three bytes per character in UTF-8, so it wraps after roughly 25 characters. A fold must never land inside a character, or the text is corrupted. This tool folds on code-point boundaries.
Writing commas and semicolons literally
SUMMARY:Kickoff \(quote\, contract\) <- , ; \ and newlines need a backslash
In iCalendar, , and ; separate values, so text that contains them needs \, and \;. A newline is written \n. Forget to escape and the value is cut short mid-title, or the import fails outright.
Assuming your reminder is the one that fires
BEGIN:VALARM ACTION:DISPLAY TRIGGER:-PT1H <- honoured by Apple Calendar and Outlook
Google Calendar may replace reminders with the account default on import. If the invitation promises a notification an hour before, some recipients will not get it. When it really has to reach people, send a separate reminder e-mail the day before rather than relying on VALARM.
Other Tools
- 01Batch Image → WebP ConverterWebP Converter
- 02White Background RemoverWhite BG Remover
- 03WCAG Contrast CheckerContrast Checker
- 04Character CounterCharacter Counter
- 05llms.txt Generatorllms.txt Generator
- 06JSON-LD GeneratorJSON-LD Generator
- 07Markdown → PDFMD → PDF
- 08OGP Meta Tag WizardOGP Wizard
- 09Favicon GeneratorFavicon Generator
- 10TikTok PublisherTikTok Publisher
- 11Encoding & Line Ending ConverterEncoding Converter
- 12Batch Image → AVIF ConverterAVIF Converter
- 13Test Data GeneratorTest Data Generator
- 14Marp Markdown → SlidesMarp Slides
- 15Text & Code Diff CheckerDiff Checker
- 16Cron Expression ExplainerCron Explainer
- 17Base64 & Data URI EncoderBase64 & Data URI
- 18URL Parameter Editor & UTM BuilderURL Parameters
- 19HTML Entity Escape & UnescapeHTML Escape
- 20JSON ⇄ YAML ConverterJSON ⇄ YAML
- 21PX ⇄ REM / EM ConverterPX ⇄ REM / EM 単位変換
- 22Color Converter & AlphaColorコード変換&アルファ透過
- 23MD5 / SHA-256 Hash Generatorハッシュ生成
- 24JWT Decoder & Expiry CheckerJWTデコーダー&有効期限チェッカー
- 25User-Agent ParserUser-Agent解析&デバイス判定
- 26UUID & ULID GeneratorUUID (v4) & ULID 一括生成
- 27Aspect Ratio Calculatorアスペクト比計算&サイズ算出
- 28Markdown Table & CSV/TSV ConverterMarkdownテーブル整形&CSV/TSV変換
- 29SQL Query FormatterSQLクエリフォーマッター&整形
- 30QR Code GeneratorQR Code Generator
- 31Regex Tester正規表現テスター
- 32Unix Timestamp ConverterUNIXタイムスタンプ⇄日時変換
- 33New Tab Memo新規タブメモ帳
- 34Image Resizer & Cropper画像リサイズ&クロップ
- 35EXIF Viewer & RemoverEXIF情報の確認&除去
- 36robots.txt Generatorrobots.txt ジェネレーター
- 37Password Generator安全なパスワード生成
- 38Case Converter文字列ケース変換
- 39CSV/TSV ⇄ JSON ConverterCSV/TSV ⇄ JSON 相互変換
- 40PDF Merge, Split & ExtractPDF結合・分割・ページ抽出
- 41Full-width ⇄ Half-width Converter全角⇄半角変換&テキストクリーナー
- 42X (Twitter) Post CounterX(Twitter)投稿の文字ウェイト計算
- 43CSS clamp() Fluid Typography CalculatorCSS clamp() 計算機
- 44CSS Gradient GeneratorCSSグラデーションジェネレーター
- 45Image Colour Palette Extractor画像からカラーパレット抽出
- 46QR Code ReaderQRコード読み取り
- 47SVG Optimizer & Data URISVG最適化&data URI化
- 48Redirect Generatorリダイレクトルール ジェネレーター
- 49IP / CIDR CalculatorIPアドレス・CIDR計算機