Generates In-App Event metadata templates for App Store Connect — event names, descriptions, badge types, image specs, and deep link configuration. Use when creating events for App Store visibility, engagement campaigns, or seasonal promotions.
npx skills add https://github.com/rshankras/claude-code-apple-skills --skill in-app-events
Generate complete In-App Event metadata ready for App Store Connect upload, including event cards, descriptions, deep link configuration, and promotional image specifications.
Use this skill when the user:
In-App Events appear on:
Events are visible to ALL users — including people who haven't downloaded your app. This makes them a powerful discovery and re-engagement tool. Users who opt in also get an App Store notification when the event starts.
| Rule | Value |
|------|-------|
| Event duration | 15 minutes to 31 days |
| Publish ahead of start | Up to 14 days early — the card shows the start time |
| Concurrent limits | 10 approved / 5 published simultaneously across storefronts — ASC blocks submission beyond either |
| Per-country schedules | Custom start/end per country, within ±48 hours of the default schedule |
| Review time | ~24 hours typical |
| Past-event URL | Stays live for 30 days after the event ends |
| Card media | One image, or a looping video ≤30 seconds |
| Submission conflict | Marketing role can't submit an event while an app version is in submission |
| Analytics | Event analytics appear only after ≥5 downloads from the event |
Ask user via AskUserQuestion:
For each event, collect:
For each event, produce:
Provide exact image specifications for event cards:
Write a markdown document with all metadata ready for copy/paste into App Store Connect.
| Badge | Use For | Examples |
|-------|---------|---------|
| Challenge | Goal-based activities users can complete | "30-Day Fitness Challenge", "Photography Week" |
| Competition | Ranked or scored events against other users | "Weekly Leaderboard", "Speed Run Contest" |
| Live Event | Real-time events at a specific time | "Live Q&A with Creator", "Launch Party" |
| Special Event | Limited-time features, offers, or content | "Holiday Collection", "Anniversary Sale" |
| Major Update | Significant new app version | "Version 3.0 — Complete Redesign" |
| New Season | Seasonal content refreshes | "Winter Season", "Chapter 3" |
| Premiere | First-time content or feature debut | "Introducing Dark Mode", "New Game Mode" |
The badge-fit rule (per Apple): if none of the badges fits what you're promoting, it shouldn't be an event. Two badges Apple polices closely — Live Event must introduce new features, content, or goods (not just "we're streaming"), and Major Update must exceed UI tweaks and bug fixes.
> Status: announced (WWDC26) — verify availability in App Store Connect before executing.
| Badge | Use For | Examples |
|-------|---------|---------|
| Now On Sale | Limited-time price drops on the app or IAPs | "Pro Unlock 50% Off — This Week" |
| Try Before You Buy | Free-trial or demo-access promotions | "7-Day Free Trial Event" |
# In-App Event: [Event Concept]
## App Store Connect Metadata
| Field | Value |
|-------|-------|
| Reference Name | [internal-name-kebab-case] |
| Badge | [Badge Type] |
| Event Name | [30 chars max] |
| Short Description | [50 chars max] |
| Long Description | [120 chars max] |
| Start Date | [YYYY-MM-DD HH:MM timezone] |
| End Date | [YYYY-MM-DD HH:MM timezone] |
| Event Purpose | [Attract New Users / Keep Active Users Informed / Bring Back Lapsed Users] |
| Event Priority | [Normal / High] |
| Deep Link | [yourapp://event/event-id] |
## Event Card Image
| Spec | Value |
|------|-------|
| Size | 1080 x 1920 px (portrait) |
| Format | PNG, no transparency |
| Safe Zone | Center 80% for critical content |
| Background | [Color/gradient suggestion] |
| Content | [Visual description] |
| Text/Logos | None — event name renders over the art; preview for cropping |
## Deep Link Configuration
- URL Scheme: `yourapp://event/[event-id]`
- Universal Link: `https://yourapp.com/event/[event-id]`
- Fallback: App Store product page
## Localization Notes
- [Language]: [Localized event name and descriptions]
# Event Series: [Series Name]
## Series Overview
[Brief description of the series theme and cadence]
## Events
### Event 1: [Name]
[Same fields as single event template]
### Event 2: [Name]
[Same fields as single event template]
### Event 3: [Name]
[Same fields as single event template]
## Series Strategy
- **Cadence**: [Weekly / Biweekly / Monthly]
- **Escalation**: [How events build on each other]
- **Retention hook**: [What brings users back for the next event]
# Annual Event Calendar: [App Name]
| Month | Event | Badge | Duration | Goal |
|-------|-------|-------|----------|------|
| Jan | [Event name] | [Badge] | [X days] | [Goal] |
| Feb | [Event name] | [Badge] | [X days] | [Goal] |
| ... | ... | ... | ... | ... |
## Seasonal Themes
- **Q1 (Jan-Mar)**: [Theme — e.g., New Year motivation]
- **Q2 (Apr-Jun)**: [Theme — e.g., Spring refresh, WWDC tie-in]
- **Q3 (Jul-Sep)**: [Theme — e.g., Summer activities, back to school]
- **Q4 (Oct-Dec)**: [Theme — e.g., Halloween, holiday season]
app-store/marketing-strategy — Strategic event planning by app typegenerators/custom-product-pages — Pair events with targeted product pagesapp-store/app-description-writer — Event description writing styleCreate AI marketing videos for ads, promos, product launches, and brand content. Models: Veo, Seedance, Wan, FLUX for visuals, Kokoro for voiceover. Types: product demos, testimonials, explainers, social ads, brand videos. Use for: Facebook ads, YouTube ads, product launches, brand awareness. Triggers: marketing video, ad video, promo video, commercial, brand video, product video, explainer video, ad creative, video ad, facebook ad video, youtube ad, instagram ad, tiktok ad, promotional video, launch video
App Store and Google Play screenshot creation with exact platform specs. Covers iOS/Android dimensions, gallery ordering, device mockups, and preview videos. Use for: app store optimization, ASO, app screenshots, app preview, play store listing. Triggers: app store screenshots, aso, app store optimization, play store screenshots, app preview, app listing, ios screenshots, android screenshots, app store images, app mockup, device mockup, app gallery, store listing
Generate images using Nano Banana Pro (Gemini 3 Pro Preview). Use when creating app icons, logos, UI graphics, marketing banners, social media images, illustrations, diagrams, or any visual assets. Supports reference images for style transfer and character consistency. Triggers include phrases like 'generate an image', 'create a graphic', 'make an icon', 'design a logo', 'create a banner', 'same style as', 'keep the style', or any request needing visual content.
Generate and save images using Pollinations.ai's free, open-source API. No signup required. Supports URL-based generation, custom parameters (width, height, model, seed), and automatic file saving. Perfect for quick prototypes, marketing assets, and creative workflows.
| Create AI marketing videos for ads, promos, product launches, and brand content. product video, explainer video, ad creative, video ad, facebook ad video, youtube ad, instagram ad, tiktok ad, promotional video, launch video
Use when building App Store screenshot pages, generating exportable marketing screenshots for iOS apps, or creating programmatic screenshot generators with Next.js. Triggers on app store, screenshots, marketing assets, html-to-image, phone mockup.
Anti-AI-slop design skill for greenfield pages, audits, redesigns, and design extraction from URLs or screenshots. Use when the user asks to build a new app or landing page, wants to redesign something, invokes Hallmark by name, or uses audit/redesign/study.
Launch and supervise OpenShell gator agents. Use when starting gator on issues or PRs, checking gator sandboxes, building the gator sandbox image, restarting stuck gators, inspecting gator logs, or experimenting with gator harness/model overrides. Trigger keywords - launch gator, start gator, run gator, gator sandbox, supervised gator, gator logs, restart gator.
Take rshankras/in-app-events from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.