# calendar-sparkle icon

Calendar sparkle. Gentleface icon, drawn on the 16 px pixel grid. Free, MIT licensed. Page: https://gentleface.com/icons/calendar-sparkle

- Category: Time & calendar
- Use it for: ai scheduling, smart scheduling, find a time, ai calendar
- Example: Find a time with AI
- Built from: calendar + sparkle
- Tags: date, event, sparkle
- Family: calendar, calendar-alert, calendar-arrow-down, calendar-arrow-up, calendar-check, calendar-clock, calendar-day, calendar-dot, calendar-event, calendar-gear, calendar-heart, calendar-link, calendar-lock, calendar-month, calendar-off, calendar-pencil, calendar-plus, calendar-question, calendar-range, calendar-repeat, calendar-search, calendar-star, calendar-sync, calendar-user, calendar-week, calendar-x
- Component name: CalendarSparkleIcon
- Added: 2026-10-15

## Files

Each SVG is 16 × 16 with fill="currentColor". Keep it at 16 px or an exact multiple (32, 48) on whole pixels: a fractional size or position blurs it.

- line-round: https://gentleface.com/svg/line-round/16/calendar-sparkle.svg · PNG https://gentleface.com/png/line-round/16/calendar-sparkle.png · https://gentleface.com/png/line-round/32/calendar-sparkle.png · https://gentleface.com/png/line-round/48/calendar-sparkle.png
- line-soft: https://gentleface.com/svg/line-soft/16/calendar-sparkle.svg · PNG https://gentleface.com/png/line-soft/16/calendar-sparkle.png · https://gentleface.com/png/line-soft/32/calendar-sparkle.png · https://gentleface.com/png/line-soft/48/calendar-sparkle.png
- line-sharp: https://gentleface.com/svg/line-sharp/16/calendar-sparkle.svg · PNG https://gentleface.com/png/line-sharp/16/calendar-sparkle.png · https://gentleface.com/png/line-sharp/32/calendar-sparkle.png · https://gentleface.com/png/line-sharp/48/calendar-sparkle.png
- solid-round: https://gentleface.com/svg/solid-round/16/calendar-sparkle.svg · PNG https://gentleface.com/png/solid-round/16/calendar-sparkle.png · https://gentleface.com/png/solid-round/32/calendar-sparkle.png · https://gentleface.com/png/solid-round/48/calendar-sparkle.png
- solid-soft: https://gentleface.com/svg/solid-soft/16/calendar-sparkle.svg · PNG https://gentleface.com/png/solid-soft/16/calendar-sparkle.png · https://gentleface.com/png/solid-soft/32/calendar-sparkle.png · https://gentleface.com/png/solid-soft/48/calendar-sparkle.png
- solid-sharp: https://gentleface.com/svg/solid-sharp/16/calendar-sparkle.svg · PNG https://gentleface.com/png/solid-sharp/16/calendar-sparkle.png · https://gentleface.com/png/solid-sharp/32/calendar-sparkle.png · https://gentleface.com/png/solid-sharp/48/calendar-sparkle.png

The SVG of every style: https://gentleface.com/icons/calendar-sparkle.json (`svg`).

## Code (line-round)

The snippets are decorative (aria-hidden). For an icon that carries meaning on its own, such as an icon-only button, label the button, or give the SVG role="img" and an aria-label. For another style, take its SVG from the JSON and swap the path `d`.

### SVG

```svg
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="M10 1.5C10 1.359 10.048 1.241 10.144 1.144C10.241 1.048 10.359 1 10.5 1C10.641 1 10.759 1.048 10.856 1.144C10.952 1.241 11 1.359 11 1.5L11 2L12 2C12.254 2 12.5 2.047 12.736 2.14C12.993 2.242 13.219 2.391 13.414 2.586C13.609 2.781 13.758 3.007 13.86 3.264C13.953 3.5 14 3.746 14 4L14 8.5C14 8.641 13.952 8.759 13.856 8.856C13.759 8.952 13.641 9 13.5 9C13.359 9 13.241 8.952 13.144 8.856C13.048 8.759 13 8.641 13 8.5L13 6L3 6L3 13C3 13.276 3.098 13.512 3.293 13.707C3.488 13.902 3.724 14 4 14L9.5 14C9.641 14 9.759 14.048 9.856 14.144C9.952 14.241 10 14.359 10 14.5C10 14.641 9.952 14.759 9.856 14.856C9.759 14.952 9.641 15 9.5 15L4 15C3.746 15 3.5 14.953 3.264 14.86C3.007 14.758 2.781 14.609 2.586 14.414C2.391 14.219 2.242 13.993 2.14 13.736C2.047 13.5 2 13.254 2 13L2 4C2 3.746 2.047 3.5 2.14 3.264C2.242 3.007 2.391 2.781 2.586 2.586C2.781 2.391 3.007 2.242 3.264 2.14C3.5 2.047 3.746 2 4 2L5 2L5 1.5C5 1.359 5.048 1.241 5.144 1.144C5.241 1.048 5.359 1 5.5 1C5.641 1 5.759 1.048 5.856 1.144C5.952 1.241 6 1.359 6 1.5L6 2L10 2L10 1.5ZM3.293 3.293C3.098 3.488 3 3.724 3 4L3 5L13 5L13 4C13 3.724 12.902 3.488 12.707 3.293C12.512 3.098 12.276 3 12 3L11 3L11 3.5C11 3.641 10.952 3.759 10.856 3.856C10.759 3.952 10.641 4 10.5 4C10.359 4 10.241 3.952 10.144 3.856C10.048 3.759 10 3.641 10 3.5L10 3L6 3L6 3.5C6 3.641 5.952 3.759 5.856 3.856C5.759 3.952 5.641 4 5.5 4C5.359 4 5.241 3.952 5.144 3.856C5.048 3.759 5 3.641 5 3.5L5 3L4 3C3.724 3 3.488 3.098 3.293 3.293ZM11.5 16C11 13 10 12 7 11.5C10 11 11 10 11.5 7C12 10 13 11 16 11.5C13 12 12 13 11.5 16Z"/></svg>
```

### React

```tsx
// Gentleface "calendar-sparkle" (line-round), MIT. https://gentleface.com/icons/calendar-sparkle
import type { SVGProps } from 'react';

export function CalendarSparkleIcon(props: SVGProps<SVGSVGElement>) {
  return (
    <svg xmlns="http://www.w3.org/2000/svg" width={16} height={16} viewBox="0 0 16 16" fill="currentColor" aria-hidden="true" {...props}>
      <path d="M10 1.5C10 1.359 10.048 1.241 10.144 1.144C10.241 1.048 10.359 1 10.5 1C10.641 1 10.759 1.048 10.856 1.144C10.952 1.241 11 1.359 11 1.5L11 2L12 2C12.254 2 12.5 2.047 12.736 2.14C12.993 2.242 13.219 2.391 13.414 2.586C13.609 2.781 13.758 3.007 13.86 3.264C13.953 3.5 14 3.746 14 4L14 8.5C14 8.641 13.952 8.759 13.856 8.856C13.759 8.952 13.641 9 13.5 9C13.359 9 13.241 8.952 13.144 8.856C13.048 8.759 13 8.641 13 8.5L13 6L3 6L3 13C3 13.276 3.098 13.512 3.293 13.707C3.488 13.902 3.724 14 4 14L9.5 14C9.641 14 9.759 14.048 9.856 14.144C9.952 14.241 10 14.359 10 14.5C10 14.641 9.952 14.759 9.856 14.856C9.759 14.952 9.641 15 9.5 15L4 15C3.746 15 3.5 14.953 3.264 14.86C3.007 14.758 2.781 14.609 2.586 14.414C2.391 14.219 2.242 13.993 2.14 13.736C2.047 13.5 2 13.254 2 13L2 4C2 3.746 2.047 3.5 2.14 3.264C2.242 3.007 2.391 2.781 2.586 2.586C2.781 2.391 3.007 2.242 3.264 2.14C3.5 2.047 3.746 2 4 2L5 2L5 1.5C5 1.359 5.048 1.241 5.144 1.144C5.241 1.048 5.359 1 5.5 1C5.641 1 5.759 1.048 5.856 1.144C5.952 1.241 6 1.359 6 1.5L6 2L10 2L10 1.5ZM3.293 3.293C3.098 3.488 3 3.724 3 4L3 5L13 5L13 4C13 3.724 12.902 3.488 12.707 3.293C12.512 3.098 12.276 3 12 3L11 3L11 3.5C11 3.641 10.952 3.759 10.856 3.856C10.759 3.952 10.641 4 10.5 4C10.359 4 10.241 3.952 10.144 3.856C10.048 3.759 10 3.641 10 3.5L10 3L6 3L6 3.5C6 3.641 5.952 3.759 5.856 3.856C5.759 3.952 5.641 4 5.5 4C5.359 4 5.241 3.952 5.144 3.856C5.048 3.759 5 3.641 5 3.5L5 3L4 3C3.724 3 3.488 3.098 3.293 3.293ZM11.5 16C11 13 10 12 7 11.5C10 11 11 10 11.5 7C12 10 13 11 16 11.5C13 12 12 13 11.5 16Z" />
    </svg>
  );
}
```

### Vue

```vue
<!-- Gentleface "calendar-sparkle" (line-round), MIT. https://gentleface.com/icons/calendar-sparkle -->
<template>
  <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true">
    <path d="M10 1.5C10 1.359 10.048 1.241 10.144 1.144C10.241 1.048 10.359 1 10.5 1C10.641 1 10.759 1.048 10.856 1.144C10.952 1.241 11 1.359 11 1.5L11 2L12 2C12.254 2 12.5 2.047 12.736 2.14C12.993 2.242 13.219 2.391 13.414 2.586C13.609 2.781 13.758 3.007 13.86 3.264C13.953 3.5 14 3.746 14 4L14 8.5C14 8.641 13.952 8.759 13.856 8.856C13.759 8.952 13.641 9 13.5 9C13.359 9 13.241 8.952 13.144 8.856C13.048 8.759 13 8.641 13 8.5L13 6L3 6L3 13C3 13.276 3.098 13.512 3.293 13.707C3.488 13.902 3.724 14 4 14L9.5 14C9.641 14 9.759 14.048 9.856 14.144C9.952 14.241 10 14.359 10 14.5C10 14.641 9.952 14.759 9.856 14.856C9.759 14.952 9.641 15 9.5 15L4 15C3.746 15 3.5 14.953 3.264 14.86C3.007 14.758 2.781 14.609 2.586 14.414C2.391 14.219 2.242 13.993 2.14 13.736C2.047 13.5 2 13.254 2 13L2 4C2 3.746 2.047 3.5 2.14 3.264C2.242 3.007 2.391 2.781 2.586 2.586C2.781 2.391 3.007 2.242 3.264 2.14C3.5 2.047 3.746 2 4 2L5 2L5 1.5C5 1.359 5.048 1.241 5.144 1.144C5.241 1.048 5.359 1 5.5 1C5.641 1 5.759 1.048 5.856 1.144C5.952 1.241 6 1.359 6 1.5L6 2L10 2L10 1.5ZM3.293 3.293C3.098 3.488 3 3.724 3 4L3 5L13 5L13 4C13 3.724 12.902 3.488 12.707 3.293C12.512 3.098 12.276 3 12 3L11 3L11 3.5C11 3.641 10.952 3.759 10.856 3.856C10.759 3.952 10.641 4 10.5 4C10.359 4 10.241 3.952 10.144 3.856C10.048 3.759 10 3.641 10 3.5L10 3L6 3L6 3.5C6 3.641 5.952 3.759 5.856 3.856C5.759 3.952 5.641 4 5.5 4C5.359 4 5.241 3.952 5.144 3.856C5.048 3.759 5 3.641 5 3.5L5 3L4 3C3.724 3 3.488 3.098 3.293 3.293ZM11.5 16C11 13 10 12 7 11.5C10 11 11 10 11.5 7C12 10 13 11 16 11.5C13 12 12 13 11.5 16Z" />
  </svg>
</template>
```

### Svelte

```svelte
<!-- Gentleface "calendar-sparkle" (line-round), MIT. https://gentleface.com/icons/calendar-sparkle -->
<script>
  let props = $props();
</script>

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true" {...props}>
  <path d="M10 1.5C10 1.359 10.048 1.241 10.144 1.144C10.241 1.048 10.359 1 10.5 1C10.641 1 10.759 1.048 10.856 1.144C10.952 1.241 11 1.359 11 1.5L11 2L12 2C12.254 2 12.5 2.047 12.736 2.14C12.993 2.242 13.219 2.391 13.414 2.586C13.609 2.781 13.758 3.007 13.86 3.264C13.953 3.5 14 3.746 14 4L14 8.5C14 8.641 13.952 8.759 13.856 8.856C13.759 8.952 13.641 9 13.5 9C13.359 9 13.241 8.952 13.144 8.856C13.048 8.759 13 8.641 13 8.5L13 6L3 6L3 13C3 13.276 3.098 13.512 3.293 13.707C3.488 13.902 3.724 14 4 14L9.5 14C9.641 14 9.759 14.048 9.856 14.144C9.952 14.241 10 14.359 10 14.5C10 14.641 9.952 14.759 9.856 14.856C9.759 14.952 9.641 15 9.5 15L4 15C3.746 15 3.5 14.953 3.264 14.86C3.007 14.758 2.781 14.609 2.586 14.414C2.391 14.219 2.242 13.993 2.14 13.736C2.047 13.5 2 13.254 2 13L2 4C2 3.746 2.047 3.5 2.14 3.264C2.242 3.007 2.391 2.781 2.586 2.586C2.781 2.391 3.007 2.242 3.264 2.14C3.5 2.047 3.746 2 4 2L5 2L5 1.5C5 1.359 5.048 1.241 5.144 1.144C5.241 1.048 5.359 1 5.5 1C5.641 1 5.759 1.048 5.856 1.144C5.952 1.241 6 1.359 6 1.5L6 2L10 2L10 1.5ZM3.293 3.293C3.098 3.488 3 3.724 3 4L3 5L13 5L13 4C13 3.724 12.902 3.488 12.707 3.293C12.512 3.098 12.276 3 12 3L11 3L11 3.5C11 3.641 10.952 3.759 10.856 3.856C10.759 3.952 10.641 4 10.5 4C10.359 4 10.241 3.952 10.144 3.856C10.048 3.759 10 3.641 10 3.5L10 3L6 3L6 3.5C6 3.641 5.952 3.759 5.856 3.856C5.759 3.952 5.641 4 5.5 4C5.359 4 5.241 3.952 5.144 3.856C5.048 3.759 5 3.641 5 3.5L5 3L4 3C3.724 3 3.488 3.098 3.293 3.293ZM11.5 16C11 13 10 12 7 11.5C10 11 11 10 11.5 7C12 10 13 11 16 11.5C13 12 12 13 11.5 16Z" />
</svg>
```

### HTML img

```html
<!-- Gentleface "calendar-sparkle" (line-round), MIT. https://gentleface.com/icons/calendar-sparkle. An <img> can't take currentColor: it draws black. Inline the SVG or use the CSS mask to color it. -->
<img src="https://gentleface.com/svg/line-round/16/calendar-sparkle.svg" width="16" height="16" alt="">
```

### CSS

```css
/* Gentleface "calendar-sparkle" (line-round), MIT. https://gentleface.com/icons/calendar-sparkle. Takes the text color. */
.icon-calendar-sparkle {
  display: inline-block;
  width: 16px;
  height: 16px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='currentColor'%3E%3Cpath d='M10 1.5C10 1.359 10.048 1.241 10.144 1.144C10.241 1.048 10.359 1 10.5 1C10.641 1 10.759 1.048 10.856 1.144C10.952 1.241 11 1.359 11 1.5L11 2L12 2C12.254 2 12.5 2.047 12.736 2.14C12.993 2.242 13.219 2.391 13.414 2.586C13.609 2.781 13.758 3.007 13.86 3.264C13.953 3.5 14 3.746 14 4L14 8.5C14 8.641 13.952 8.759 13.856 8.856C13.759 8.952 13.641 9 13.5 9C13.359 9 13.241 8.952 13.144 8.856C13.048 8.759 13 8.641 13 8.5L13 6L3 6L3 13C3 13.276 3.098 13.512 3.293 13.707C3.488 13.902 3.724 14 4 14L9.5 14C9.641 14 9.759 14.048 9.856 14.144C9.952 14.241 10 14.359 10 14.5C10 14.641 9.952 14.759 9.856 14.856C9.759 14.952 9.641 15 9.5 15L4 15C3.746 15 3.5 14.953 3.264 14.86C3.007 14.758 2.781 14.609 2.586 14.414C2.391 14.219 2.242 13.993 2.14 13.736C2.047 13.5 2 13.254 2 13L2 4C2 3.746 2.047 3.5 2.14 3.264C2.242 3.007 2.391 2.781 2.586 2.586C2.781 2.391 3.007 2.242 3.264 2.14C3.5 2.047 3.746 2 4 2L5 2L5 1.5C5 1.359 5.048 1.241 5.144 1.144C5.241 1.048 5.359 1 5.5 1C5.641 1 5.759 1.048 5.856 1.144C5.952 1.241 6 1.359 6 1.5L6 2L10 2L10 1.5ZM3.293 3.293C3.098 3.488 3 3.724 3 4L3 5L13 5L13 4C13 3.724 12.902 3.488 12.707 3.293C12.512 3.098 12.276 3 12 3L11 3L11 3.5C11 3.641 10.952 3.759 10.856 3.856C10.759 3.952 10.641 4 10.5 4C10.359 4 10.241 3.952 10.144 3.856C10.048 3.759 10 3.641 10 3.5L10 3L6 3L6 3.5C6 3.641 5.952 3.759 5.856 3.856C5.759 3.952 5.641 4 5.5 4C5.359 4 5.241 3.952 5.144 3.856C5.048 3.759 5 3.641 5 3.5L5 3L4 3C3.724 3 3.488 3.098 3.293 3.293ZM11.5 16C11 13 10 12 7 11.5C10 11 11 10 11.5 7C12 10 13 11 16 11.5C13 12 12 13 11.5 16Z'/%3E%3C/svg%3E") center / 16px 16px no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='currentColor'%3E%3Cpath d='M10 1.5C10 1.359 10.048 1.241 10.144 1.144C10.241 1.048 10.359 1 10.5 1C10.641 1 10.759 1.048 10.856 1.144C10.952 1.241 11 1.359 11 1.5L11 2L12 2C12.254 2 12.5 2.047 12.736 2.14C12.993 2.242 13.219 2.391 13.414 2.586C13.609 2.781 13.758 3.007 13.86 3.264C13.953 3.5 14 3.746 14 4L14 8.5C14 8.641 13.952 8.759 13.856 8.856C13.759 8.952 13.641 9 13.5 9C13.359 9 13.241 8.952 13.144 8.856C13.048 8.759 13 8.641 13 8.5L13 6L3 6L3 13C3 13.276 3.098 13.512 3.293 13.707C3.488 13.902 3.724 14 4 14L9.5 14C9.641 14 9.759 14.048 9.856 14.144C9.952 14.241 10 14.359 10 14.5C10 14.641 9.952 14.759 9.856 14.856C9.759 14.952 9.641 15 9.5 15L4 15C3.746 15 3.5 14.953 3.264 14.86C3.007 14.758 2.781 14.609 2.586 14.414C2.391 14.219 2.242 13.993 2.14 13.736C2.047 13.5 2 13.254 2 13L2 4C2 3.746 2.047 3.5 2.14 3.264C2.242 3.007 2.391 2.781 2.586 2.586C2.781 2.391 3.007 2.242 3.264 2.14C3.5 2.047 3.746 2 4 2L5 2L5 1.5C5 1.359 5.048 1.241 5.144 1.144C5.241 1.048 5.359 1 5.5 1C5.641 1 5.759 1.048 5.856 1.144C5.952 1.241 6 1.359 6 1.5L6 2L10 2L10 1.5ZM3.293 3.293C3.098 3.488 3 3.724 3 4L3 5L13 5L13 4C13 3.724 12.902 3.488 12.707 3.293C12.512 3.098 12.276 3 12 3L11 3L11 3.5C11 3.641 10.952 3.759 10.856 3.856C10.759 3.952 10.641 4 10.5 4C10.359 4 10.241 3.952 10.144 3.856C10.048 3.759 10 3.641 10 3.5L10 3L6 3L6 3.5C6 3.641 5.952 3.759 5.856 3.856C5.759 3.952 5.641 4 5.5 4C5.359 4 5.241 3.952 5.144 3.856C5.048 3.759 5 3.641 5 3.5L5 3L4 3C3.724 3 3.488 3.098 3.293 3.293ZM11.5 16C11 13 10 12 7 11.5C10 11 11 10 11.5 7C12 10 13 11 16 11.5C13 12 12 13 11.5 16Z'/%3E%3C/svg%3E") center / 16px 16px no-repeat;
}
```

### Data URL

```text
data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='currentColor'%3E%3Cpath d='M10 1.5C10 1.359 10.048 1.241 10.144 1.144C10.241 1.048 10.359 1 10.5 1C10.641 1 10.759 1.048 10.856 1.144C10.952 1.241 11 1.359 11 1.5L11 2L12 2C12.254 2 12.5 2.047 12.736 2.14C12.993 2.242 13.219 2.391 13.414 2.586C13.609 2.781 13.758 3.007 13.86 3.264C13.953 3.5 14 3.746 14 4L14 8.5C14 8.641 13.952 8.759 13.856 8.856C13.759 8.952 13.641 9 13.5 9C13.359 9 13.241 8.952 13.144 8.856C13.048 8.759 13 8.641 13 8.5L13 6L3 6L3 13C3 13.276 3.098 13.512 3.293 13.707C3.488 13.902 3.724 14 4 14L9.5 14C9.641 14 9.759 14.048 9.856 14.144C9.952 14.241 10 14.359 10 14.5C10 14.641 9.952 14.759 9.856 14.856C9.759 14.952 9.641 15 9.5 15L4 15C3.746 15 3.5 14.953 3.264 14.86C3.007 14.758 2.781 14.609 2.586 14.414C2.391 14.219 2.242 13.993 2.14 13.736C2.047 13.5 2 13.254 2 13L2 4C2 3.746 2.047 3.5 2.14 3.264C2.242 3.007 2.391 2.781 2.586 2.586C2.781 2.391 3.007 2.242 3.264 2.14C3.5 2.047 3.746 2 4 2L5 2L5 1.5C5 1.359 5.048 1.241 5.144 1.144C5.241 1.048 5.359 1 5.5 1C5.641 1 5.759 1.048 5.856 1.144C5.952 1.241 6 1.359 6 1.5L6 2L10 2L10 1.5ZM3.293 3.293C3.098 3.488 3 3.724 3 4L3 5L13 5L13 4C13 3.724 12.902 3.488 12.707 3.293C12.512 3.098 12.276 3 12 3L11 3L11 3.5C11 3.641 10.952 3.759 10.856 3.856C10.759 3.952 10.641 4 10.5 4C10.359 4 10.241 3.952 10.144 3.856C10.048 3.759 10 3.641 10 3.5L10 3L6 3L6 3.5C6 3.641 5.952 3.759 5.856 3.856C5.759 3.952 5.641 4 5.5 4C5.359 4 5.241 3.952 5.144 3.856C5.048 3.759 5 3.641 5 3.5L5 3L4 3C3.724 3 3.488 3.098 3.293 3.293ZM11.5 16C11 13 10 12 7 11.5C10 11 11 10 11.5 7C12 10 13 11 16 11.5C13 12 12 13 11.5 16Z'/%3E%3C/svg%3E
```

### Sprite

```html
<!-- Gentleface "calendar-sparkle" (line-round), MIT. https://gentleface.com/icons/calendar-sparkle
     Every icon of this style in one file: https://gentleface.com/sprite/line-round.svg
     Serve it from your own origin: <use> does not load from another origin. -->
<svg width="16" height="16" aria-hidden="true"><use href="/sprite/line-round.svg#calendar-sparkle"/></svg>
```

### SwiftUI

```swift
// Gentleface "calendar-sparkle" (line-round), MIT. https://gentleface.com/icons/calendar-sparkle
import SwiftUI

struct CalendarSparkleIcon: Shape {
    func path(in rect: CGRect) -> Path {
        var p = Path()
        p.move(to: CGPoint(x: 10, y: 1.5))
        p.addCurve(to: CGPoint(x: 10.144, y: 1.144), control1: CGPoint(x: 10, y: 1.359), control2: CGPoint(x: 10.048, y: 1.241))
        p.addCurve(to: CGPoint(x: 10.5, y: 1), control1: CGPoint(x: 10.241, y: 1.048), control2: CGPoint(x: 10.359, y: 1))
        p.addCurve(to: CGPoint(x: 10.856, y: 1.144), control1: CGPoint(x: 10.641, y: 1), control2: CGPoint(x: 10.759, y: 1.048))
        p.addCurve(to: CGPoint(x: 11, y: 1.5), control1: CGPoint(x: 10.952, y: 1.241), control2: CGPoint(x: 11, y: 1.359))
        p.addLine(to: CGPoint(x: 11, y: 2))
        p.addLine(to: CGPoint(x: 12, y: 2))
        p.addCurve(to: CGPoint(x: 12.736, y: 2.14), control1: CGPoint(x: 12.254, y: 2), control2: CGPoint(x: 12.5, y: 2.047))
        p.addCurve(to: CGPoint(x: 13.414, y: 2.586), control1: CGPoint(x: 12.993, y: 2.242), control2: CGPoint(x: 13.219, y: 2.391))
        p.addCurve(to: CGPoint(x: 13.86, y: 3.264), control1: CGPoint(x: 13.609, y: 2.781), control2: CGPoint(x: 13.758, y: 3.007))
        p.addCurve(to: CGPoint(x: 14, y: 4), control1: CGPoint(x: 13.953, y: 3.5), control2: CGPoint(x: 14, y: 3.746))
        p.addLine(to: CGPoint(x: 14, y: 8.5))
        p.addCurve(to: CGPoint(x: 13.856, y: 8.856), control1: CGPoint(x: 14, y: 8.641), control2: CGPoint(x: 13.952, y: 8.759))
        p.addCurve(to: CGPoint(x: 13.5, y: 9), control1: CGPoint(x: 13.759, y: 8.952), control2: CGPoint(x: 13.641, y: 9))
        p.addCurve(to: CGPoint(x: 13.144, y: 8.856), control1: CGPoint(x: 13.359, y: 9), control2: CGPoint(x: 13.241, y: 8.952))
        p.addCurve(to: CGPoint(x: 13, y: 8.5), control1: CGPoint(x: 13.048, y: 8.759), control2: CGPoint(x: 13, y: 8.641))
        p.addLine(to: CGPoint(x: 13, y: 6))
        p.addLine(to: CGPoint(x: 3, y: 6))
        p.addLine(to: CGPoint(x: 3, y: 13))
        p.addCurve(to: CGPoint(x: 3.293, y: 13.707), control1: CGPoint(x: 3, y: 13.276), control2: CGPoint(x: 3.098, y: 13.512))
        p.addCurve(to: CGPoint(x: 4, y: 14), control1: CGPoint(x: 3.488, y: 13.902), control2: CGPoint(x: 3.724, y: 14))
        p.addLine(to: CGPoint(x: 9.5, y: 14))
        p.addCurve(to: CGPoint(x: 9.856, y: 14.144), control1: CGPoint(x: 9.641, y: 14), control2: CGPoint(x: 9.759, y: 14.048))
        p.addCurve(to: CGPoint(x: 10, y: 14.5), control1: CGPoint(x: 9.952, y: 14.241), control2: CGPoint(x: 10, y: 14.359))
        p.addCurve(to: CGPoint(x: 9.856, y: 14.856), control1: CGPoint(x: 10, y: 14.641), control2: CGPoint(x: 9.952, y: 14.759))
        p.addCurve(to: CGPoint(x: 9.5, y: 15), control1: CGPoint(x: 9.759, y: 14.952), control2: CGPoint(x: 9.641, y: 15))
        p.addLine(to: CGPoint(x: 4, y: 15))
        p.addCurve(to: CGPoint(x: 3.264, y: 14.86), control1: CGPoint(x: 3.746, y: 15), control2: CGPoint(x: 3.5, y: 14.953))
        p.addCurve(to: CGPoint(x: 2.586, y: 14.414), control1: CGPoint(x: 3.007, y: 14.758), control2: CGPoint(x: 2.781, y: 14.609))
        p.addCurve(to: CGPoint(x: 2.14, y: 13.736), control1: CGPoint(x: 2.391, y: 14.219), control2: CGPoint(x: 2.242, y: 13.993))
        p.addCurve(to: CGPoint(x: 2, y: 13), control1: CGPoint(x: 2.047, y: 13.5), control2: CGPoint(x: 2, y: 13.254))
        p.addLine(to: CGPoint(x: 2, y: 4))
        p.addCurve(to: CGPoint(x: 2.14, y: 3.264), control1: CGPoint(x: 2, y: 3.746), control2: CGPoint(x: 2.047, y: 3.5))
        p.addCurve(to: CGPoint(x: 2.586, y: 2.586), control1: CGPoint(x: 2.242, y: 3.007), control2: CGPoint(x: 2.391, y: 2.781))
        p.addCurve(to: CGPoint(x: 3.264, y: 2.14), control1: CGPoint(x: 2.781, y: 2.391), control2: CGPoint(x: 3.007, y: 2.242))
        p.addCurve(to: CGPoint(x: 4, y: 2), control1: CGPoint(x: 3.5, y: 2.047), control2: CGPoint(x: 3.746, y: 2))
        p.addLine(to: CGPoint(x: 5, y: 2))
        p.addLine(to: CGPoint(x: 5, y: 1.5))
        p.addCurve(to: CGPoint(x: 5.144, y: 1.144), control1: CGPoint(x: 5, y: 1.359), control2: CGPoint(x: 5.048, y: 1.241))
        p.addCurve(to: CGPoint(x: 5.5, y: 1), control1: CGPoint(x: 5.241, y: 1.048), control2: CGPoint(x: 5.359, y: 1))
        p.addCurve(to: CGPoint(x: 5.856, y: 1.144), control1: CGPoint(x: 5.641, y: 1), control2: CGPoint(x: 5.759, y: 1.048))
        p.addCurve(to: CGPoint(x: 6, y: 1.5), control1: CGPoint(x: 5.952, y: 1.241), control2: CGPoint(x: 6, y: 1.359))
        p.addLine(to: CGPoint(x: 6, y: 2))
        p.addLine(to: CGPoint(x: 10, y: 2))
        p.addLine(to: CGPoint(x: 10, y: 1.5))
        p.closeSubpath()
        p.move(to: CGPoint(x: 3.293, y: 3.293))
        p.addCurve(to: CGPoint(x: 3, y: 4), control1: CGPoint(x: 3.098, y: 3.488), control2: CGPoint(x: 3, y: 3.724))
        p.addLine(to: CGPoint(x: 3, y: 5))
        p.addLine(to: CGPoint(x: 13, y: 5))
        p.addLine(to: CGPoint(x: 13, y: 4))
        p.addCurve(to: CGPoint(x: 12.707, y: 3.293), control1: CGPoint(x: 13, y: 3.724), control2: CGPoint(x: 12.902, y: 3.488))
        p.addCurve(to: CGPoint(x: 12, y: 3), control1: CGPoint(x: 12.512, y: 3.098), control2: CGPoint(x: 12.276, y: 3))
        p.addLine(to: CGPoint(x: 11, y: 3))
        p.addLine(to: CGPoint(x: 11, y: 3.5))
        p.addCurve(to: CGPoint(x: 10.856, y: 3.856), control1: CGPoint(x: 11, y: 3.641), control2: CGPoint(x: 10.952, y: 3.759))
        p.addCurve(to: CGPoint(x: 10.5, y: 4), control1: CGPoint(x: 10.759, y: 3.952), control2: CGPoint(x: 10.641, y: 4))
        p.addCurve(to: CGPoint(x: 10.144, y: 3.856), control1: CGPoint(x: 10.359, y: 4), control2: CGPoint(x: 10.241, y: 3.952))
        p.addCurve(to: CGPoint(x: 10, y: 3.5), control1: CGPoint(x: 10.048, y: 3.759), control2: CGPoint(x: 10, y: 3.641))
        p.addLine(to: CGPoint(x: 10, y: 3))
        p.addLine(to: CGPoint(x: 6, y: 3))
        p.addLine(to: CGPoint(x: 6, y: 3.5))
        p.addCurve(to: CGPoint(x: 5.856, y: 3.856), control1: CGPoint(x: 6, y: 3.641), control2: CGPoint(x: 5.952, y: 3.759))
        p.addCurve(to: CGPoint(x: 5.5, y: 4), control1: CGPoint(x: 5.759, y: 3.952), control2: CGPoint(x: 5.641, y: 4))
        p.addCurve(to: CGPoint(x: 5.144, y: 3.856), control1: CGPoint(x: 5.359, y: 4), control2: CGPoint(x: 5.241, y: 3.952))
        p.addCurve(to: CGPoint(x: 5, y: 3.5), control1: CGPoint(x: 5.048, y: 3.759), control2: CGPoint(x: 5, y: 3.641))
        p.addLine(to: CGPoint(x: 5, y: 3))
        p.addLine(to: CGPoint(x: 4, y: 3))
        p.addCurve(to: CGPoint(x: 3.293, y: 3.293), control1: CGPoint(x: 3.724, y: 3), control2: CGPoint(x: 3.488, y: 3.098))
        p.closeSubpath()
        p.move(to: CGPoint(x: 11.5, y: 16))
        p.addCurve(to: CGPoint(x: 7, y: 11.5), control1: CGPoint(x: 11, y: 13), control2: CGPoint(x: 10, y: 12))
        p.addCurve(to: CGPoint(x: 11.5, y: 7), control1: CGPoint(x: 10, y: 11), control2: CGPoint(x: 11, y: 10))
        p.addCurve(to: CGPoint(x: 16, y: 11.5), control1: CGPoint(x: 12, y: 10), control2: CGPoint(x: 13, y: 11))
        p.addCurve(to: CGPoint(x: 11.5, y: 16), control1: CGPoint(x: 13, y: 12), control2: CGPoint(x: 12, y: 13))
        p.closeSubpath()
        return p.applying(CGAffineTransform(scaleX: rect.width / 16, y: rect.height / 16))
    }
}

// CalendarSparkleIcon().frame(width: 16, height: 16) fills with the foreground style. Keep it on whole points to stay crisp.
```

### Compose

```kotlin
// Gentleface "calendar-sparkle" (line-round), MIT. https://gentleface.com/icons/calendar-sparkle
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.SolidColor
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.graphics.vector.addPathNodes
import androidx.compose.ui.unit.dp

val CalendarSparkleIcon: ImageVector by lazy {
    ImageVector.Builder(
        name = "calendar-sparkle", defaultWidth = 16.dp, defaultHeight = 16.dp,
        viewportWidth = 16f, viewportHeight = 16f,
    ).addPath(
        pathData = addPathNodes("M10 1.5C10 1.359 10.048 1.241 10.144 1.144C10.241 1.048 10.359 1 10.5 1C10.641 1 10.759 1.048 10.856 1.144C10.952 1.241 11 1.359 11 1.5L11 2L12 2C12.254 2 12.5 2.047 12.736 2.14C12.993 2.242 13.219 2.391 13.414 2.586C13.609 2.781 13.758 3.007 13.86 3.264C13.953 3.5 14 3.746 14 4L14 8.5C14 8.641 13.952 8.759 13.856 8.856C13.759 8.952 13.641 9 13.5 9C13.359 9 13.241 8.952 13.144 8.856C13.048 8.759 13 8.641 13 8.5L13 6L3 6L3 13C3 13.276 3.098 13.512 3.293 13.707C3.488 13.902 3.724 14 4 14L9.5 14C9.641 14 9.759 14.048 9.856 14.144C9.952 14.241 10 14.359 10 14.5C10 14.641 9.952 14.759 9.856 14.856C9.759 14.952 9.641 15 9.5 15L4 15C3.746 15 3.5 14.953 3.264 14.86C3.007 14.758 2.781 14.609 2.586 14.414C2.391 14.219 2.242 13.993 2.14 13.736C2.047 13.5 2 13.254 2 13L2 4C2 3.746 2.047 3.5 2.14 3.264C2.242 3.007 2.391 2.781 2.586 2.586C2.781 2.391 3.007 2.242 3.264 2.14C3.5 2.047 3.746 2 4 2L5 2L5 1.5C5 1.359 5.048 1.241 5.144 1.144C5.241 1.048 5.359 1 5.5 1C5.641 1 5.759 1.048 5.856 1.144C5.952 1.241 6 1.359 6 1.5L6 2L10 2L10 1.5ZM3.293 3.293C3.098 3.488 3 3.724 3 4L3 5L13 5L13 4C13 3.724 12.902 3.488 12.707 3.293C12.512 3.098 12.276 3 12 3L11 3L11 3.5C11 3.641 10.952 3.759 10.856 3.856C10.759 3.952 10.641 4 10.5 4C10.359 4 10.241 3.952 10.144 3.856C10.048 3.759 10 3.641 10 3.5L10 3L6 3L6 3.5C6 3.641 5.952 3.759 5.856 3.856C5.759 3.952 5.641 4 5.5 4C5.359 4 5.241 3.952 5.144 3.856C5.048 3.759 5 3.641 5 3.5L5 3L4 3C3.724 3 3.488 3.098 3.293 3.293ZM11.5 16C11 13 10 12 7 11.5C10 11 11 10 11.5 7C12 10 13 11 16 11.5C13 12 12 13 11.5 16Z"),
        fill = SolidColor(Color.Black),
    ).build()
}

// Icon(CalendarSparkleIcon, contentDescription = null) tints it with LocalContentColor.
```

### Android XML

```xml
<!-- res/drawable/ic_calendar_sparkle.xml · Gentleface "calendar-sparkle" (line-round), MIT. https://gentleface.com/icons/calendar-sparkle -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="16dp"
    android:height="16dp"
    android:viewportWidth="16"
    android:viewportHeight="16"
    android:tint="?attr/colorControlNormal">
  <path
      android:fillColor="@android:color/white"
      android:pathData="M10 1.5C10 1.359 10.048 1.241 10.144 1.144C10.241 1.048 10.359 1 10.5 1C10.641 1 10.759 1.048 10.856 1.144C10.952 1.241 11 1.359 11 1.5L11 2L12 2C12.254 2 12.5 2.047 12.736 2.14C12.993 2.242 13.219 2.391 13.414 2.586C13.609 2.781 13.758 3.007 13.86 3.264C13.953 3.5 14 3.746 14 4L14 8.5C14 8.641 13.952 8.759 13.856 8.856C13.759 8.952 13.641 9 13.5 9C13.359 9 13.241 8.952 13.144 8.856C13.048 8.759 13 8.641 13 8.5L13 6L3 6L3 13C3 13.276 3.098 13.512 3.293 13.707C3.488 13.902 3.724 14 4 14L9.5 14C9.641 14 9.759 14.048 9.856 14.144C9.952 14.241 10 14.359 10 14.5C10 14.641 9.952 14.759 9.856 14.856C9.759 14.952 9.641 15 9.5 15L4 15C3.746 15 3.5 14.953 3.264 14.86C3.007 14.758 2.781 14.609 2.586 14.414C2.391 14.219 2.242 13.993 2.14 13.736C2.047 13.5 2 13.254 2 13L2 4C2 3.746 2.047 3.5 2.14 3.264C2.242 3.007 2.391 2.781 2.586 2.586C2.781 2.391 3.007 2.242 3.264 2.14C3.5 2.047 3.746 2 4 2L5 2L5 1.5C5 1.359 5.048 1.241 5.144 1.144C5.241 1.048 5.359 1 5.5 1C5.641 1 5.759 1.048 5.856 1.144C5.952 1.241 6 1.359 6 1.5L6 2L10 2L10 1.5ZM3.293 3.293C3.098 3.488 3 3.724 3 4L3 5L13 5L13 4C13 3.724 12.902 3.488 12.707 3.293C12.512 3.098 12.276 3 12 3L11 3L11 3.5C11 3.641 10.952 3.759 10.856 3.856C10.759 3.952 10.641 4 10.5 4C10.359 4 10.241 3.952 10.144 3.856C10.048 3.759 10 3.641 10 3.5L10 3L6 3L6 3.5C6 3.641 5.952 3.759 5.856 3.856C5.759 3.952 5.641 4 5.5 4C5.359 4 5.241 3.952 5.144 3.856C5.048 3.759 5 3.641 5 3.5L5 3L4 3C3.724 3 3.488 3.098 3.293 3.293ZM11.5 16C11 13 10 12 7 11.5C10 11 11 10 11.5 7C12 10 13 11 16 11.5C13 12 12 13 11.5 16Z"/>
</vector>
```

### Flutter

```dart
// Gentleface "calendar-sparkle" (line-round), MIT. https://gentleface.com/icons/calendar-sparkle
import 'package:flutter/widgets.dart';

class CalendarSparkleIcon extends StatelessWidget {
  const CalendarSparkleIcon({super.key, this.size = 16, this.color});
  final double size;
  final Color? color;

  @override
  Widget build(BuildContext context) => CustomPaint(
        size: Size.square(size),
        painter: _CalendarSparkleIconPainter(color ?? IconTheme.of(context).color ?? const Color(0xFF000000)),
      );
}

class _CalendarSparkleIconPainter extends CustomPainter {
  _CalendarSparkleIconPainter(this.color);
  final Color color;

  @override
  void paint(Canvas canvas, Size size) {
    canvas.scale(size.width / 16, size.height / 16);
    final p = Path()
      ..moveTo(10, 1.5)
      ..cubicTo(10, 1.359, 10.048, 1.241, 10.144, 1.144)
      ..cubicTo(10.241, 1.048, 10.359, 1, 10.5, 1)
      ..cubicTo(10.641, 1, 10.759, 1.048, 10.856, 1.144)
      ..cubicTo(10.952, 1.241, 11, 1.359, 11, 1.5)
      ..lineTo(11, 2)
      ..lineTo(12, 2)
      ..cubicTo(12.254, 2, 12.5, 2.047, 12.736, 2.14)
      ..cubicTo(12.993, 2.242, 13.219, 2.391, 13.414, 2.586)
      ..cubicTo(13.609, 2.781, 13.758, 3.007, 13.86, 3.264)
      ..cubicTo(13.953, 3.5, 14, 3.746, 14, 4)
      ..lineTo(14, 8.5)
      ..cubicTo(14, 8.641, 13.952, 8.759, 13.856, 8.856)
      ..cubicTo(13.759, 8.952, 13.641, 9, 13.5, 9)
      ..cubicTo(13.359, 9, 13.241, 8.952, 13.144, 8.856)
      ..cubicTo(13.048, 8.759, 13, 8.641, 13, 8.5)
      ..lineTo(13, 6)
      ..lineTo(3, 6)
      ..lineTo(3, 13)
      ..cubicTo(3, 13.276, 3.098, 13.512, 3.293, 13.707)
      ..cubicTo(3.488, 13.902, 3.724, 14, 4, 14)
      ..lineTo(9.5, 14)
      ..cubicTo(9.641, 14, 9.759, 14.048, 9.856, 14.144)
      ..cubicTo(9.952, 14.241, 10, 14.359, 10, 14.5)
      ..cubicTo(10, 14.641, 9.952, 14.759, 9.856, 14.856)
      ..cubicTo(9.759, 14.952, 9.641, 15, 9.5, 15)
      ..lineTo(4, 15)
      ..cubicTo(3.746, 15, 3.5, 14.953, 3.264, 14.86)
      ..cubicTo(3.007, 14.758, 2.781, 14.609, 2.586, 14.414)
      ..cubicTo(2.391, 14.219, 2.242, 13.993, 2.14, 13.736)
      ..cubicTo(2.047, 13.5, 2, 13.254, 2, 13)
      ..lineTo(2, 4)
      ..cubicTo(2, 3.746, 2.047, 3.5, 2.14, 3.264)
      ..cubicTo(2.242, 3.007, 2.391, 2.781, 2.586, 2.586)
      ..cubicTo(2.781, 2.391, 3.007, 2.242, 3.264, 2.14)
      ..cubicTo(3.5, 2.047, 3.746, 2, 4, 2)
      ..lineTo(5, 2)
      ..lineTo(5, 1.5)
      ..cubicTo(5, 1.359, 5.048, 1.241, 5.144, 1.144)
      ..cubicTo(5.241, 1.048, 5.359, 1, 5.5, 1)
      ..cubicTo(5.641, 1, 5.759, 1.048, 5.856, 1.144)
      ..cubicTo(5.952, 1.241, 6, 1.359, 6, 1.5)
      ..lineTo(6, 2)
      ..lineTo(10, 2)
      ..lineTo(10, 1.5)
      ..close()
      ..moveTo(3.293, 3.293)
      ..cubicTo(3.098, 3.488, 3, 3.724, 3, 4)
      ..lineTo(3, 5)
      ..lineTo(13, 5)
      ..lineTo(13, 4)
      ..cubicTo(13, 3.724, 12.902, 3.488, 12.707, 3.293)
      ..cubicTo(12.512, 3.098, 12.276, 3, 12, 3)
      ..lineTo(11, 3)
      ..lineTo(11, 3.5)
      ..cubicTo(11, 3.641, 10.952, 3.759, 10.856, 3.856)
      ..cubicTo(10.759, 3.952, 10.641, 4, 10.5, 4)
      ..cubicTo(10.359, 4, 10.241, 3.952, 10.144, 3.856)
      ..cubicTo(10.048, 3.759, 10, 3.641, 10, 3.5)
      ..lineTo(10, 3)
      ..lineTo(6, 3)
      ..lineTo(6, 3.5)
      ..cubicTo(6, 3.641, 5.952, 3.759, 5.856, 3.856)
      ..cubicTo(5.759, 3.952, 5.641, 4, 5.5, 4)
      ..cubicTo(5.359, 4, 5.241, 3.952, 5.144, 3.856)
      ..cubicTo(5.048, 3.759, 5, 3.641, 5, 3.5)
      ..lineTo(5, 3)
      ..lineTo(4, 3)
      ..cubicTo(3.724, 3, 3.488, 3.098, 3.293, 3.293)
      ..close()
      ..moveTo(11.5, 16)
      ..cubicTo(11, 13, 10, 12, 7, 11.5)
      ..cubicTo(10, 11, 11, 10, 11.5, 7)
      ..cubicTo(12, 10, 13, 11, 16, 11.5)
      ..cubicTo(13, 12, 12, 13, 11.5, 16)
      ..close();
    canvas.drawPath(p, Paint()..color = color);
  }

  @override
  bool shouldRepaint(_CalendarSparkleIconPainter old) => old.color != color;
}
```
