<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Software Archive - Janpedia</title>
	<atom:link href="https://janpedia.de/en/category/software-en-en/feed/" rel="self" type="application/rss+xml" />
	<link>https://janpedia.de/en/category/software-en-en/</link>
	<description>Blog ohne bestimmtes Thema aber mit nützlichen Inhalten</description>
	<lastBuildDate>Sun, 14 Dec 2025 10:22:10 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://janpedia.de/wp-content/uploads/2024/09/cropped-cropped-Bildschirmfoto-2022-10-01-um-14.15.25-32x32.png</url>
	<title>Software Archive - Janpedia</title>
	<link>https://janpedia.de/en/category/software-en-en/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Mail, contacts, calendar – Set up comfortably with custom Apple profiles</title>
		<link>https://janpedia.de/en/2025/12/14/mail-contacts-calendar-set-up-comfortably-with-custom-apple-profiles/</link>
					<comments>https://janpedia.de/en/2025/12/14/mail-contacts-calendar-set-up-comfortably-with-custom-apple-profiles/#respond</comments>
		
		<dc:creator><![CDATA[Jan]]></dc:creator>
		<pubDate>Sun, 14 Dec 2025 10:20:03 +0000</pubDate>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[profile]]></category>
		<guid isPermaLink="false">https://janpedia.de/?p=678</guid>

					<description><![CDATA[<p>Not every provider of email, calendar, and contact services offers its own app that allows</p>
<p>Der Beitrag <a href="https://janpedia.de/en/2025/12/14/mail-contacts-calendar-set-up-comfortably-with-custom-apple-profiles/">Mail, contacts, calendar – Set up comfortably with custom Apple profiles</a> erschien zuerst auf <a href="https://janpedia.de/en">Janpedia</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Not every provider of email, calendar, and contact services offers its own app that allows users to conveniently use their services on their respective devices.</p>



<p>Mailbox.org, for example, is my provider of choice (because it is based in Germany, highly customizable, has been on the market for a long time, offers good data protection, and has a very flexible pricing model with monthly cancellation, various payment methods, etc.). However, it does not offer its own apps. There is a web application (Open Xchange UI) that leaves nothing to be desired and allows convenient management of emails, calendars, files, etc. via the browser. But on mobile devices, you prefer to use other apps.</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="1024" height="1024" src="https://janpedia.de/wp-content/uploads/2025/12/ChatGPT-Image-14.-Dez.-2025-11_18_47-1.png" alt="An opened box where icons for mail, calendar and contacts are flying in" class="wp-image-684" srcset="https://janpedia.de/wp-content/uploads/2025/12/ChatGPT-Image-14.-Dez.-2025-11_18_47-1.png 1024w, https://janpedia.de/wp-content/uploads/2025/12/ChatGPT-Image-14.-Dez.-2025-11_18_47-1-300x300.png 300w, https://janpedia.de/wp-content/uploads/2025/12/ChatGPT-Image-14.-Dez.-2025-11_18_47-1-150x150.png 150w, https://janpedia.de/wp-content/uploads/2025/12/ChatGPT-Image-14.-Dez.-2025-11_18_47-1-768x768.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Here, mailbox.org offers an <strong>IMAP/SMTP</strong> account, <strong>CardDAV</strong> (for contacts) and <strong>CalDAV</strong> (for calendars), and <strong>WebDAV</strong> (for files). Anyone who, like me, has several devices to set up (Mac, iPhone, iPad&#8230;) will quickly find this inconvenient. Fortunately, Apple offers so-called profiles (.mobileconfig files) that can be used equally well on MacOS and iOS.</p>



<p>Many providers – at least mailbox.org – offer these profiles for download directly in the web interface. These can be used easily in the standard case: download (for iPhone also via QR code), install, confirm, enter password – done. A simple matter for standard users.</p>



<p>However, those who have a slightly more customized setup and, for example, use multiple mail aliases/senders will still have to do a little more after installing these ready-made profiles.</p>



<h2 class="wp-block-heading">Create a custom profile</h2>



<p>There is an app called “<a href="https://apps.apple.com/de/app/apple-configurator/id1037126344?mt=12" target="_blank" rel="noreferrer noopener">Apple Configurator</a>” available for free from Apple. After downloading it, you can open an existing profile and customize it (if necessary, remove any existing signature from the provider via “File -&gt; Remove Signature” first, as signed profiles cannot be edited). Of course, you can also create your own profile from scratch.</p>



<p>Now you can take the mailbox.org profile, for example, and customize it. In my case, I removed the calendar setting because I don&#8217;t use the calendar.</p>



<h2 class="wp-block-heading">Set up email aliases</h2>



<p>I also use email aliases (i.e., multiple email addresses with their own domains, all running through the same account. I would like to be able to select any of these as the sender in the mail program).</p>


<div class="wp-block-image">
<figure class="alignright size-large is-resized"><a href="https://janpedia.de/wp-content/uploads/2025/12/Bildschirmfoto-2025-12-14-um-10.56.06-1.png"><img decoding="async" width="1024" height="940" src="https://janpedia.de/wp-content/uploads/2025/12/Bildschirmfoto-2025-12-14-um-10.56.06-1-1024x940.png" alt="Screenshot of apple configurator with aliases defined in the mail section" class="wp-image-679" style="aspect-ratio:1.089372981032055;width:454px;height:auto" srcset="https://janpedia.de/wp-content/uploads/2025/12/Bildschirmfoto-2025-12-14-um-10.56.06-1-1024x940.png 1024w, https://janpedia.de/wp-content/uploads/2025/12/Bildschirmfoto-2025-12-14-um-10.56.06-1-300x276.png 300w, https://janpedia.de/wp-content/uploads/2025/12/Bildschirmfoto-2025-12-14-um-10.56.06-1-768x705.png 768w, https://janpedia.de/wp-content/uploads/2025/12/Bildschirmfoto-2025-12-14-um-10.56.06-1-1536x1411.png 1536w, https://janpedia.de/wp-content/uploads/2025/12/Bildschirmfoto-2025-12-14-um-10.56.06-1.png 1814w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<p>To do this, go to the “Email” section in Apple Configurator and simply enter all aliases separated by commas (without spaces after the commas!) in the “Email Address” field.</p>



<p>Note: Currently, you cannot specify different sender names for each alias. I asked about this <a href="https://discussions.apple.com/thread/256211025" target="_blank" rel="noreferrer noopener">in the Apple forum</a>. However, I assume it will not work because iOS Mail does not support this. In MacOS Mail, you can manually customize the names after installing the profile (Settings -&gt; Accounts -&gt; Dropdown Email Addresses -&gt; Edit).</p>



<h2 class="wp-block-heading">Install the profile</h2>


<div class="wp-block-image">
<figure class="alignleft size-large is-resized"><a href="https://janpedia.de/wp-content/uploads/2025/12/Bildschirmfoto-2025-12-14-um-11.02.31-1.png"><img decoding="async" width="840" height="1024" src="https://janpedia.de/wp-content/uploads/2025/12/Bildschirmfoto-2025-12-14-um-11.02.31-1-840x1024.png" alt="Screenshot of the installed profile" class="wp-image-680" style="aspect-ratio:0.8203209056462554;width:275px;height:auto" srcset="https://janpedia.de/wp-content/uploads/2025/12/Bildschirmfoto-2025-12-14-um-11.02.31-1-840x1024.png 840w, https://janpedia.de/wp-content/uploads/2025/12/Bildschirmfoto-2025-12-14-um-11.02.31-1-246x300.png 246w, https://janpedia.de/wp-content/uploads/2025/12/Bildschirmfoto-2025-12-14-um-11.02.31-1-768x937.png 768w, https://janpedia.de/wp-content/uploads/2025/12/Bildschirmfoto-2025-12-14-um-11.02.31-1-1259x1536.png 1259w, https://janpedia.de/wp-content/uploads/2025/12/Bildschirmfoto-2025-12-14-um-11.02.31-1.png 1602w" sizes="(max-width: 840px) 100vw, 840px" /></a></figure>
</div>


<p>Once you have customized everything in the profile (feel free to click through the settings, you might find something else useful), you can save the profile and you will then have a .mobileconfig file that you can install on macOS and iOS devices.</p>



<p>In my case, I simply placed the file in iCloud Drive and installed it on all my devices from there. Just open the profile file in Finder/Files app. Then you have to go to “Settings” and look for the “Profile loaded” entry, which is quite prominent there. Click on it, take a quick look and select “Install.” Since your profile does not have a signature, an additional warning must be confirmed.</p>



<p>Then you have to enter the passwords for the respective services (IMAP/SMTP, CardDAV, etc.) and everything should work.</p>



<p><strong>Note</strong>: You can also save the passwords in the profile right away. But then you have to decide whether you want to upload it to iCloud Drive.</p>



<p>You can then manage the installed profiles:<br>On Mac: Settings &gt; General &gt; Device Management<br>On iOS: Settings -&gt; General -&gt; VPN and Device Management</p>



<h2 class="wp-block-heading">Conclusion</h2>



<p>Profiles are a convenient way to distribute multiple accounts across multiple devices without using provider apps. They often even offer many useful settings that apps don&#8217;t have. Unlike provider apps, they use Apple&#8217;s standard account management, which opens the doors to services for multiple apps. This means you can use the standard Apple apps (Mail, Calendar, etc.), but of course you can also use alternative apps that also support the Apple standard.</p>



<p>With emails, for example, I have the problem that there are hardly any providers where push notifications work properly. Especially when emails are marked as “read” on one device, the push notification usually does not disappear on the other devices. So I often have the problem that I see a notification for new mail on my iPhone, and only when I open the mail app does it disappear because I have already read it on my Mac. If you use IMAP and select “Retrieve” instead of “Push” and set a suitable interval, it doesn&#8217;t work in real time, but it is reliable.</p>



<p><em>Translated with <a href="https://www.deepl.com/?utm_campaign=product&amp;utm_source=web_translator&amp;utm_medium=web&amp;utm_content=copy_free_translation">DeepL.com</a> (free version)</em></p>
<p>Der Beitrag <a href="https://janpedia.de/en/2025/12/14/mail-contacts-calendar-set-up-comfortably-with-custom-apple-profiles/">Mail, contacts, calendar – Set up comfortably with custom Apple profiles</a> erschien zuerst auf <a href="https://janpedia.de/en">Janpedia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://janpedia.de/en/2025/12/14/mail-contacts-calendar-set-up-comfortably-with-custom-apple-profiles/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Remove MDM profile from iOS device &#8211; without App, iOS/iPadOS 18+</title>
		<link>https://janpedia.de/en/2025/02/28/remove-mdm-profile-from-ios-device/</link>
					<comments>https://janpedia.de/en/2025/02/28/remove-mdm-profile-from-ios-device/#comments</comments>
		
		<dc:creator><![CDATA[Jan]]></dc:creator>
		<pubDate>Fri, 28 Feb 2025 06:10:28 +0000</pubDate>
				<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://janpedia.de/?p=606</guid>

					<description><![CDATA[<p>I bought a used iPad at ebay &#8211; a device in good condition for little</p>
<p>Der Beitrag <a href="https://janpedia.de/en/2025/02/28/remove-mdm-profile-from-ios-device/">Remove MDM profile from iOS device &#8211; without App, iOS/iPadOS 18+</a> erschien zuerst auf <a href="https://janpedia.de/en">Janpedia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image">
<figure class="alignright size-large is-resized"><a href="https://janpedia.de/wp-content/uploads/2025/02/IMG_3336-scaled.jpeg"><img loading="lazy" decoding="async" width="768" height="1024" src="https://janpedia.de/wp-content/uploads/2025/02/IMG_3336-768x1024.jpeg" alt="Screenshot of the message that remote management is set up for this device" class="wp-image-579" style="width:267px;height:auto" title="Screenshot of the message that remote management is set up for this device" srcset="https://janpedia.de/wp-content/uploads/2025/02/IMG_3336-768x1024.jpeg 768w, https://janpedia.de/wp-content/uploads/2025/02/IMG_3336-225x300.jpeg 225w, https://janpedia.de/wp-content/uploads/2025/02/IMG_3336-1152x1536.jpeg 1152w, https://janpedia.de/wp-content/uploads/2025/02/IMG_3336-1536x2048.jpeg 1536w, https://janpedia.de/wp-content/uploads/2025/02/IMG_3336-450x600.jpeg 450w, https://janpedia.de/wp-content/uploads/2025/02/IMG_3336-scaled.jpeg 1920w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a></figure>
</div>


<p>I bought a used iPad at ebay &#8211; a device in good condition for little money, delivered super fast, condition as described. Unfortunately, I was confronted with a previously unknown message when setting it up: The device is &#8220;remotely managed&#8221;, apparently by the previous owner&#8217;s school. I wrote to him directly and he promised to contact the school admin. <br>As of &#8220;now&#8221;, nothing has happened in this regard and instead of waiting, I was curious whether the problem could be solved myself&#8230;</p>



<h2 class="wp-block-heading">TL;DR</h2>



<p>I managed to remove the profile, but the iPad is still not 100% &#8220;free&#8221;. After a reset, the profile is there again. At least you can get rid of the restrictions of the MDM profile for the time being.<br>And yes &#8211; there is software on the net that promises exactly that &#8211; but it costs money and doesn&#8217;t seem particularly trustworthy &#8211; who knows what else it might do to the device. My solution requires a little patience and IT know-how (Linux!) but no third-party software. You may also need a cloud server &#8211; but only for a short time, the costs are in the cent range.</p>



<h2 class="wp-block-heading">Research</h2>



<p>First of all, I had to get an overview of what remote management actually is and how it works. Roughly summarized, remote management is often used by schools and companies to be able to control the devices centrally. Management is then combined with a so-called &#8220;Mobile Device Management&#8221; (MDM) profile. This profile is installed on the device after the initial setup and ensures that the administrator is granted certain rights to the device remotely.</p>



<p>The registration of the device as a &#8220;supervised&#8221; or &#8220;remotely managed&#8221; device is part of Apple&#8217;s responsibility (Apple School Manager) and the MDM profile can be delivered by a third-party provider (in this case jamfcloud.com was used).</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://janpedia.de/wp-content/uploads/2025/02/IMG_0002-2.png"><img loading="lazy" decoding="async" width="1024" height="768" data-id="580" src="https://janpedia.de/wp-content/uploads/2025/02/IMG_0002-2-1024x768.png" alt="The installed MDM profile" class="wp-image-580" title="The installed MDM profile" srcset="https://janpedia.de/wp-content/uploads/2025/02/IMG_0002-2-1024x768.png 1024w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0002-2-300x225.png 300w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0002-2-768x576.png 768w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0002-2-1536x1152.png 1536w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0002-2-2048x1536.png 2048w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0002-2-720x540.png 720w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://janpedia.de/wp-content/uploads/2025/02/IMG_0008.png"><img loading="lazy" decoding="async" width="1024" height="768" data-id="581" src="https://janpedia.de/wp-content/uploads/2025/02/IMG_0008-1024x768.png" alt="An overview of the granted permissions" class="wp-image-581" title="An overview of the granted permissions" srcset="https://janpedia.de/wp-content/uploads/2025/02/IMG_0008-1024x768.png 1024w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0008-300x225.png 300w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0008-768x576.png 768w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0008-1536x1152.png 1536w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0008-2048x1536.png 2048w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0008-720x540.png 720w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</figure>



<p>Since the MDM stuff can be provided by third parties, there is also a documentation of the protocol from Apple; here I found an <a href="https://developer.apple.com/documentation/devicemanagement/managing-mdm-connections" target="_blank" rel="noreferrer noopener">interesting piece of information</a>: &#8220;If the server no longer manages a device, it should simply respond to all requests with your 401 HTTP code. In this case, the MDM profile would be automatically removed&#8221;. I thought to myself, I could start here <img alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" consent-required="129" consent-by="services" consent-id="132"/></p>



<h2 class="wp-block-heading">Tools</h2>



<h3 class="wp-block-heading">Configurable DNS server</h3>



<p>We need to intercept the HTTP request from the MDM &#8220;check-in&#8221; and redirect it to our own server. This is done via DNS &#8211; the iPad requests the known check-in URL and ends up &#8211; without realizing it &#8211; on our server. I use <a href="https://nextdns.io" target="_blank" rel="noreferrer noopener">nextdns.io</a> for this &#8211; I have also stored this as the central DNS on the FritzBox so that all traffic from the house network runs through it. It&#8217;s very easy to set up and the service is free up to a certain number of requests.</p>



<h3 class="wp-block-heading">Server</h3>



<p>We need a web server that accepts the check-in request and responds with a 401 HTTP code. Depending on the network configuration, this could also be a Linux server running in the local network (it only needs to be accessible from the iPad). I quickly clicked together a cloud server with Ubuntu from <a href="https://brise.windcores.cloud/Access" target="_blank" rel="noreferrer noopener">my trusted cloud provider </a>and started it. The server only needs to run for a few hours at most and can then be deleted again.</p>



<h2 class="wp-block-heading">Work steps</h2>



<p>First of all, the iPad must be set up so that we have the home screen in front of us. The device must therefore first be registered with the remote administration and the MDM profile installed.<br>There should also be a way to send files to the iPad (e.g. Airdrop, or a service such as <a href="https://www.swisstransfer.com" target="_blank" rel="noreferrer noopener">https://www.swisstransfer.com)</a>.</p>



<h3 class="wp-block-heading">Create your own CA and SSL certificate</h3>



<p>Of course, the original check-in server responds via HTTPS, so we also need an SSL certificate. It must be a self-signed one, because real certification authorities such as Let&#8217;s Encrypt naturally do not issue one for a domain that does not belong to us.<br>However, a self-signed certificate has the disadvantage that the iPad will not trust it. So we also need our own &#8220;Certificate Authority&#8221; (CA) which we install on the iPad so that it trusts our certificate after all.</p>



<p>I got the individual commands from <a href="https://arminreiter.com/2022/01/create-your-own-certificate-authority-ca-using-openssl/" target="_blank" rel="noreferrer noopener">arminreiter.com</a> and <a href="https://www.brainbytez.nl/tutorials/linux-tutorials/create-a-self-signed-wildcard-ssl-certificate-openssl/" target="_blank" rel="noreferrer noopener">www.brainbytez.nl</a> here is the quick sequence:</p>



<p><strong>Create CA:</strong><br>In the first block, the CA is created which is subsequently installed on the iPad and with which the certificate is signed. It is important to enter a password of your choice when creating the private key.</p>



<pre title="Steps for creating CA" class="wp-block-code"><code lang="bash" class="language-bash"># define a name for the CA
CANAME=MyOrg-RootCA

# optional
mkdir $CANAME
cd $CANAME
# generate aes encrypted private key
openssl genrsa -aes256 -out $CANAME.key 4096

# create certificate, 1826 days = 5 years
openssl req -x509 -new -nodes -key $CANAME.key -sha256 -days 1826 -out $CANAME.crt -subj '/CN=MyOrg Root CA/C=US/ST=Denver/O=MyOrg'</code></pre>



<p><strong>Create server certificate:</strong><br>We create a &#8220;wildcard&#8221; certificate so that it is valid for all subdomains of the MDM administrator&#8217;s domain. The only important thing here is that you enter the correct domain for you in <code>MYDOMAIN</code>. You can find this in the MDM profile on the iPad under &#8220;Settings -&gt; General -&gt; VPN and device management -&gt; (name of the profile) -&gt; Enrollment&#8221;. The URL is under there &#8211; we only need the domain name.</p>



<pre title="Steps for creating certificate" class="wp-block-code"><code lang="bash" class="language-bash"># define variables
MYCERT=webserver
MYDOMAIN=*.jamfcloud.com
# create the certificate signing request
openssl req -new -nodes -out $MYCERT.csr -newkey rsa:4096 -keyout $MYCERT.key -subj "/CN=$MYDOMAIN/C=US/ST=Denver/O=MyOrg"
# create a v3 ext file for SAN properties
cat &gt; $MYCERT.v3.ext &lt;&lt; EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage=serverAuth
subjectAltName = DNS:$MYDOMAIN
EOF
# sign the certificate with the CA
openssl x509 -req -in $MYCERT.csr -CA $CANAME.crt -CAkey $CANAME.key -CAcreateserial -out $MYCERT.crt -days 730 -sha256 -extfile $MYCERT.v3.ext
# concatenate certificate and ca
cat $MYCERT.crt $CANAME.crt &gt; $MYCERT.pem</code></pre>



<p>You should now have various files in the folder. Among others a file &#8220;MyOrg-RootCA.crt&#8221; and a file &#8220;webserver.pem&#8221;</p>



<h3 class="wp-block-heading">Install CA on the iPad</h3>



<p>In order for the iPad to trust our self-signed certificate, we need to install our own CA on the iPad. To do this, the CA file (&#8220;MyOrg-RootCA.crt&#8221;) from the previous step must now be transferred to the iPad. The most convenient way to do this in a Mac world is via AirDrop.<br>After transferring the file, the profile is usually installed directly (or you have to open the file again via the &#8220;Files&#8221; app).<br>You then go to the settings, where you will now see something about a <strong>profile</strong> that has just been installed prominently on the left-hand side. Tap on it and always tap on<strong>&#8220;Install</strong>&#8220;, which is written in trustworthy red.<br>Now you have to trust the <a href="https://support.apple.com/en-us/102390" target="_blank" rel="noreferrer noopener">certificate as SSL Root CA</a>. To do this, go to &#8220;Settings -&gt; General -&gt; Info -&gt; (scroll all the way down) -&gt; Certificate trust settings&#8221; and activate your root CA there.</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://janpedia.de/wp-content/uploads/2025/02/IMG_0003.png"><img loading="lazy" decoding="async" width="1024" height="768" data-id="591" src="https://janpedia.de/wp-content/uploads/2025/02/IMG_0003-1024x768.png" alt="Dialog to install the root CA" class="wp-image-591" title="Dialog to install the root CA" srcset="https://janpedia.de/wp-content/uploads/2025/02/IMG_0003-1024x768.png 1024w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0003-300x225.png 300w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0003-768x576.png 768w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0003-1536x1152.png 1536w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0003-2048x1536.png 2048w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0003-720x540.png 720w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://janpedia.de/wp-content/uploads/2025/02/IMG_0004.png"><img loading="lazy" decoding="async" width="1024" height="768" data-id="589" src="https://janpedia.de/wp-content/uploads/2025/02/IMG_0004-1024x768.png" alt="Installed CA profile" class="wp-image-589" title="Installed CA profile" srcset="https://janpedia.de/wp-content/uploads/2025/02/IMG_0004-1024x768.png 1024w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0004-300x225.png 300w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0004-768x576.png 768w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0004-1536x1152.png 1536w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0004-2048x1536.png 2048w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0004-720x540.png 720w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://janpedia.de/wp-content/uploads/2025/02/IMG_0005.png"><img loading="lazy" decoding="async" width="1024" height="768" data-id="590" src="https://janpedia.de/wp-content/uploads/2025/02/IMG_0005-1024x768.png" alt="Trust the profile as root CA" class="wp-image-590" title="Trust the profile as root CA" srcset="https://janpedia.de/wp-content/uploads/2025/02/IMG_0005-1024x768.png 1024w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0005-300x225.png 300w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0005-768x576.png 768w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0005-1536x1152.png 1536w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0005-2048x1536.png 2048w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0005-720x540.png 720w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</figure>



<h3 class="wp-block-heading">Install server</h3>



<p>First, we install an Nginx web server (or any other) on our server. On Debian/Ubuntu this can be done with <code>apt-get update &amp;&amp; apt install nginx</code></p>



<p>We can now simply edit the Nginx standard installation under <code>/etc/nginx/sites-enabled/default</code>. In my case it looks like this:</p>



<pre title="/etc/nginx/sites-enabled/default" class="wp-block-code"><code lang="nginx" class="language-nginx">server {
        listen 80 default_server;
        listen [::]:80 default_server;

        # SSL configuration
        listen 443 ssl default_server;
        listen [::]:443 ssl default_server;

        include snippets/snakeoil.conf;

        root /var/www/html;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
                # just always return a 401
                return 401;
        }
}</code></pre>



<p>As you can see, I have also activated SSL on port 443. In addition, the server simply responds to everything with a 401 HTTP code.</p>



<p>Now you have to copy the SSL certificate created in the previous step to the server. Namely the files &#8220;webserver.pem&#8221; and &#8220;webserver.key&#8221;. </p>



<p>We now need to edit the file <code>/etc/nginx/snippets/snakeoil.conf</code> and add our SSL certificate and key there. This could look like this, for example, if the files were copied to <code>/root/cert/</code>:</p>



<pre title="/etc/nginx/snippets/snakeoil.conf" class="wp-block-code"><code lang="nginx" class="language-nginx">ssl_certificate /root/cert/webserver.pem;
ssl_certificate_key /root/cert/webserver.key;</code></pre>



<p>With the command <code>nginx -t</code> we now test whether everything is correct, if everything is OK there we load the new web server configuration with <code>systemctl reload nginx</code></p>



<h3 class="wp-block-heading">Redirect DNS</h3>



<p>Now we redirect all requests to the check-in domain (e.g. <code>jamfcloud.com</code>) to the public IP of our server. With NextDNS this can be done via &#8220;Settings -&gt; Rewrites&#8221;</p>



<figure class="wp-block-image size-large"><a href="https://janpedia.de/wp-content/uploads/2025/02/Bildschirmfoto-2025-02-27-um-18.27.04.png"><img loading="lazy" decoding="async" width="1024" height="266" src="https://janpedia.de/wp-content/uploads/2025/02/Bildschirmfoto-2025-02-27-um-18.27.04-1024x266.png" alt="NextDNS configuration" class="wp-image-582" title="NextDNS configuration" srcset="https://janpedia.de/wp-content/uploads/2025/02/Bildschirmfoto-2025-02-27-um-18.27.04-1024x266.png 1024w, https://janpedia.de/wp-content/uploads/2025/02/Bildschirmfoto-2025-02-27-um-18.27.04-300x78.png 300w, https://janpedia.de/wp-content/uploads/2025/02/Bildschirmfoto-2025-02-27-um-18.27.04-768x200.png 768w, https://janpedia.de/wp-content/uploads/2025/02/Bildschirmfoto-2025-02-27-um-18.27.04-1536x399.png 1536w, https://janpedia.de/wp-content/uploads/2025/02/Bildschirmfoto-2025-02-27-um-18.27.04-2048x533.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<h3 class="wp-block-heading">Test</h3>


<div class="wp-block-image">
<figure class="alignleft size-large is-resized"><a href="https://janpedia.de/wp-content/uploads/2025/02/IMG_0006.png"><img loading="lazy" decoding="async" width="1024" height="768" src="https://janpedia.de/wp-content/uploads/2025/02/IMG_0006-1024x768.png" alt="Test im Browser" class="wp-image-584" style="width:152px;height:auto" title="Test im Browser" srcset="https://janpedia.de/wp-content/uploads/2025/02/IMG_0006-1024x768.png 1024w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0006-300x225.png 300w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0006-768x576.png 768w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0006-1536x1152.png 1536w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0006-2048x1536.png 2048w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0006-720x540.png 720w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<p>If you now call up the (https!!!) check-in URL with the web browser on the iPad, an NginX standard error page should appear there and no certificate errors &#8211; but a trustworthy closed padlock next to the URL.</p>



<h3 class="wp-block-heading">Observe</h3>



<p>You can now watch the NginX access log live to see when your iPad calls the check-in URL <code>tail -f /var/log/nginx/access.log</code><br>In my case, the URL (which can only be reached from my network via the IP) was called surprisingly often by various bots that check for open security holes. But the MDM request can be easily recognized by the &#8220;MDM&#8221; string.</p>



<h3 class="wp-block-heading">Waiting</h3>



<p>In my case, I waited a few hours &#8211; at some point, the long-awaited check-in request arrived. After taking a look at the iPad under &#8220;Settings -&gt; General -&gt; VPN and device management&#8221;, the profile was gone <img alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" consent-required="129" consent-by="services" consent-id="132"/><br>However, there also seems to be a quicker way to provoke the MDM check-in request by briefly switching to <strong>flight mode</strong> and back again.</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://janpedia.de/wp-content/uploads/2025/02/Bildschirmfoto-2025-02-27-um-15.58.28-1.png"><img loading="lazy" decoding="async" width="1024" height="652" data-id="601" src="https://janpedia.de/wp-content/uploads/2025/02/Bildschirmfoto-2025-02-27-um-15.58.28-1-1024x652.png" alt="" class="wp-image-601" title="Das Nginx Access Log mit dem lang ersehnten MDM request der mit 401 beantwortet wird" srcset="https://janpedia.de/wp-content/uploads/2025/02/Bildschirmfoto-2025-02-27-um-15.58.28-1-1024x652.png 1024w, https://janpedia.de/wp-content/uploads/2025/02/Bildschirmfoto-2025-02-27-um-15.58.28-1-300x191.png 300w, https://janpedia.de/wp-content/uploads/2025/02/Bildschirmfoto-2025-02-27-um-15.58.28-1-768x489.png 768w, https://janpedia.de/wp-content/uploads/2025/02/Bildschirmfoto-2025-02-27-um-15.58.28-1-1536x977.png 1536w, https://janpedia.de/wp-content/uploads/2025/02/Bildschirmfoto-2025-02-27-um-15.58.28-1-2048x1303.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://janpedia.de/wp-content/uploads/2025/02/IMG_0009-1.png"><img loading="lazy" decoding="async" width="1024" height="768" data-id="604" src="https://janpedia.de/wp-content/uploads/2025/02/IMG_0009-1-1024x768.png" alt="" class="wp-image-604" title="Das Profil ist weg, aber das Gerät ist noch immer Fernverwaltet" srcset="https://janpedia.de/wp-content/uploads/2025/02/IMG_0009-1-1024x768.png 1024w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0009-1-300x225.png 300w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0009-1-768x576.png 768w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0009-1-1536x1152.png 1536w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0009-1-2048x1536.png 2048w, https://janpedia.de/wp-content/uploads/2025/02/IMG_0009-1-720x540.png 720w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</figure>



<h2 class="wp-block-heading">Conclusion</h2>



<p>A rather complicated method, but at least you don&#8217;t have to install any strange software. You couldn&#8217;t sell the iPad this way either, and the steps have to be repeated after every factory reset.<br>So the solution is more of a stopgap. In my case, I hope that the school admin will soon release the iPad properly. Otherwise, the iPad is still &#8220;remotely managed&#8221; but the administrator no longer has any authorizations.</p>
<p>Der Beitrag <a href="https://janpedia.de/en/2025/02/28/remove-mdm-profile-from-ios-device/">Remove MDM profile from iOS device &#8211; without App, iOS/iPadOS 18+</a> erschien zuerst auf <a href="https://janpedia.de/en">Janpedia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://janpedia.de/en/2025/02/28/remove-mdm-profile-from-ios-device/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Create a backup of Apple Reminders and Notes</title>
		<link>https://janpedia.de/en/2024/09/17/create-a-backup-of-apple-reminders-and-notes/</link>
					<comments>https://janpedia.de/en/2024/09/17/create-a-backup-of-apple-reminders-and-notes/#comments</comments>
		
		<dc:creator><![CDATA[Jan]]></dc:creator>
		<pubDate>Tue, 17 Sep 2024 08:28:50 +0000</pubDate>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[notes]]></category>
		<category><![CDATA[shortcut]]></category>
		<guid isPermaLink="false">https://janpedia.de/?p=411</guid>

					<description><![CDATA[<p>If, like me, you&#8217;ve outsourced half your brain to Apple&#8217;s “Reminders” and “Notes” apps, you</p>
<p>Der Beitrag <a href="https://janpedia.de/en/2024/09/17/create-a-backup-of-apple-reminders-and-notes/">Create a backup of Apple Reminders and Notes</a> erschien zuerst auf <a href="https://janpedia.de/en">Janpedia</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>If, like me, you&#8217;ve outsourced half your brain to Apple&#8217;s “Reminders” and “Notes” apps, you may have already thought that this data is very valuable and important and that an accident &#8211; be it a human error or a force of nature &#8211; could happen to Apple. In the worst case scenario, the data would be gone &#8211; and then what?</p>



<p>Unfortunately, neither app offers an export or backup function, just like the iCloud itself. The “<a href="https://privacy.apple.com/" target="_blank" rel="noreferrer noopener">Request a copy of my data</a>” function does exist, but it is not really suitable for a regular backup &#8211; after all, it takes 4 to 5 working days before the requested data can be downloaded. In my own experience, the downloaded data does not always contain the current memories (not even those at the time of the request).</p>



<p>Fortunately, there is my beloved “Shortcuts” program from Apple. It can also retrieve data from the “Reminders” and “Notes” apps. So I set about writing a backup script with it.</p>



<h2 class="wp-block-heading">Backup Shortcut for Reminders</h2>



<p>The shortcut has become quite long. You can<a href="https://www.icloud.com/shortcuts/f79f09bed78347f0a378560ecd0e4f05" target="_blank" rel="noreferrer noopener"> download and install it here</a>. It works without external services or programs and runs purely locally. I have also included comments so that you can see and understand the structure.<br>The core is to use a little trick to get the reminder search function to search for ALL reminders and output them. Each reminder is then transferred to a so-called dictionary with which you can continue to work flexibly.</p>



<p>The result of the short command is a JSON file which contains ALL reminders (including the completed ones). It also contains all images that are attached to any reminder. Here you could limit the amount of data if necessary by changing the filter in the first step Search reminders and, for example, outputting “only unfinished”. The images are assigned to the individual reminders via the file name, which is also stored in the JSON file.</p>



<h3 class="wp-block-heading">What will get exported and what not?</h3>



<p>Fortunately, most of the information from the reminders can be exported, but unfortunately a few are not supported by the “Shortcuts” app:</p>



<p><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Title<br><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Notes<br><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Priority<br><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Due date / time<br><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/>Reminder location<br><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> End date<br><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/>URL<br><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Images<br><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Subtasks<br><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> List name<br><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Is flagged<br><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Is completed<br><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Has alarm clock<br><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Tags<br><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/>Creation date<br><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Date of last change</p>



<p><img alt="⛔" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/26d4.png" consent-required="129" consent-by="services" consent-id="132"/> Repetition<br><img alt="⛔" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/26d4.png" consent-required="129" consent-by="services" consent-id="132"/> Reminders when chatting with certain people (here the script simply hangs on <img alt="🤷🏻‍♂️" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/1f937-1f3fb-200d-2642-fe0f.png" consent-required="129" consent-by="services" consent-id="132"/>)<br><img alt="⛔" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/26d4.png" consent-required="129" consent-by="services" consent-id="132"/> Summary of the lists in folders</p>



<h2 class="wp-block-heading">Backup Shortcut for Notes</h2>



<p>The <a href="https://www.icloud.com/shortcuts/99c48fe78c104c55b6834e85cbb10eec" target="_blank" rel="noreferrer noopener">backup script for Apple&#8217;s “Notes”</a> app also works without external services or programs and runs purely locally. I have also included comments so that you can see and understand the structure. The script is much shorter than for the reminders, which is unfortunately simply because there are fewer options available via the “Shortcuts” app.<br>The core is again to use the search notes function with a little trick to search for ALL notes and output them. Each note is then transferred to a so-called dictionary with which you can continue to work flexibly.</p>



<p>The result of the script is a JSON file which contains ALL notes.</p>



<h3 class="wp-block-heading">What will get exported and what not?</h3>



<p>Unfortunately, the notes are not quite as green as the reminders; some data is not available via the “Shortcuts” app:</p>



<p><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Name (title)<br><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Summary<br><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Text<br><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Checklists<br><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Folder name<br><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Tags<br><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Creation date<br><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Date of last change</p>



<p><img alt="⛔" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/26d4.png" consent-required="129" consent-by="services" consent-id="132"/>Anhänge / images<br><img alt="⛔" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/26d4.png" consent-required="129" consent-by="services" consent-id="132"/> Folder structure<br><img alt="⛔" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/26d4.png" consent-required="129" consent-by="services" consent-id="132"/> Text formatting (bold, italics, etc.)<br><img alt="⛔" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/26d4.png" consent-required="129" consent-by="services" consent-id="132"/> Encrypted notes</p>



<h2 class="wp-block-heading">When and how to run?</h2>



<p>My original plan was to run the shortcut on the Mac regularly. However, the “Shortcuts” app on the Mac still does not support automation. There are various ways to run a shortcut regularly on the Mac. On the one hand, you can start it via a cronjob &#8211; but here I had the problem that the shortcut asked for authorization to export the data each time it was executed. On the other hand, you can also solve this via the “Automator” app &#8211; but this solution, where you create an Automator script and <a href="https://medium.com/@richardmoult75/how-to-schedule-macos-shortcuts-96774f6972ac" target="_blank" rel="noreferrer noopener">execute it via a recurring calendar entry and user-defined reminder</a> at certain times, seemed too ugly to me.</p>



<p>However, a great feature of the shortcuts is that most of them also run on other devices without any problems &#8211; they are even available there directly. So I now run the two backup shortcuts on my iPhone. In addition to fixed times, many other events are available as triggers via the “Automation” tab. I have decided to run the backups as soon as the iPhone is connected to a charger. This happens once a day (unfortunately that&#8217;s the way it is with the iPhone) and you don&#8217;t use up any battery life and are almost certainly near a WLAN.</p>


<div class="wp-block-image">
<figure class="alignright size-large"><img decoding="async" src="https://janpedia.de/wp-content/uploads/2024/09/IMG_2446-1-473x1024.png" alt="" class="wp-image-412"/><figcaption class="wp-element-caption">Run backup on an event</figcaption></figure>
</div>


<h3 class="wp-block-heading">Storage Location</h3>



<p>When you execute the backup shortcut on the iPhone, you have the choice of saving the backup on your iPhone itself or on your iCloud Drive. Theoretically, there are also various third-party cloud services available that integrate into the “Files” app (e.g. Web.de Online Storage, Infomaniak KDrive, Synology Drive…) &#8211; unfortunately, none of them can be selected as a destination and I don&#8217;t know why (maybe you have an idea? Then please let me know in the comments!).<br>It would certainly make sense &#8211; assuming that Apple actually falls victim to a disaster &#8211; to store the backups OUTSIDE the iCloud and the iPhone. Of the two options available, however, the iPhone itself would probably be the best choice for backup storage &#8211; even if the iCloud is down, you should still be able to access your backups this way.<br>In my case, however, I opted for the iCloud Drive, but only because this in turn is regularly backed up via my Mac (but that&#8217;s another story).</p>



<h3 class="wp-block-heading">Note on permission issues</h3>



<p>If a shortcut wants to “share” many reminders / notes, this is initially blocked, which I think is a very sensible protective measure. If your backup only consists of a few objects, you will be asked the first time you run the shortcut whether you want to allow this “sharing” and can allow it on the spot (forever).<br>However, if there are really many objects (in my case over 400), the shortcut is stopped with an error message, e.g. “<strong>This action is trying to share 445 reminder objects. This is not allowed</strong>”. You must first allow the sharing of large amounts of data in the <strong>settings</strong> of the “Shortcuts” app.<br>On the Mac, this can be done via the menu bar “Shortcuts” -&gt; “Settings” -&gt; “Advanced” -&gt; “<strong>Allow sharing of large amounts of data</strong>”.<br>On the iPhone / iPad, go to “System settings”, search for “Shortcuts” -&gt; “Advanced” and select “<strong>Allow sharing of large amounts of data”</strong>.</p>



<div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-ad2f72ca wp-block-group-is-layout-flex">
<figure class="wp-block-image size-full"><img decoding="async" src="https://janpedia.de/wp-content/uploads/2024/09/Bildschirmfoto-2024-09-17-um-07.40.43-1.png" alt="" class="wp-image-413"/><figcaption class="wp-element-caption">Allow sharing large amout of data on mac</figcaption></figure>



<figure class="wp-block-image size-large"><img decoding="async" src="https://janpedia.de/wp-content/uploads/2024/09/IMG_2440-1-473x1024.png" alt="" class="wp-image-414"/><figcaption class="wp-element-caption">Allow sharing large amount of data on iOS</figcaption></figure>
</div>



<h2 class="wp-block-heading">The data format</h2>



<p>The resulting JSON data format of both backup scripts is a format defined by me. There is no way to import this data back into any app. But the main thing is that the data is stored <strong>somehow</strong> and <strong>somewhere</strong> other than in the iCloud. If Apple has a super disaster, I&#8217;ll know about it and write an import script.</p>



<p>Further explanations of the format are probably superfluous here as the fields in the JSON file are self-explanatory. Editors such as “<a href="https://code.visualstudio.com/" target="_blank" rel="noreferrer noopener">Visual Studio Code</a>” or “<a href="https://jsonviewer.app/" target="_blank" rel="noreferrer noopener">JSON Viewer</a>” can be used to view the JSON file clearly. There are also many browser tools that display JSON clearly, but you should consider whether you want to upload your backup somewhere.</p>



<h2 class="wp-block-heading">Conclusion</h2>



<p>While Apple apps often initially seem very restrictive and limited in their choice of functions, a lot of additional functionality can also be achieved in this case by integrating them into the “Shortcuts” app.<br>Thanks for reading and feel free to leave feedback or questions in the comments!</p>



<h2 class="wp-block-heading">UPDATE April 2025</h2>



<p>When backing up both notes and reminders, I seem to have reached a critical amount of data in the last few weeks, causing the shortcuts to be canceled with an error message “… Error during execution”. Unfortunately, there was no information about which step exactly failed. I suspect the dictionary itself became too large.<br>I fixed this by limiting the amount of data:</p>



<ul class="wp-block-list">
<li>For notes: added the condition “Last change is within the last 6 months” in the 3rd step</li>



<li>For the reminders: Added the condition “Is not done” in the 2nd step</li>
</ul>



<p>Everyone has to decide for themselves which values make sense for them. However, this should permanently limit the amount of data. However, if you still want to have all the data, you must never delete the older JSON files after these changes.</p>



<p>Translated with DeepL.com </p>
<p>Der Beitrag <a href="https://janpedia.de/en/2024/09/17/create-a-backup-of-apple-reminders-and-notes/">Create a backup of Apple Reminders and Notes</a> erschien zuerst auf <a href="https://janpedia.de/en">Janpedia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://janpedia.de/en/2024/09/17/create-a-backup-of-apple-reminders-and-notes/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Quick input for Apple Reminders</title>
		<link>https://janpedia.de/en/2024/08/29/quick-input-for-apple-reminders/</link>
					<comments>https://janpedia.de/en/2024/08/29/quick-input-for-apple-reminders/#respond</comments>
		
		<dc:creator><![CDATA[Jan]]></dc:creator>
		<pubDate>Thu, 29 Aug 2024 13:46:46 +0000</pubDate>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[natural-language]]></category>
		<category><![CDATA[shortcut]]></category>
		<guid isPermaLink="false">https://janpedia.de/?p=387</guid>

					<description><![CDATA[<p>I recently switched from the Todoist app to Apple “Reminders” (see article). However, I sorely</p>
<p>Der Beitrag <a href="https://janpedia.de/en/2024/08/29/quick-input-for-apple-reminders/">Quick input for Apple Reminders</a> erschien zuerst auf <a href="https://janpedia.de/en">Janpedia</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>I recently switched from the Todoist app to Apple “Reminders” (<a href="https://janpedia.de/en/software-en/import-todos-in-apple-reminders-app/">see article</a>). However, I sorely missed the quick and easy way to enter new to-dos using keyboard shortcuts, as was the case with <a href="https://todoist.com" target="_blank" rel="noreferrer noopener">Todoist</a>. Here you could enter a new todo with due date, priority and the list in which it should be created from any application using a keyboard shortcut.</p>



<p>Example: The input <code>#mylist tomorrow 10:00 doctor's appointment p1</code> created a task in the list “mylist” with the text “doctor&#8217;s appointment” with priority 1 and due the next day at 10:00 am.</p>



<p>The “Reminders” app can also do this, but it only works conveniently halfway via iOS where corresponding suggestions for the date and list are displayed from the input within the “Reminders” app. But then you also have to tap on it.</p>



<p>In my last <a href="https://janpedia.de/en/software-en/import-todos-in-apple-reminders-app/">article</a>, I had already had experience with the “Shortcuts” app on the Mac/iOS and thought to myself that something similar to Todoist could certainly be achieved with it. And yes: It works &#8211; but with a small web service that I programmed in Javascript (Nodejs), because I couldn&#8217;t manage to recognize the date etc. from the input with the shortcut app.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="2314" height="1782" src="https://janpedia.de/wp-content/uploads/2024/08/shortcut-1.gif" alt="" class="wp-image-388"/><figcaption class="wp-element-caption">Shortcut in action. Will be activated by keyboard shortcut Control + Command + E</figcaption></figure>



<h2 class="wp-block-heading">Installation</h2>



<p>You are also welcome to use my shortcut. You can <a href="https://www.icloud.com/shortcuts/b886cabf590341058077c64db7a6de58" target="_blank" rel="noreferrer noopener">download it here</a>.<br>After the installation you will be asked for the “<strong>Service URL</strong>” (here you can either leave the default value or &#8211; if you want to host the script yourself (see below) enter a different URL). You will also be asked for the <strong>language</strong> with which the time should be processed (if you enter <em>de</em>, entries such as “tomorrow 9:00” will work, if you leave it at <em>en</em>, “tomorrow 9:00” will work.</p>



<h3 class="wp-block-heading">Key combination or homescreen</h3>



<p>You can simply link the shortcut to the home screen on your iOS device to create a new reminder with one tap. On the Mac you can set up a <strong>key combination</strong> (I use <em>Control + Command + E</em>).<br>I don&#8217;t know if the key combination is taken over, if not you can set up the key combination in the “Shortcuts” app:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="668" src="https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-29-um-14.28.59-1-1024x668.png" alt="" class="wp-image-389" srcset="https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-29-um-14.28.59-1-1024x668.png 1024w, https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-29-um-14.28.59-1-300x196.png 300w, https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-29-um-14.28.59-1-768x501.png 768w, https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-29-um-14.28.59-1-1536x1002.png 1536w, https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-29-um-14.28.59-1-2048x1336.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Configure the key shortcut in the &#8220;Shortcuts&#8221; app</figcaption></figure>



<h3 class="wp-block-heading">Privacy</h3>



<p>Please note that <strong>a web service hosted by me</strong> is used in the short command! This is called via the URL <code>https://reminder.jan8.de</code>. The script only receives the text you enter in the shortcut, processes it and then outputs the list, date, priority and text as a dictionary (JSON). I do not save the entries, but they could possibly be saved in server log files for some time.<br>If you enter sensitive data in your reminders, you can easily host the script yourself, e.g. locally with nodeJS. The script itself is open source and available on Github: <a href="https://github.com/JanST123/reminder_shortcut" target="_blank" rel="noreferrer noopener">https://github.com/JanST123/reminder_shortcut</a></p>



<h2 class="wp-block-heading">Conclusion</h2>



<p>The “Shortcuts” app is super cool and allows you to customize the supported apps according to your personal needs. If the “Reminders” app doesn&#8217;t actually allow you to create an appointment from each app using a keyboard shortcut, you can simply click it together yourself using a shortcut.<br>With a little programming knowledge, you can get a lot more out of it. So I was able to recreate my most missed Todoist function here myself. It works perfectly!</p>



<p>Translated with DeepL.com (free version)</p>
<p>Der Beitrag <a href="https://janpedia.de/en/2024/08/29/quick-input-for-apple-reminders/">Quick input for Apple Reminders</a> erschien zuerst auf <a href="https://janpedia.de/en">Janpedia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://janpedia.de/en/2024/08/29/quick-input-for-apple-reminders/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Import Todos in Apple &#8220;Reminders&#8221; App</title>
		<link>https://janpedia.de/en/2024/08/28/import-todos-in-apple-reminders-app/</link>
					<comments>https://janpedia.de/en/2024/08/28/import-todos-in-apple-reminders-app/#comments</comments>
		
		<dc:creator><![CDATA[Jan]]></dc:creator>
		<pubDate>Wed, 28 Aug 2024 12:35:32 +0000</pubDate>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[convert]]></category>
		<category><![CDATA[import]]></category>
		<guid isPermaLink="false">https://janpedia.de/?p=366</guid>

					<description><![CDATA[<p>I&#8217;m currently in the process of switching to Apple&#8217;s own productivity apps for as many</p>
<p>Der Beitrag <a href="https://janpedia.de/en/2024/08/28/import-todos-in-apple-reminders-app/">Import Todos in Apple &#8220;Reminders&#8221; App</a> erschien zuerst auf <a href="https://janpedia.de/en">Janpedia</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>I&#8217;m currently in the process of switching to Apple&#8217;s own productivity apps for as many tasks as possible.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>TL;DR If you just want to know how to import the data into the “Reminders” app and don&#8217;t want to know anything about the app itself, go directly to <a href="#datatransfer">data transfer</a></p>
</blockquote>



<p><strong>Why?</strong> Because these apps are usually very easy to use and well thought out. In addition, they are synchronized across all my Apple devices without any problems and the use of the apps and the iCloud for synchronization is free or included in the price of iCloud packages.</p>



<p>If I am annoyingly away from one of my Apple devices, I can also use all these services on any other device in the browser via icloud.com. I can also regularly download all my iCloud data via the iCloud function “<a href="https://privacy.apple.com/account" target="_blank" rel="noreferrer noopener">Request a copy of my data</a>” and back it up to another location.</p>



<h2 class="wp-block-heading">Todoist vs. Notes vs. Reminders</h2>



<p>So at the moment I&#8217;m looking at my to-do lists. I currently use the <a href="https://todoist.com" target="_blank" rel="noreferrer noopener">Todoist</a> app for this. I actually love this app and have been using it for years. It has a very nice, easy-to-use interface and offers lots of practical functions.<br><strong>However</strong>, it costs me €5 a month and recently there have been a few bugs, synchronization doesn&#8217;t work or the app on my Mac reacts very slowly or hangs. I&#8217;ve also always found it annoying that Todoist uses Amazon&#8217;s AWS cloud to store data &#8211; and I just don&#8217;t like Amazon.</p>



<p>So the Todoist app will be my next “victim” from which I move my data to an Apple app.</p>



<p>Apple actually gives you two options for todo lists: You can either use the “<strong>Notes</strong>” app, because there you can also conveniently add a checklist to a note and then also free text, pictures, drawings in parallel. The checklists in “Notes” can even be nested very deeply.<br>Or you can use the “<strong>Reminders</strong>” app. Contrary to what the name suggests, tasks can also be added here without a reminder.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Todoist</strong></td><td>Notes</td><td>Reminders</td></tr><tr><td><img alt="💸" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4b8.png" consent-required="129" consent-by="services" consent-id="132"/> free for up to 5 lists<br><sub>otherwise at leasr €4 per month (as per August 2024)</sub></td><td><img alt="🤩" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/1f929.png" consent-required="129" consent-by="services" consent-id="132"/> free<br><sub>Unless you need more than 5Gb iCloud storage</sub></td><td><img alt="🤩" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/1f929.png" consent-required="129" consent-by="services" consent-id="132"/> free<br><sub>Unless you need more than 5Gb iCloud storage</sub></td></tr><tr><td><img alt="🗣" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/1f5e3.png" consent-required="129" consent-by="services" consent-id="132"/> Recognizes natural language<br><sub>(Date, repetition, prio, list&#8230;)</sub></td><td><img alt="🤷" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/1f937.png" consent-required="129" consent-by="services" consent-id="132"/> Free text<br><sub>(no due date, prio, list existing)</sub></td><td><img alt="🫤" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/1fae4.png" consent-required="129" consent-by="services" consent-id="132"/>&nbsp; No recognition of natural language<br><sub>(except the date)</sub></td></tr><tr><td><img alt="🤩" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/1f929.png" consent-required="129" consent-by="services" consent-id="132"/> Quick input via keyboard shortcut on desktop</td><td><img alt="⛔" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/26d4.png" consent-required="129" consent-by="services" consent-id="132"/> No quick input</td><td><img alt="🫤" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/1fae4.png" consent-required="129" consent-by="services" consent-id="132"/> No quick input but can be built with the &#8220;Shortcuts&#8221; app</td></tr><tr><td><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Reminder of tasks at a point in time, optionally with repetition in natural language</td><td><img alt="🫤" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/1fae4.png" consent-required="129" consent-by="services" consent-id="132"/> No reminder</td><td><img alt="🤩" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/1f929.png" consent-required="129" consent-by="services" consent-id="132"/> Reminder of tasks at a point in time, with repetition and when entering/leaving a location or when writing with specific people (via &#8220;Messages&#8221; app)</td></tr><tr><td><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Intelligent lists <br><sub>(today, planned, custom)</sub></td><td><img alt="⛔" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/26d4.png" consent-required="129" consent-by="services" consent-id="132"/> No intelligent lists</td><td><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Intelligent lists <br><sub>(today, planned, custom)</sub></td></tr><tr><td><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Nesting tasks at any depth optional with repetition in natural language</td><td><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Nesting tasks at any depth </td><td><img alt="🫤" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/1fae4.png" consent-required="129" consent-by="services" consent-id="132"/> Nesting of tasks at only 1 level</td></tr><tr><td><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Any amount of lists, nested at any depth</td><td><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Any amount of notes, nested at any depth</td><td><img alt="🫤" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/1fae4.png" consent-required="129" consent-by="services" consent-id="132"/> Any amount of lists but only groupable on one level</td></tr><tr><td><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Daily backup, can be downloaded in CSV format, but only with pro/team subscription. Also the attachments are not included</td><td><img alt="🫤" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/1fae4.png" consent-required="129" consent-by="services" consent-id="132"/> Can be added to iCloud data export (each export takes about a week). Notes will be included as .txt files which will loose the formatting, tables and checklists. Attachment are also exported</td><td><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Custom solution with &#8220;shortcuts&#8221; app. (<a href="https://janpedia.de/en/software-en/create-a-backup-of-apple-reminders-and-notes/">Article</a>)</td></tr><tr><td><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Apps for Mac, Windows, Android, iOS, Webapp</td><td><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Native Apps for Mac and iOS. Webapp via icloud.com</td><td><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Native Apps for Mac and iOS. Webapp via icloud.com</td></tr></tbody></table><figcaption class="wp-element-caption">Feature comparison (incomplete)</figcaption></figure>


<div class="wp-block-image">
<figure class="alignleft size-large is-resized"><img loading="lazy" decoding="async" width="326" height="1024" src="https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-28-um-13.57.04-1-326x1024.png" alt="" class="wp-image-367" style="width:315px;height:auto" srcset="https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-28-um-13.57.04-1-326x1024.png 326w, https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-28-um-13.57.04-1.png 568w" sizes="auto, (max-width: 326px) 100vw, 326px" /><figcaption class="wp-element-caption">Lists in &#8220;Reminders&#8221; App</figcaption></figure>
</div>


<h2 class="wp-block-heading">The new one</h2>



<p>Before I decided to move my tasks, I took a close look at the “Reminders” app and spent some time with it. It&#8217;s not that different from Todoist, but it&#8217;s not the same. Some features are missing, some are added.</p>



<p>I was relieved to see that there are also the standard “Smart Lists” for Today and Planned to have an overview of the tasks that are due soon. Tags are also supported, so you can create your own “intelligent lists” that search for entries from all other lists based on date, tags, etc.</p>



<p>You can also group lists (but only one level deep). What&#8217;s great about “Reminders” is that you can assign an emoji as an icon and a color to each list. This makes it easier to keep track. You can also be reminded of a task not only at certain times, but also, for example, when you leave or enter a certain place &#8211; that&#8217;s cool!</p>



<p>What I will miss the most, however, is the function of the Todoist desktop app, which allowed you to add a new entry using the shortcut <code>Control + Command + A</code> and create a completely finished entry in any list with a reminder at any time and with priority by entering <code>#Listname</code> and a time of your choice, e.g. “tomorrow” or “in September” and “p1” or “p2” etc. for the priority.<br>Unfortunately, “Reminders” does not support creating a task using a keyboard shortcut, nor does it support determining the priority or the list name by entering the task title (although  supports suggesting a date from the information in the title).</p>



<p>However, you can use Apple&#8217;s “Shortcuts” app for quick entry. Read <a href="https://janpedia.de/en/software-en/quick-input-for-apple-reminders/">this article</a>.</p>



<h2 class="wp-block-heading" id="datatransfer">Data-Transfer</h2>



<p>With the “Reminders” app &#8211; apart from the iCloud for syncing &#8211; no remote API is involved; the data is stored locally for the time being. This means that there are no online services that can convert data between apps (except for a few shady ones that want your iCloud access data).<br>You won&#8217;t find an import function in the app either.</p>



<p>I then came up with the idea of using Apple&#8217;s “Automator” app, and you could actually create reminders in the app from there, but only in a very rudimentary way. So I tried the somewhat newer “Shortcuts” app, which can also create reminders and offers significantly more options.<br>After my first attempt ended in an endlessly long shortcut script, which directly disassembled the CSV from Todoist and tried to create reminders from it &#8211; which didn&#8217;t support nesting and was super confusing &#8211; I started a second attempt. In this one, I first convert the CSV files from Todoist into <strong>JSON</strong> files using a <strong><a href="https://deno.land/" target="_blank" rel="noreferrer noopener">Deno</a> script</strong>. These can then be read into “shortcuts” as a so-called dictionary and the individual properties can be accessed, which makes the whole thing much clearer.</p>



<h3 class="wp-block-heading">What works, what not?</h3>



<p>Due to the different features of the two apps (Todoist and “Reminders”) and the somewhat limited “Create reminder” step in the “Shortcuts” app, not all data can be converted 1:1. Here is an overview:</p>



<ul class="wp-block-list">
<li><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Task title</li>



<li><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Task description</li>



<li><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Due date</li>



<li><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Priority</li>



<li><img alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" consent-required="129" consent-by="services" consent-id="132"/> Subtasks<br><sub>(only one level)</sub></li>



<li><img alt="⛔" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/26d4.png" consent-required="129" consent-by="services" consent-id="132"/> Comments / conversation<br><sub>(Feature is not supported in “Reminders”) &#8211; This data is not transferred!</sub></li>



<li><img alt="⛔" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/26d4.png" consent-required="129" consent-by="services" consent-id="132"/> Attachments<br><sub>(not included in Todoist export) &#8211; Attachments are not transferred!</sub></li>



<li><img alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/1f527.png" consent-required="129" consent-by="services" consent-id="132"/> Recurring events<br><sub>(Not supported in the “Shortcuts” import step) &#8211; Manual rework necessary but no data loss</sub></li>



<li><img alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/1f527.png" consent-required="129" consent-by="services" consent-id="132"/> Deeply nested tasks<br><sub>(“Reminders” only supports nesting on one level, therefore deeply nested tasks are imported on the first level)</sub></li>



<li><img alt="⛔" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/26d4.png" consent-required="129" consent-by="services" consent-id="132"/> Duration<br><sub>(not supported by “Reminders”) &#8211; This data is not transferred!</sub></li>



<li><img alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/1f527.png" consent-required="129" consent-by="services" consent-id="132"/> Sections<br><sub>(Not supported in the “Shortcuts” import step) &#8211; Manual rework necessary, but no data loss</sub></li>



<li><img alt="⛔" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/26d4.png" consent-required="129" consent-by="services" consent-id="132"/> Responsible person<br><sub>(not supported by “Reminders”) &#8211; This data is not transferred!</sub></li>
</ul>



<p>Tasks that were in a Todoist section that should be repeated or were nested deeper than one level are given a <strong>tag</strong> starting with “export_” when they are imported into “Reminders”. <strong>These reminders must be edited manually</strong> (e.g. moved to a section or the repetition must be configured). Further details can be found in the reminder notes.</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-28-um-13.55.52-1.png"><img loading="lazy" decoding="async" width="1024" height="1024" data-id="369" src="https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-28-um-13.55.52-1-1024x1024.png" alt="" class="wp-image-369" srcset="https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-28-um-13.55.52-1-1024x1024.png 1024w, https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-28-um-13.55.52-1-300x300.png 300w, https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-28-um-13.55.52-1-150x150.png 150w, https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-28-um-13.55.52-1-768x767.png 768w, https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-28-um-13.55.52-1-1536x1536.png 1536w, https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-28-um-13.55.52-1-2048x2048.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Shortcuts script 1/2</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-28-um-13.56.02-1.png"><img loading="lazy" decoding="async" width="926" height="1024" data-id="370" src="https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-28-um-13.56.02-1-926x1024.png" alt="" class="wp-image-370" srcset="https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-28-um-13.56.02-1-926x1024.png 926w, https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-28-um-13.56.02-1-271x300.png 271w, https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-28-um-13.56.02-1-768x849.png 768w, https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-28-um-13.56.02-1-1389x1536.png 1389w, https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-28-um-13.56.02-1-1852x2048.png 1852w" sizes="auto, (max-width: 926px) 100vw, 926px" /></a><figcaption class="wp-element-caption">Shortcuts script 2/2</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-28-um-13.58.15-1.png"><img loading="lazy" decoding="async" width="1024" height="892" data-id="368" src="https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-28-um-13.58.15-1-1024x892.png" alt="" class="wp-image-368" srcset="https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-28-um-13.58.15-1-1024x892.png 1024w, https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-28-um-13.58.15-1-300x261.png 300w, https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-28-um-13.58.15-1-768x669.png 768w, https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-28-um-13.58.15-1-1536x1338.png 1536w, https://janpedia.de/wp-content/uploads/2024/08/Bildschirmfoto-2024-08-28-um-13.58.15-1-2048x1784.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Backups in todoist</figcaption></figure>
</figure>



<h3 class="wp-block-heading">Step by step guide</h3>



<ol class="wp-block-list">
<li>Download your Todoist backups (Settings -&gt; Backups, only with Pro or Team subscription!) and unzip the ZIP archive</li>



<li>Download my <a href="https://github.com/JanST123/todoist2json" target="_blank" rel="noreferrer noopener">Deno script from Github</a> to convert the Todoist CSV backups to JSON</li>



<li>Follow the instructions in the <a href="https://github.com/JanST123/todoist2json" target="_blank" rel="noreferrer noopener">README</a> for the script (install Deno, run script…)</li>



<li><a href="https://www.icloud.com/shortcuts/f93bcd159e1a44fb8a93cf727c43edde" target="_blank" rel="noreferrer noopener">Download my “Shortcuts” script</a> and add it to your “Shortcuts” app</li>



<li>The lists are imported one by one; after you have run the script, open the JSON file of a list you want to add to “Reminders” and <strong>copy the content to the clipboard</strong> (use a standard text editor to open the JSON)
<ul class="wp-block-list">
<li>Alternatively, you can also execute the following command in the terminal on the Mac to copy the contents of a file directly to the clipboard: <code>cat [PATH_TO_FILE].json | pbcopy</code></li>
</ul>
</li>



<li>With the JSON in the clipboard, run the shortcut script in the “Shortcuts” app (Play button in the menu bar)
<ul class="wp-block-list">
<li>You will be asked for the name of the list that will be created and filled with the tasks<br>A new list is always created</li>



<li>If you want to add tasks to an existing list, simply enter a temporary name for a new list and then move the tasks to the desired list in the “Reminders” app and delete the new one</li>
</ul>
</li>



<li>Repeat this procedure for all lists you want to copy from Todoist to Reminders</li>
</ol>



<h2 class="wp-block-heading">Conclusion</h2>



<p>Transferring the data this way has worked well for me; and I have been collecting data in Todoist for years. The manual work is annoying but not too time-consuming.<br>I have already gotten used to the “Reminders” app. The features that I miss can perhaps be replaced with other features over time or can be recreated with the “Shortcuts” app.<br>However, I&#8217;m not turning my back on Todoist quite yet, but I will use the free package for the time being.</p>



<h2 class="wp-block-heading">Links</h2>



<ul class="wp-block-list">
<li>Github Repository containing the script to convert Todoist Backups to&nbsp;JSON&nbsp;files:&nbsp;<a href="https://github.com/JanST123/todoist2json">https://github.com/JanST123/todoist2json</a></li>



<li>Shortcut script to import data fro the JSON files to the &#8220;Reminders&#8221; app:&nbsp;<a href="https://www.icloud.com/shortcuts/f93bcd159e1a44fb8a93cf727c43edde" target="_blank" rel="noreferrer noopener">https://www.icloud.com/shortcuts/f93bcd159e1a44fb8a93cf727c43edde</a></li>



<li>Todoist:&nbsp;<a href="https://todoist.com/" target="_blank" rel="noreferrer noopener">https://todoist.com</a></li>



<li>iCloud Webapp:&nbsp;<a href="https://icloud.com/" target="_blank" rel="noreferrer noopener">https://icloud.com</a></li>



<li>iCloud Page to export iCloud data: <a href="https://privacy.apple.com/account" target="_blank" rel="noreferrer noopener">https://privacy.apple.com/account</a></li>



<li>Deno (like NodeJS but based on Typescript and with more comfort):&nbsp;<a href="https://deno.land/" target="_blank" rel="noreferrer noopener">https://deno.land</a></li>
</ul>



<p>Translated from german with DeepL.com (free version)</p>
<p>Der Beitrag <a href="https://janpedia.de/en/2024/08/28/import-todos-in-apple-reminders-app/">Import Todos in Apple &#8220;Reminders&#8221; App</a> erschien zuerst auf <a href="https://janpedia.de/en">Janpedia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://janpedia.de/en/2024/08/28/import-todos-in-apple-reminders-app/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Enlarge ext4 partition on linux while system keeps running</title>
		<link>https://janpedia.de/en/2023/03/29/enlarge-ext4-partition-on-linux-while-system-keeps-running/</link>
					<comments>https://janpedia.de/en/2023/03/29/enlarge-ext4-partition-on-linux-while-system-keeps-running/#respond</comments>
		
		<dc:creator><![CDATA[Jan]]></dc:creator>
		<pubDate>Wed, 29 Mar 2023 15:52:51 +0000</pubDate>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[resize]]></category>
		<guid isPermaLink="false">https://janpedia.de/?p=256</guid>

					<description><![CDATA[<p>Why? On my own Linux web server I often have the &#8220;problem&#8221; that the data</p>
<p>Der Beitrag <a href="https://janpedia.de/en/2023/03/29/enlarge-ext4-partition-on-linux-while-system-keeps-running/">Enlarge ext4 partition on linux while system keeps running</a> erschien zuerst auf <a href="https://janpedia.de/en">Janpedia</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Why?</h2>



<p>On my own Linux web server I often have the &#8220;problem&#8221; that the data partition becomes too small. Databases and log files grow with the websites. And one is too stingy to order a generously dimensioned volume for one&#8217;s server <img alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" consent-original-src-_="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" consent-required="129" consent-by="services" consent-id="132"/> .</p>



<p>Therefore, it often happens that the monitoring reports an almost full partition and I then have to act so that the server does not stop at some point. I don&#8217;t want to shut down or restart the server.</p>



<p>Translated with www.DeepL.com/Translator (free version)</p>



<h2 class="wp-block-heading">How?</h2>



<p>Fortunately, this is quite easy with an ext4 formatted partition under Linux. Here are the steps</p>



<ol class="wp-block-list">
<li>First, of course, you have to physically enlarge the volume. Fortunately, this can be done with 2 clicks with my cloud provider <a href="https://gridscale.io" target="_blank" rel="noreferrer noopener">gridscale</a>.</li>



<li>Then open the <strong>parted</strong> programme on the affected volume, e.g. with <code>parted /dev/sda</code> (if parted is not installed, you have to do this according to your distribution, e.g. with <code>apt install parted</code> or <code>yum install parted</code> or <code>apk add parted</code>).</li>



<li>Now let parted print the information about the current partitions and the volume with the command <code>print</code></li>



<li>Continue with the parted command <code>resizepart [number of the partition to be resized]</code>. After Enter, parted warns you that the partition is currently being used, but you can ignore this.<br><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-orange-color"><strong>NOTE</strong>: If you have several partitions on this volume and the partition to be resized is not the last partition, it may not be so easy. If there is only a swap partition or other unimportant partition behind the partition, you can of course simply delete it and restore it at the end. For more complicated cases, I recommend this article:<a href="https://codesilence.wordpress.com/2013/03/14/live-resizing-of-an-ext4-filesytem-on-linux/" target="_blank" rel="noreferrer noopener"> https://codesilence.wordpress.com/2013/03/14/live-resizing-of-an-ext4-filesytem-on-linux/</a></mark></li>



<li>parted now asks where the end of the partition should go. Ideally, this is the size of the entire volume (displayed in the <code>print</code> command). If you have deleted a swap partition before, you have to subtract the space needed for the swap and then create the swap partition again.</li>



<li>With Enter the partition is resized and you can quit parted with <code>quit</code>.</li>



<li>But the partition is still not really grown &#8211; as e.g. a <code>df -H</code> shows, at least Linux has not noticed that yet. Finally, the command <code>resize2fs /dev/sda1</code> (where instead of &#8220;/dev/sda1&#8221; you have to enter your volume (here &#8220;/dev/sda&#8221; for the first SATA drive) + the partition number starting at 1 (here &#8220;1&#8221;)) will help.</li>



<li>After this command, a <code>df -H</code> should now show you the enlarged partition and the server should continue to run as if nothing had happened.</li>
</ol>



<p>Translated with www.DeepL.com/Translator (free version)</p>



<figure class="wp-block-image size-large"><a href="https://janpedia.de/wp-content/uploads/2023/03/resize-1.png"><img loading="lazy" decoding="async" width="1024" height="781" src="https://janpedia.de/wp-content/uploads/2023/03/resize-1-1024x781.png" alt="A Terminal Session showing the parted commands" class="wp-image-257" srcset="https://janpedia.de/wp-content/uploads/2023/03/resize-1-1024x781.png 1024w, https://janpedia.de/wp-content/uploads/2023/03/resize-1-300x229.png 300w, https://janpedia.de/wp-content/uploads/2023/03/resize-1-768x586.png 768w, https://janpedia.de/wp-content/uploads/2023/03/resize-1.png 1127w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
<p>Der Beitrag <a href="https://janpedia.de/en/2023/03/29/enlarge-ext4-partition-on-linux-while-system-keeps-running/">Enlarge ext4 partition on linux while system keeps running</a> erschien zuerst auf <a href="https://janpedia.de/en">Janpedia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://janpedia.de/en/2023/03/29/enlarge-ext4-partition-on-linux-while-system-keeps-running/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
