Nutzung des ics-Splitter Tool
Die Nutzung geschieht auf eigene Gefahr. Ich gebe keine Garantie auf die vollständige Korrektheit der Rückgabe Dateien und lehne jegliche Haftung ab.
Wer ics Dateien mit sensiblen Inhalte splitten möchte sollte den Code in eine Lokale HTML Datei einfügen und so verwenden.
Erforderlicher Zeitaufwand: 1 Minute
- Inhalt einer ICS Datei laden
Klicke auf "ICS Datei laden" und wähle eine ics Datei auf deinem Computer aus oder kopiere den Inhalt einer ICS Datei ins Textarea.
- Anzahl zu erstellende Dateien definieren
Gib im Textfeld an, in wieviele Dateien die ICS Datei aufgeteilt werden soll.
- Dateien auf Splitten
Klicke auf "Splitten" um die Dateien aufzusplitten
- Erstellte ICS Dateien herunterladen
Klicke bei den einzelnen aufgeteilten ICS Dateien auf "Download File X" oder kopiere den Inhalt aus den Textareas in einzelne Dateien und speichere diese als .ics ab.
Rückmeldung zum ics-Splitter
Wer auf hört besser zu werden, hat aufghört gut zu sein. Über Rückmeldungen und Verbesserungsvorschläge freue ich mich. Bitte direkt an kontakt@siteit.ch
Der Code für das ics-Datei Splitter Tool
Ich habe den Code per Chat-GPT generieren lassen.
Wer mir nicht traut, dann folgenden Code der aus HTML und JavaScript besteht in eine Lokale HTML Datei laden und das Tool Lokal verwenden oder Auf der eigenen Webseite einbinden.
Über einen Link zum "Original ics-Splitter" würde ich mich dann natürlich freuen. 😉
<div class="toolbox">
<textarea id="icsInput" rows="10" cols="50" placeholder="Fügen Sie hier den ICS-Inhalt ein"></textarea><br>
<input type="file" id="fileInput" accept=".ics">
<button id="loadFileButton">ICS-Datei laden</button><br>
<input type="number" id="fileCount" min="1" placeholder="Anzahl Zieldateien"><br>
<button id="splitButton">Splitten</button>
<div id="output"></div>
</div>
<script>
document.getElementById('loadFileButton').addEventListener('click', function() {
document.getElementById('fileInput').click(); // Öffnet den Datei-Explorer
});
document.getElementById('fileInput').addEventListener('change', function(event) {
const file = event.target.files[0];
if (file) {
const reader = new FileReader();
reader.onload = function(e) {
document.getElementById('icsInput').value = e.target.result;
};
reader.readAsText(file);
}
});
document.getElementById('splitButton').addEventListener('click', function() {
const icsContent = document.getElementById('icsInput').value;
const numberOfFiles = parseInt(document.getElementById('fileCount').value);
splitICS(icsContent, numberOfFiles);
});
function splitICS(content, numberOfFiles) {
if (numberOfFiles <= 0 || !content) return;
const header = content.substring(0, content.indexOf('BEGIN:VEVENT'));
const eventsContent = content.substring(content.indexOf('BEGIN:VEVENT'), content.lastIndexOf('END:VEVENT') + 'END:VEVENT'.length);
const events = eventsContent.split('BEGIN:VEVENT').slice(1);
const perFile = Math.ceil(events.length / numberOfFiles);
document.getElementById('output').innerHTML = '';
for (let i = 0; i < numberOfFiles; i++) {
let fileContent = events.slice(i * perFile, (i + 1) * perFile).join('BEGIN:VEVENT');
fileContent = header + 'BEGIN:VEVENT' + fileContent;
if (i === numberOfFiles - 1) {
fileContent += '\n';
}
fileContent += 'END:VCALENDAR';
createTextAreaWithDownload(fileContent, i + 1);
}
}
function createTextAreaWithDownload(content, index) {
const outputDiv = document.getElementById('output');
const container = document.createElement('div');
outputDiv.appendChild(container);
const header = document.createElement('h3');
header.innerText = 'Aufgesplittete Datei ' + index;
container.appendChild(header);
const textArea = document.createElement('textarea');
textArea.rows = 10;
textArea.cols = 50;
textArea.value = content;
container.appendChild(textArea);
const downloadButton = document.createElement('button');
downloadButton.innerText = 'Download File ' + index;
downloadButton.addEventListener('click', function() {
downloadFile(content, 'split-file-' + index + '.ics');
});
container.appendChild(downloadButton);
}
function downloadFile(content, filename) {
const element = document.createElement('a');
element.setAttribute('href', 'data:text/calendar;charset=utf-8,' + encodeURIComponent(content));
element.setAttribute('download', filename);
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
}
</script>