Document format
ICS Sample Files
ICS (.ics) files use the iCalendar format to encode events, schedules, and recurrence rules for calendar applications. Use sample .ics files to validate calendar imports, timezone handling, recurring events, and scheduling interoperability.
3 files
All to 50KB
SHA256 verified
Manifest included
Quick facts
Files first
ICS Sample Files — Download
Use cases
ICS Testing Workflows
Compare and decide
ICS Format Comparisons
FAQ and reference
ICS File FAQ
Checksum Verification
Use checksums to confirm file integrity after download.
shasum -a 256 your_file_name_here
# Compare output with SHA256 values listed above.
Where is the machine-readable manifest?
Use the manifest when you need stable names, SHA256 values, and URLs for automation.
Use in code — curl, Python, Node, wget
Copy any snippet directly into scripts, test suites, or CI pipelines. All URLs are stable and publicly accessible with no auth required.
# Download ics_customer_migration_timeline_sample.ics
curl -L -o ics_customer_migration_timeline_sample.ics \
https://samplefile.com/samples/download/document/ics/ics_customer_migration_timeline_sample.ics/
# Or fetch a random ICS file
curl -s "https://samplefile.com/samples/api/random?format=ics" | jq -r '.download_url'
# Download ics_customer_migration_timeline_sample.ics
wget -O ics_customer_migration_timeline_sample.ics \
https://samplefile.com/samples/download/document/ics/ics_customer_migration_timeline_sample.ics/
import requests
# Download a specific file
url = "https://samplefile.com/samples/download/document/ics/ics_customer_migration_timeline_sample.ics/"
resp = requests.get(url)
with open("ics_customer_migration_timeline_sample.ics", "wb") as f:
f.write(resp.content)
# Or fetch a random ICS file via API
meta = requests.get("https://samplefile.com/samples/api/random?format=ics").json()
resp = requests.get(meta["download_url"])
with open(meta["name"], "wb") as f:
f.write(resp.content)
// Download a specific file
const fs = require("fs");
const https = require("https");
const url = "https://samplefile.com/samples/download/document/ics/ics_customer_migration_timeline_sample.ics/";
https.get(url, (res) => {
res.pipe(fs.createWriteStream("ics_customer_migration_timeline_sample.ics"));
});
// Or fetch a random ICS via the API
const meta = await fetch("https://samplefile.com/samples/api/random?format=ics").then(r => r.json());
const file = await fetch(meta.download_url);
// use file.arrayBuffer(), file.body, etc.
# Random ICS file (JSON response)
GET https://samplefile.com/samples/api/random?format=ics
# All ICS files
GET https://samplefile.com/samples/api/files?format=ics
# Manifest with SHA256 checksums
GET https://samplefile.com/samples/document/ics/manifest.json
# Response includes: name, size_bytes, mime_type, sha256, download_url
Validation Methodology
- Test parser behavior on varied sizes and edge-case encodings.
- Validate text extraction and metadata integrity.
- Confirm conversion and round-trip fidelity where applicable.
Fixture Matrix
Use the curated ICS matrix to choose the right clean, edge-case, and broken fixtures for this format.
Open Matrix